Producer类中 Clerk clerk;这条语句是在创建clerk对象?这是怎么创建的?求解
那只是声明,不是创建,没有new,往下看有个赋值,这里才是指向了一个实际的对象
Clerk clerk;只是声明一个对象的句柄,(里面没有任何东西)也可以理解为一个名字,每当创建Producer的对象的时候会调用构造方法,
执行里面的语句,给这个名字具体指向一个对象,也就是你说的实际的对象。这时候clerk里面就会存放具体对象的物理地址。
Clerk clerk;只是声明一个对象,并没有实例化,即并没有创建对象。前边的大写字母开头的Clerk是你定义的Clerk的类;后边小写字母开头的clerk是个
引用变量,只是个名字而已,换成阿猫阿狗都可以。而只有new出来的东西才是真正的对象。当你用clerk跟new出来的对象划等号时,clerk才指向该对象。
打个比方,假设有只
Clerk 类名 clerk 引用变量 = new Clerk()实际对象;
不可能是创建啊,只不过是一个变量的引用,通俗点就是对象的地址!
要创建对象,只能用new 动态创建!
只有一个特殊情况就是用字面常量直接赋值!