Java中类与对象实例分析详解
举例如下:
在现实生活中,如果我们需要生产一部国产小米手机,
那么首先起码需要生产图纸,才可以进行生产,而这里的具体事物对应到java中则有:图纸就是类,手机就是对象。
代码例子如下:
//生产图纸对应的类为phone:
class Phone
{
//设置的属性
colour=black;//初始化值,设置手机颜色为黑色
}
//手机对应 对象、手机名对应 变量:
Phone a;//Phone就是该对象,a则是该对象名,也就是是变量,一个类类型变量。
//生产手机:就是new
phone a =new phone();// 见new,就是生产了一部手机,其实质就是在堆内存中产生一个实体对象 ,这里是的对象就是a。
图像辅助理解 1
对于Phone a= new Phone(); 这句代码解释为:
我们生产了一部手机(对象),手机(对象)名字为a。其实质则是在栈内存中产生一个对象,对应的在堆内存中产生一个实体,这个实体包括颜色这个属性,然而在没有给颜色这个属相赋值为黑色之前,它还是有个默认的初始化值为null,即堆内存默认初始化值为空(null),但我们定义颜色之后,它就变为黑色(black)。接着,这个实体的堆内存地址值假如为0x11(十六进制),把该值赋给a,a就指向该对象实体。
图像辅助理解 2
联系上文及图片,对于 Phone a= new Phone(); a.colour=“red”; 这两句代码解释为:
这里的颜色发生了变化,即是对象(手机a)的颜色由黑色(black)变为红色(red)。这里强调一下,java是面向对象的语言,则我们面向手机a这个对象就可以了。颜色变化,也就是指挥对象做事情,则先找到对象(手机a)。在java当中,找到对象后然后进行指挥,指挥方式为:对象.对象成员。放到这个实例里面,指挥改变对象(手机a)的颜色,就是a.colour=“red”;
图像辅助理解 3
联系上文及图片,对于
Phone a= new Phone();
Phone a1=a;
a1.colour=“green”;
这两句代码解释为:
用new产生一个对象,即是上文变为红色的手机。记得:凡是new则是产生一个新的对象。
本来颜色colour是黑色black,在第二幅图片中改变为红色了,这是前提。接着在堆内存中产生一个对象实体,若该堆内存地址值为0x13,把该值赋给a,a则引用该对象。这时,a1=a; 栈内存中又有一个新的变量a1,且a赋值给a1,就是把a的地址值0x13赋给a1,则a1指向这个实体对象,并由此代码a1.colour=“green”; 颜色colour又变成绿色green了。
我们可以理解为:生产一部手机,起个名字叫小米,之后又给它起了个名字叫大米,又把大米手机的颜色改成绿色的,不过这还是同一部手机,同一个对象。
参考链接:
若对java中的面向对象与面向过程有疑惑的,可以参考编者的这篇文章:https://blog.csdn.net/qq_54017009/article/details/123010164?spm=1001.2014.3001.5501
若对java中的类与对象基本关系有疑惑的,可以参考编者的这篇文章:
https://blog.csdn.net/qq_54017009/article/details/122931799