在java的定义变量时,出现“类名 变量名=方法名()”;为什么可以直接赋予方法名给变量呢?
实例:ContainercontentPane=getContentPane();网上找到满意的答案:如同数组对象的初始化分两种:一种是用new,一种是直接赋值初始化。其...
实例:Container contentPane=getContentPane();
网上找到满意的答案:如同数组对象的初始化分两种:一种是用new,一种是直接赋值初始化。
其他对象实例(或称引用)的初始化也分两种:用new或者直接赋值一个对象。此题中Container contentPane是声明一个Container对象(引用),名为contentPane;而getContentPane()这个方法有返回值,返回的是Container对象,假设称为A ;相当于直接用对象A赋值给contentPane进行初始化,所以无需用new 展开
网上找到满意的答案:如同数组对象的初始化分两种:一种是用new,一种是直接赋值初始化。
其他对象实例(或称引用)的初始化也分两种:用new或者直接赋值一个对象。此题中Container contentPane是声明一个Container对象(引用),名为contentPane;而getContentPane()这个方法有返回值,返回的是Container对象,假设称为A ;相当于直接用对象A赋值给contentPane进行初始化,所以无需用new 展开
2个回答
展开全部
Container contentPane =new Container();是开辟内存实例对象即 创建对象
Container contentPane=getContentPane();这样并不是创建对象 而是获取一个已经创建好的内存地址
就是说这句代码被执行的时候对象已经创建好了Container类型的对象
举个例子Container contentPane1 =new Container();
contenPane.setId=1;
Container contentPane2 =new Container();
contenPane.setId=1;
boolean bool = contentPane1.equals(contenPane2);
bool的值是false
虽然他们的值是相同的但他们的内存地址不同
public Container getContentPane(){
Container contentPane1 =new Container();
contentPane1 .setId=1
return contentPane1;
}
Container contentPane2 = getContentPane();
boolean bool = contentPane1.equals(contenPane2);
bool的值是true
虽然他们的值是相同的但他们的内存地址相同
所以Container contentPane=getContentPane();这句代码的意思是返回一个Container类型的对象 给contenPane对象赋值
Container contenPane = new Container();这句代码是创建Container类型对象 然后给contenPane赋值
Container contentPane=getContentPane();这样并不是创建对象 而是获取一个已经创建好的内存地址
就是说这句代码被执行的时候对象已经创建好了Container类型的对象
举个例子Container contentPane1 =new Container();
contenPane.setId=1;
Container contentPane2 =new Container();
contenPane.setId=1;
boolean bool = contentPane1.equals(contenPane2);
bool的值是false
虽然他们的值是相同的但他们的内存地址不同
public Container getContentPane(){
Container contentPane1 =new Container();
contentPane1 .setId=1
return contentPane1;
}
Container contentPane2 = getContentPane();
boolean bool = contentPane1.equals(contenPane2);
bool的值是true
虽然他们的值是相同的但他们的内存地址相同
所以Container contentPane=getContentPane();这句代码的意思是返回一个Container类型的对象 给contenPane对象赋值
Container contenPane = new Container();这句代码是创建Container类型对象 然后给contenPane赋值
追问
就是说getContentPane()方法本身已经包含创建了一个Contenter类实例A的过程,并且返回该类实例,使得contentPane2获得A的地址,变成是contentPane2引用A;
谢谢你的回答!!对我的帮助很大。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询