在Java中,如果我声明,
MyClass obj;
obj被称为“引用”还是“对象”。我不是在这里实例化的。
答案 0 :(得分:17)
obj是对MyClass实例的引用。
目前,Reference是NULL,因为您尚未将其指定为引用任何实例。
从技术上讲,MyClass必须是Object的子类,因此可以说obj也是对Object实例的引用。
答案 1 :(得分:13)
参考:指向内存中某个对象的变量。 它存储在堆栈中,它们可以包含在其他对象中(然后它们不是真正的变量,而是字段),它们也将它们放在堆上。
对象:动态创建的类实例。 它存储在堆
中示例:
MyClassI aObj,aObj1;
aObj=new MyClass2();
第一行aObj和aObj1是参考
在第二行aObj引用MyClass2的对象(New运算符创建Myclass2的对象,其地址分配给aObj)。
要了解甚至更好地考虑具有driverName作为成员的类Car。
Car c1,c2;
c1.driverName="Andrew"
c2.driverName="Gabriel"
System.out.println(c1.driverName);//gives Andrew
System.out.println(c2.driverName);//gives Gabriel
c1=c2;
c2=null;
// gives gabriel because the address of c2 is copied to reference c1.
// the object is not nullified because c2 is just a reference when
// assigning null the address that is stored on c2 in nullified not
// the object it points..
system.out.println(c1.driverName);
答案 2 :(得分:2)
在计算机科学中,参考是一个 使程序能够运行的值 间接访问特定数据 项目,例如变量或记录, 在计算机的内存或某些内存中 其他存储设备。参考是 据说要参考数据项,和 访问该数据被调用 取消引用该引用。
在计算机科学中,一个对象就是任何一个 可被操纵的实体 编程语言的命令, 如值,变量,函数, 或数据结构。 (随后 面向对象的介绍 编程相同的词,“对象”, 是指a的特定实例 类)
所以obj是一个引用,new MyClass()
可以看作是一个对象
答案 3 :(得分:1)
有时候你会听到人们说“设计一种将对象作为参数的方法......”
如果您不熟悉编程,尤其是Java,那么这些语句可能会导致一些混乱。这些人使用“对象”这个词来指代一个非常普遍的OOP术语的实例,而不一定是Java特定的。
当我们谈论有关Java的细节和你在那里的代码时,它是对MyClass
的实例的引用,它是NULL。
答案 4 :(得分:0)
obj是MyClass类型的引用。当前引用不指向任何内容(即:null)。
答案 5 :(得分:0)
'obj'是变量。它持有引用或null。如果它包含引用,则引用一个对象。
答案 6 :(得分:0)
reference: - 是一个具有名称且可用于访问对象内容的变量,可以将引用分配给传递给方法的另一个引用,或者从方法返回。所有引用都是相同的大小,无论它们的类型如何"对象对象;"。
object: - 是由Java运行时环境分配的内存中存在的实体,一个对象位于堆上并且没有名称Like" Object object = new Object ();"
所以MyClass obj这是引用引用Null。
我们可以用以下两条规则来总结这个原则:
答案 7 :(得分:0)
引用是一个具有名称的变量,可用于访问对象的内容。引用可以分配给另一个引用,可以传递给方法,也可以从方法返回。
所有引用都是相同大小,无论它们是什么类型。 一个对象坐在堆上,没有名称。因此,除了通过引用,您无权访问对象。对象具有各种不同的形状和大小,并消耗不同数量的内存。一个对象不能分配给另一个对象,也不能将一个对象传递给方法或从方法返回。收集垃圾的是对象,而不是引用。