在座有人不同意吗?
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)给出了以下错误:
标记";",,预期的语法错误
然而,这段代码(B)工作得很好:
public class Test
extends JApplet
{
JLabel lbl = new JLabel ("a label");
public void init()
{
}
}
知道为什么会这样吗?这可能与init方法有关。我仍然期待看到数学上精确的解释,而不是可解释的理论。非常感谢。我是小程序的新手。PS:我遗漏了包导入(例如import javax.swing.*;)为简单起见,
类体中不能有这样的自由指令。类主体可以包含方法、字段声明、构造函数、内部类声明、静态和实例初始化块,但不能包含像这样的自由指令。
你可以做
JLabel lbl;
{
lbl = new JLabel ("a label");
}
但是它很丑。
如果在方法中使用,则应该是相同的:
public void setMethod() {
JLabel lbl;
lbl = new JLabel ("a label");
}
与applet或init()方法无关。你只能在方法体或块中使用指令(没有声明的lbl = new JLabel ("a label");
是指令)