Java小程序 - 初始化并实例化您声明的位置

时间:2012-12-27 11:42:55

标签: java swing applet compiler-errors

这里是否有人不同意:

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

  

令牌上的语法错误&#34 ;;",预期

然而,这段代码(B)完美无缺:

public class Test 
extends JApplet
{
    JLabel lbl = new JLabel ("a label");
    public void init() 
    {
    }
}

知道为什么会这样吗?这可能与init方法有关。我仍然期待看到数学精确的解释,而不是可解释的理论。非常感谢。我是applets的新手。 PS:为了简单起见,我省略了包导入(例如import javax.swing。*;)。

3 个答案:

答案 0 :(得分:2)

你不能在课堂上有这样的免费指示。类主体可以包含方法,字段声明,构造函数,内部类声明,静态和实例初始化程序块,但不包含这样的免费指令。

你可以做到

JLabel lbl;

{
    lbl = new JLabel ("a label");
}

但它很难看。

答案 1 :(得分:2)

它应该是相同的,如果它在方法中使用:

public void setMethod() {
    JLabel lbl;
    lbl = new JLabel ("a label");
}

答案 2 :(得分:2)

它与applet或init()方法无关。您只能在方法体或块内部使用指令(lbl = new JLabel ("a label");,无声明是指令)