Почему мы вызываем переменные, которые хранят свойства переменных экземпляра объекта? - PullRequest
0 голосов
/ 11 января 2019

Я начинаю больше узнавать о концептуальной стороне 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);
   }
}

В этом классе у нас есть два объекта, майя и джек. Эти два объекта являются экземплярами класса, потому что, хотя они и принадлежат одному и тому же понятию (человеку), они имеют разные атрибуты с точки зрения имени и возраста, которые отражаются через переменные экземпляра. У каждого человека есть имя и возраст (его поведение), но разные его варианты.

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Переменная экземпляра - это переменная, которая принадлежит экземпляру: каждый экземпляр получает свою собственную версию переменной, полностью независимую от других экземпляров. Вы не можете получить доступ к переменной экземпляра , кроме через экземпляр.

Сравните это со статической или классовой переменной. Такая переменная принадлежит классу и, следовательно, является общей для всех экземпляров класса. Переменная класса может быть доступна через класс или экземпляра.

0 голосов
/ 11 января 2019

Цитирование из учебника Oracle по Java, на https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

Нестатические поля также известны как переменные экземпляра, потому что их значения уникальны для каждого экземпляра класса (другими словами, для каждого объекта); текущая скорость одного велосипеда не зависит от текущей скорости другого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...