对象引用与对象的区别
何为对象?
下面这段话引自《Java编程思想》中的一段原话:
“按照通俗的说法,每个对象都是某个类(class)的一个实例(instance),这里,‘类’就是‘类型’的同义词。”
从这一句话就可以理解到对象的本质,简而言之,它就是类的实例,比如所有的人统称为“人类”,这里的“人类”就是一个类(物种的一种类型),而具体到每个人,比如张三这个人,它就是对象,就是“人类”的实例。
何为对象的引用?
“每种编程语言都有自己的数据处理方式。有些时候,程序员必须注意将要处理的数据是什么类型。你是直接操纵元素,还是用某种基于特殊语法的间接表示(例如C/C++里的指针)来操作对象。所有这些在 Java 里都得到了简化,一切都被视为对象。因此,我们可采用一种统一的语法。尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“引用”(reference)。”
Demo a=new Demo();
右边的new Demo,是以Demo类为模板,在堆内存中创建一个对象;
末尾的括号,表示创建对象后,立刻调用Demo类的默认构造方法,对刚生成的对象初始化
等于号不是赋值语句,,是传地址的过程,是指a引用指向刚创建的Demo对象
左边的Demo a,创建了一个Demo类的引用变量,存放在栈空间中,用来指向,Demo对象的对象引用
//对象引用与对象的关系
从对象引用出发:
1.一个引用对象指向一个对象
Demo d; //一个引用对象
d=new Demo; //一个引用对象指向一个对象
2.也可以不指向对象
Demo d;//一个引用对象
从对象出发
1.一个对象可以被一个对象引用引用
Demo demo; //创建对象引用
demo=new Demo();//创建对象,并被一个对象引用指向
也可以被多个对象引用同时引用
Demo demo1,demo2,demo3;创建多个对象引用
demo1=new Demo;
demo2=demo1;
demo3=demo2;//创建对象,并被多个对象引用指向