2 weixin 35936985 weixin_35936985 于 2016.09.12 16:04 提问

java基础。。。。。。。求问!

Producer类中 Clerk clerk;这条语句是在创建clerk对象?这是怎么创建的?求解图片说明

4个回答

bdmh
bdmh   Ds   Rxr 2016.09.12 16:05
已采纳

那只是声明,不是创建,没有new,往下看有个赋值,这里才是指向了一个实际的对象

weixin_35936985
weixin_35936985 回复bdmh: 您好,意思是 通过下面的构造器给它赋值,然后指向了实际的对象?
大约一年之前 回复
lanxun1992
lanxun1992   2016.09.12 17:27

Clerk clerk;只是声明一个对象,并没有实例化,即并没有创建对象。前边的大写字母开头的Clerk是你定义的Clerk的类;后边小写字母开头的clerk是个
引用变量,只是个名字而已,换成阿猫阿狗都可以。而只有new出来的东西才是真正的对象。当你用clerk跟new出来的对象划等号时,clerk才指向该对象。
打个比方,假设有只

Clerk 类名 clerk 引用变量 = new Clerk()实际对象;

JFree_Wolf
JFree_Wolf   2016.09.12 16:35

Clerk clerk;只是声明一个对象的句柄,(里面没有任何东西)也可以理解为一个名字,每当创建Producer的对象的时候会调用构造方法,
执行里面的语句,给这个名字具体指向一个对象,也就是你说的实际的对象。这时候clerk里面就会存放具体对象的物理地址。

qq_25666275
qq_25666275   2016.09.14 13:08

不可能是创建啊,只不过是一个变量的引用,通俗点就是对象的地址!
要创建对象,只能用new 动态创建!
只有一个特殊情况就是用字面常量直接赋值!

Csdn user default icon
上传中...
上传图片
插入图片