你能说一个对象是对类的引用吗?

时间:2013-09-29 00:30:44

标签: java class reference

作为我的AP课程的一部分,我正在学习对象,实例,引用等......所以从我的理解中,引用是指向某个东西的变量:值,类等。 。 。因此,说对象是对类的引用是合法的吗?

注意:我知道这是主观的,但我似乎无法在其他任何地方找到这样的比较。

7 个答案:

答案 0 :(得分:3)

通过引用的通常定义,你可以这样说。正确的是“一个对象是一个类的实例。”。

引用的通常定义是指向通常由某个对象占用的内存位置的值。指针和引用之间的区别在于,您可以在前者上执行指针算术,但不能在后者上执行。

例如,在以下代码段中:

SomeClass o = new SomeClass();
SomeClass foo = o;

SomeClass是类,o是对此SomeClass关键字的特定调用返回的new实例的引用。 new SomeClass()SomeClass的新实例分配内存,并调用其构造函数对其进行初始化。 foo是对SomeClass所引用的o的同一个实例的另一个引用。换句话说,ofoo指向同一个对象但不是相同的参考。

答案 1 :(得分:2)

Object不是类的引用,而是类的实例。

答案 2 :(得分:1)

不,这不是一个有效的陈述。对象是类的实例,而不是对类的引用。当你有类似的东西时:

MyClass var = new MyClass();

然后var是对其所分配的MyClass实例的引用(new MyClass())。此实例又是对象

来自JLS §4.3.1

  

对象是类实例或数组。

     

参考值(通常只是引用)是指向这些对象的指针,以及一个特殊的空引用,它指的是没有对象。

答案 3 :(得分:1)

正如其他人所说,一个班级就像一个蓝图。当您基于类创建对象时,计算机通过分配内存来“构建”对象,以根据您的类创建“部件”(变量)。

因此,该对象不是对该类的引用,暗示该对象只是将您重定向到该类。

该对象是该类的实例。

答案 4 :(得分:0)

对象实际上是一个类的实例。假设我们有String类。 String类型的对象是String类的实例不是该类本身。给定String s="foo"s的值将是对String类实例的引用。

现在,每个类都有一个与之关联的java.lang.Class对象,因此String.class是对java.lang.Class实例的引用。

来自JLS:

  

对象是类实例或数组。

     

参考值(通常只是引用)是指向这些对象的指针,以及一个特殊的空引用,它指的是没有对象。

答案 5 :(得分:0)

没有。这就像是说你今天早上吃的碎鸡蛋是对抽象蛋的抽象概念的参考。

请记住,class是一个蓝图,但它本身并不是一个实际的具体对象。只有在通过new关键字实例化对象时才会发生这种情况。

答案 6 :(得分:0)

Object foo = new Object();

foo是对类Object的特定具体实例的引用,但不是对类本身的引用。

Class bar = Object.class;

bar是对Object类的引用。