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)给出了以下错误:

标记";",,预期的语法错误

然而,这段代码(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");是指令)

相关内容

最新更新