对象的创建
类是对象的模板,模板可以造就很多对象。new关键字则是用来新建对象的,需要将对象创建才能访问调用里面的属性和方法。
例如:
用Dog类名作为类型申请一个dog的变量名用来储存构建出来的对象,new Dog();才是真正构建对象的代码。就像声明变量一样,把new好的对象赋值到dog这个标识符,以后只需要使用dog就可以调用访问对象里面的属性和方法。
每使用一次new关键字都是在内存中新开辟一个内存地址,如果new两个对象并交给不一样的变量名,它们指向的是各自独立的内存地址。例如:
每new一次就是新建一个内存地址,内存图:
一个变量名只能赋值一次对象,不然会报错。
访问符号 .
.用于访问对象的成员,也就是属性和行为。用变量名加上 . 就可以对对象进行调用了。例如:
对对象里的成员进行了一个简单的访问调用。访问dog指向的对象内存中的size属性并赋值为3,并且调用了对象的play方法。
如果new了两个对象,因为它们的内存地址都是独立的,修改了其中一个对象成员的值,另一个不会受到影响。例如:
如果把一个对象赋值给另一个对象,此时它们都是指向的同一个内存地址,一个发生改变另一个也会发生改变,因为对象是按引用传递的。例如:
因为dog赋值给了dog1,所以dog1指向的是dog的内存地址。所以dog1的值改变了dog的值也会改变。
在Java里因为有虚拟机,有垃圾自带回收机制,没有作用的对象就会被虚拟机回收掉。
本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1974033,如需转载请自行联系原作者