这是一个非常笼统的问题,我想提前为这个菜鸟问题道歉,但是......
在java中,一般来说,行内声明是否有一个特定的名称,或者只是简单地调用它?
我指的是以下声明对象的方法:
panel.add(new JLabel("Hello World"));
相对于:
JLabel label = new JLabel("Hello World);
panel.add(label);
这是一个非常笼统的问题,我想提前为这个菜鸟问题道歉,但是......
在java中,一般来说,行内声明是否有一个特定的名称,或者只是简单地调用它?
我指的是以下声明对象的方法:
panel.add(new JLabel("Hello World"));
相对于:
JLabel label = new JLabel("Hello World);
panel.add(label);
我不认为有,内联脚本或运行代码是我听说过的,有时是单行分隔的。
JLabel labe;
panel.add(labe = new JLabel("Hello World"));
//Instantiation
JLabel label = **new** JLabel("Hello World);
//declaration
JLabel label,label2,label3;
我不认为有一个具体的名称。
但是,您不是在“声明”标签。您只是在“实例化”一个实例。
人们似乎称其为“匿名对象”或“未命名对象”。另请参阅https://stackoverflow.com/a/5330408/659002
Java 语言规范调用
new JLabel("Hello World")
实例创建表达式,以及
JLabel label = new JLabel("Hello World);
带有变量初始化器的变量声明(初始化器恰好包含实例创建表达式)。
也就是说,JLS 说变量被声明,对象被创建。这些是独立的概念;您可以在不创建对象的情况下声明变量,也可以在不声明变量的情况下创建对象。
为了强调代码示例之间的区别,您可以说您确实(或不)声明了一个变量,如“此处无需声明变量”或“将引用放入变量有助于调试”。