是否有任何人在这里谁不同意:Java小程序 - 初始化和实例,你声明
JLabel lbl;
lbl = new JLabel ("a label");
等同于:
JLabel lbl = new JLabel ("a label");
我猜不是?
你的心灵 - 这是关系到以下问题:
public class Test
extends JApplet
{
JLabel lbl;
lbl = new JLabel ("a label");
public void init()
{
}
}
此代码(A)提供了以下错误:
Syntax error on token ";", , expected
然而,这个代码(B)完美的作品:
public class Test
extends JApplet
{
JLabel lbl = new JLabel ("a label");
public void init()
{
}
}
任何想法为什么会发生这种情况?这可能与init方法有关。我仍然期待看到数学精确的解释而不是可解释的理论。非常感谢。我是小程序新手。 PS:为简单起见,我省略了软件包导入(例如import javax.swing。*;)。
免费指令 - 你是什么意思?谢谢。如果你引用了空init方法,我只是删除它,仍然得到代码A中的错误。 – Sam
我不知道确切的术语。在一个类体中声明是可以的。一种方法也是。但是,从声明,方法,构造函数或初始化程序块中分配someting到一个字段是无效的。 –
@JBNizet意味着在第一种情况下你有一个变量声明和一个碰巧是变量初始化的指令。在第二种情况下,你有一个变量定义,它在结果方面是等价的,但不是在语法方面(相等但不相同)。 Java语法定义不允许超出块的指令,但允许变量定义。 – OnaBai