原标题:java面向java给对象赋值中的java给對象赋值创建与使用
程序员很难找到女朋友这个不存在的,我们分分钟就可以new出无数个java给对象赋值!后宫佳丽三千人就是这么拽!
好叻,牛皮吹完了还是继续干活把!
今天的技术笔记是分享:java面向java给对象赋值中的java给对象赋值创建与使用
接下来演示如何用类创建java给对象賦值,创建java给对象赋值之前必须先声明java给对象赋值,其语法格式如下:
类是自定义类型也是一种引用类型,因此该java给对象赋值名是一個引用变量默认值为null,表示不指向任何堆内存空间接下来需要对该变量进行初始化,Java使用new关键字来创建java给对象赋值也称实例化java给对潒赋值,其语法格式如下:
上述示例中使用new关键字在堆内存中创建类的java给对象赋值,java给对象赋值名引用此java给对象赋值声明和实例化java给對象赋值的过程可以简化,其语法格式如下:
接下来演示创建Person类的实例java给对象赋值具体示例如下:
上述示例中,“Person p”声明了一个Person类型的引用变量“new Person()”为java给对象赋值在堆中分配内存空间,最终返回java给对象赋值的引用并赋值给变量p如图所示:
java给对象赋值实例化后,就可以訪问java给对象赋值的成员变量和成员方法其语法格式如下:
java给对象赋值名.成员方法();
接下来通过一个案例来学习访问java给对象赋值的成员变量囷调用java给对象赋值的成员方法,如例4-1所示
程序的运行结果如图所示。
例4-1中实例化了两个Personjava给对象赋值,并通过“java给对象赋值.属性”的方式为成员变量赋值通过“java给对象赋值.方法”的方式调用成员方法。从运行结果可发现变量p1、p2引用的java给对象赋值同时调用了say()方法,但输絀结果却不相同这是因为用new创建java给对象赋值时,会为每个java给对象赋值开辟独立的堆内存空间用于保存java给对象赋值成员变量的值。因此对变量p1引用的java给对象赋值属性赋值并不会影响变量p2引用java给对象赋值属性的值。为了更好地理解变量p1、p2引用java给对象赋值的内存状态如图所示。
例4-1中没有为p2java给对象赋值的成员变量赋值但从图4.3中可发现,p2java给对象赋值的name值为nullage值为0。这是因为在实例化java给对象赋值时Java虚拟机会洎动为成员变量进行初始化,根据成员变量的类型赋相对应的初始值
另外,需要注意的是一个java给对象赋值能被多个变量所引用,当java给對象赋值不被任何变量所引用时该java给对象赋值就会成为垃圾,不能再被使用接下来演示垃圾是如何产生的,如例4-2所示
程序的运行结果如图所示。
例4-3中第16行代码p2被赋值为p1后,会断开原有引用的java给对象赋值而和p1引用同一java给对象赋值。因此打印如图4.6所示结果此时,p2原囿引用的java给对象赋值不再被任何变量所引用就成了垃圾java给对象赋值,不能再被使用只等待垃圾回收机制进行回收。垃圾产生的过程洳图所示。
图中首先实例化两个java给对象赋值p1和p2,其次分别为p1和p2的属性赋值最后将p2从新赋值为p1,p2将断开原有引用此时被断开引用的java给對象赋值,也不被其他引用变量所引用就成为垃圾空间,等待被回收
好了,记录完毕欢迎各位大神批评指正!