在JAVA中引用变量的叫什么和它所指向的对象的名称是不是同一个名字(高分在线等)

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:55:37
如题
没有一位理解我的题目...我问的是名称,就是叫法,没问里面存的什么
举个例子,假设Cat是个类
Cat a=new Cat();
a就是引用变量的名称,那摸它所指向的对象是不是叫对象a

引用变量的就叫引用,和他所指向的对象不一定是同一个名字

RE:Cat a=new Cat();
a就是引用变量的名称,那摸它所指向的对象是不是叫对象a

是的,a 就是 Cat 的一个对象

二者不一样。
Java把内存分为两种:栈内存和堆内存。
引用变量是在方法的栈内存中分配的,而对象是存放在对内存中的。
在堆中产生了一个对象后,还可以在栈中定义一个特殊的变量,让栈中的这个特殊变量的取值等于对象在堆内存中的首地址,栈中的这个变量就变成了对象的引用变量,以后就可以在程序中使用栈中的引用变量来访问堆中的对象。引用变量就相当于是为对象取的一个名称。

现在懂了吗?

看问题不能只盯着眼前所看到的,要时刻想着内存的存放方式,你才会更加理解面向对象编程的思想。
就你所举的例子给你分析:
a是引用变量的名称,他所指向的对象的名称不是a,a只是一个Cat类型的变量。一旦new Cat()了(这才是你说的实例化了一个对象),a就是有意义了,那么a就指向在堆内存中new Cat()对象的首地址。

如果再不清楚,你就好好看看书去吧,书上会给你讲清楚的,好好看书……

对象new Cat()没有名字,所以你问题的答案是否定的
java不支持对new Cat()对象进行直接的操作,所以new Cat()是没有名字的。

不是。变量名是指向它本身的地址,变量的值是它指向的对象的地址。