【问题标题】:Why do we call the variables that store the properties of an object instance variables?为什么我们将存储对象属性的变量称为实例变量?
【发布时间】:2019-06-06 00:03:38
【问题描述】:

我开始更多地了解 Java 的概念方面以及类、它们的对象和实例变量的概念。虽然我知道类代表一个概念,但对象是这些概念的体现,而实例变量应该是这些概念的属性和行为--为什么专门将它们称为实例变量?对象不是类的“实例”吗? 这是一个例子:考虑类 Person

class Person {

   private int age;
   private String name;

   public Person(String userName, int userAge) {

     age = userAge;
     name = userName;
  }

}

public class Tester {

   public static void main(String[] args) {

      Person maya = new Person("Maya", 14);
      Person jack = new Person("Jack", 16);
   }
}

在这个类中,我们有两个对象,maya 和 jack。这两个对象是类的实例,因为虽然它们属于同一个概念(一个人),但它们在姓名和年龄方面具有不同的属性,这些属性通过实例变量体现出来。每个人都有名字和年龄(行为),但有不同的变体。

【问题讨论】:

  • 因为这些变量的值属于一个实例。
  • @ElliottFrisch 澄清一下,你是说实例变量本质上是对象中的不同属性,它们会导致它们成为类的实例?
  • 我们要寻求哲学答案吗?你会推荐什么其他名字?
  • @ElliottFrisch 是的,我正在寻找更抽象的答案

标签: java class oop object instance-variables


【解决方案1】:

引用 Oracle 的 Java 教程,https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

非静态字段也称为实例变量,因为它们的值对于类的每个实例(换句话说,对于每个对象)都是唯一的;一辆自行车的 currentSpeed 与另一辆自行车的 currentSpeed 无关。

【讨论】:

    【解决方案2】:

    实例变量是属于实例的变量:每个实例都有自己的变量版本,完全独立于其他实例。不能通过实例访问实例变量except

    将此与静态或类变量进行对比。这样的变量属于类,因此由类的所有实例共享。类变量可以通过类实例访问。

    【讨论】:

    • 不要忘记局部变量,它们是方法调用的局部变量
    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 2016-09-24
    相关资源
    最近更新 更多