实例的意义

时间:2015-08-01 20:59:03

标签: oop object reference instance

编程意义上的实例是什么意思?请举例说明。另外,以下几行是什么意思?

我正在编写以下代码:

MyClass obj;

现在,我说“obj是对MyClass实例的引用”。

虽然我说上面一行,但我无法理解“引用MyClass实例”这一行的含义。这是否意味着obj是对MyClass的对象的引用?

6 个答案:

答案 0 :(得分:3)

“实例”(一个类)只是说“对象”的另一种方式。

答案 1 :(得分:3)

<强>类: 在诸如Java的类范式语言中,类是模板。它是操作环境的一系列指令,使其能够构造和使用对象。该类在其定义文件中定义其成员。 Java中类的成员是:

  • fields :存储构成类状态的变量的变量

  • 方法:定义表征类的行为的函数定义

  • 嵌套类:一个类可以在其中定义其他类

  • 嵌套接口:一个类也可以在其中定义接口

<强>实例 实例是类的实际表示。内存中的这种表示可以被称为对象或类实例(或者更简单地,只是实例)。

为了使其更具体,让我们看一下MyClass类:

public class MyClass {
    private int myField1;
    private String myField2;

    public MyClass(int f1, String f2) {
        this.myField1 = f1;
        this.myField2 = f2;
    }
    :
    :
}

MyClass是一个定义两个实例字段的类,它包含创建的每个MyClass对象的状态信息(myField1和myField2)。它还定义了一个 Constructor ,它指导Java如何构建MyClass对象。这里构造函数接受两个参数并使用它们来初始化实例字段。

此代码:

MyClass obj = new MyClass(7, "Hello");

此语句使用构造函数MyClass(int,String)实例化 MyClass对象的新实例。创建的实例将具有myField1 = 7和myField2 =“Hello”。最后,指向已实例化的对象的引用将分配给变量obj。在Java中,所有对象都是引用类型。永远不能将对象存储到变量中。相反,对象在内存中的位置的指针(或引用)存储在变量中。

TLDR:该类是一组相关对象的模板。实例是类的实际表示,使用其模板构建。

答案 2 :(得分:2)

如果你在柜台上有两个苹果,每个苹果都是一个苹果的实例。如果您的程序包含三个数字为1,2和3的变量,则每个变量都是一个整数的实例。

实例只是抽象事物的特定版本。当您创建一个类,并从该类创建一个对象时,该对象就是一个实例。如果从类中创建三个对象,则有三个实例。

答案 3 :(得分:0)

当您执行publishParsedToDatetime之类的操作时,您可以创建一个实例。

  

obj是对MyClass

实例的引用

也许这是最正确的说法,但通俗地说,我只是说tm_isdst=0是班级MyClass obj = new MyClass()的一个实例。

忘记在CS世界中应该表达什么样的实例。想想这个单词在英语中的含义。

  

某个例子或单个事件。

obj

MyClassMyClass obj1 = new MyClass(); MyClass obj2 = new MyClass(); 是该类的实例,因为它们只是它的出现。

我们说&#34;引用&#34;,因为变量只是一个引用实际实例的符号。就像obj1obj2在技术上不是5时一样,它只是一个引用该值的符号。

答案 4 :(得分:0)

让我们在不过于抽象的情况下说明这一切:

  • 一个类定义了一个概念。
  • 一个实例是该概念的具体,真实的化身。

例如。

  • 键盘是我可以按字母(概念)
  • 的东西
  • 我输入此答案的特定键盘是键盘(实例)的具体,真实的化身

当您

class MyClass {
  void method1() { ... }
}

您可以定义MyClass定义的对象的外观和行为

当您执行

MyClass obj;

您实际创建了与该定义相对应的对象

答案 5 :(得分:0)

实例只是一个对象。我们假设你有以下内容:

class Car
{
    int nWheels;
}

Car c = new Car();

在此Java代码段中,您有一个类Car,并且正在创建一个名为c的变量,该变量是对Car的引用。现在,在C ++和Java等流行语言中,关键字new意味着&#34;创建给定类的实例(又名对象),并给我一个引用< / em> to it&#34;,这就是c是参考的原因。当变量是引用时,它基本上只是实际实例/对象在内存中的内存地址(引用实际上更多,但你可以这样想),而不是实际的实例本身。因此,您可以对同一个对象进行多次引用,更改一个,然后它们都会发生变化。

假设您有代码

Car car1 = new Car();
Car car2 = new Car();

然后car1car2都是引用来分隔实例,因为它们都使用了构造函数。但如果你这样做了,

car2 = car1;

然后car2car1仍然是两个引用,但它们都引用相同的实例(由行Car car1 = new Car();创建的对象,并且没有任何内容引用该行中创建的对象Car car2 = new Car();