2

这是一个非常笼统的问题,我想提前为这个菜鸟问题道歉,但是......

在java中,一般来说,行内声明是否有一个特定的名称,或者只是简单地调用它?

我指的是以下声明对象的方法:

panel.add(new JLabel("Hello World"));

相对于:

JLabel label = new JLabel("Hello World); panel.add(label);

4

4 回答 4

2

我不认为有,内联脚本或运行代码是我听说过的,有时是单行分隔的。

JLabel labe;
panel.add(labe = new JLabel("Hello World"));


//Instantiation
JLabel label = **new** JLabel("Hello World);

//declaration
JLabel label,label2,label3;
于 2012-10-12T01:11:52.757 回答
2

我不认为有一个具体的名称。

但是,您不是在“声明”标签。您只是在“实例化”一个实例。

于 2012-10-12T01:03:14.560 回答
2

人们似乎称其为“匿名对象”或“未命名对象”。另请参阅https://stackoverflow.com/a/5330408/659002

于 2012-10-12T01:22:49.963 回答
1

Java 语言规范调用

new JLabel("Hello World")

实例创建表达式,以及

JLabel label = new JLabel("Hello World);    

带有变量初始化器的变量声明(初始化器恰好包含实例创建表达式)。

也就是说,JLS 说变量声明对象被创建。这些是独立的概念;您可以在不创建对象的情况下声明变量,也可以在不声明变量的情况下创建对象。

为了强调代码示例之间的区别,您可以说您确实(或不)声明了一个变量,如“此处无需声明变量”或“将引用放入变量有助于调试”。

于 2012-10-12T11:50:16.337 回答