import java.lang.*;
public class human
{
public static void main(String[] para)
{
person CYH; //定义对象变量
CYH = new person(); //构造对象实体
CYH.name = "microcyh"; //设定名字
CYH.tall = 183.2; //设定身高
CYH.weight = 70.5; //设定体重
System.out.println("CYH.name = " + CYH.name );
System.out.println("CYH.tall = " + CYH.tall );
System.out.println("CYH.weight = " + CYH.weight );
CYH.sayYO();
}
}
//声明一个代表“人类”的 person 类
class person
{
String name; //名字
double tall; //身高
double weight; //体重
public void sayYO()
{
System.out.println( name + ": 有!");
}
}
之前总以为,当建立一个如 person lili = new person();就把Lili想成是在内存里的一块含有名字,身高等的一块地方,所以总不明白为什么可以直接把2个对象变量用等号连起来。而原来,实质上,这里涉及的是定义“对象变量”与构造“对象实体”2个过程,当定义了lili对象变量时,在内存里配置给lili的空间只是存放某个对象实体的参考值,即地址,本来想在这里插入内存图的,但不会。。。。。而在lili = new person();这里,他构造了该对象变量可参考的实体,并传回了该对象实体的“参考值”,即lili这个对象变量(我觉得相当于指针)就指向了一个有name,tall,weight这些属性的一块内存,(还是不会在博文里花内存图),所以自然而然我们是可以改变“对象”所参考的实体了。
其实自己觉得,自己弄清楚了这一点,确实解决了自己之前的很多困惑,不再是把对象变量与对象实体这两个概念等同在了一起,所以,很多时候,真的是要从内存上去理解程序,我感觉就会很透彻。