Объект против ссылки в Java - PullRequest
15 голосов
/ 02 марта 2011

В Java, если я объявлю,

MyClass obj;

Будет ли obj называться "ссылкой" или "объектом".Я не являюсь инстанцирующим классом здесь.

Ответы [ 8 ]

17 голосов
/ 02 марта 2011

obj - это ссылка на экземпляр MyClass.

В настоящее время эта ссылка имеет значение NULL, поскольку вы не назначили ее для ссылки на какой-либо экземпляр.

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

13 голосов
/ 23 августа 2013

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

Объект : Экземпляр класса, который создается динамически. Хранится в куче

Пример:

MyClassI aObj,aObj1;

aObj=new MyClass2();

В первой строке aObj и aObj1 являются ссылками

Во второй строке aObj ссылается на объект MyClass2 (оператор New создает объект Myclass2, а его адрес назначается aObj).

Чтобы понять еще лучше, рассмотрим класс Car, в котором в качестве члена стоит driverName.

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 голосов
/ 02 марта 2011

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

В информатике объектом является любой субъект, которым может манипулировать команды языка программирования, такие как значение, переменная, функция, или структура данных. (С последующим внедрение объектно-ориентированного программирование того же слова, «объект», относится к конкретному случаю класс)

, поэтому obj является ссылкой, а new MyClass() можно рассматривать как объект

1 голос
/ 02 марта 2011

Иногда вы слышите, как люди говорят: «Разработайте метод, который принимает объект в качестве параметра и ...»

Если вы новичок в программировании, особенно в Java, такие утверждения могут привести кнекоторая путаница.Эти люди используют слово «объект» для ссылки на экземпляр класса в очень общих терминах ООП, не обязательно специфичных для Java.

Когда мы говорим о специфике Java и имеющегося там кода, этоявляется ссылкой на экземпляр MyClass, который равен NULL.

0 голосов
/ 16 августа 2018

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

Все ссылки имеют одинаковый размер, независимо от их типа.Объект находится в куче и не имеет имени.Следовательно, у вас нет возможности получить доступ к объекту, кроме как через ссылку.Объекты бывают разных форм и размеров и потребляют различное количество памяти.Объект не может быть назначен другому объекту, а также не может быть передан в метод или возвращен из метода.Это объект, который получает мусор, а не его ссылку.

0 голосов
/ 17 июня 2017
  • В Java все объекты доступны по ссылке, и у вас никогда не будет прямого доступа к самому объекту.
  • ссылка: - это переменная, которая имеет имя и может использоватьсядля доступа к содержимому объекта ссылка может быть назначена другой ссылке, переданной методу или возвращенной из метода.Все ссылки имеют одинаковый размер, независимо от их типа. Например, «Объектный объект».

  • объект: - это объект, который существует в памяти, выделенной средой выполнения Java,Объект находится в куче и не имеет имени Как "Object object = new Object ();".

  • , поэтому MyClass obj Вот Ссылка ссылкав Null.

  • Мы можем суммировать этот принцип с помощью следующих двух правил:

    1. Тип объекта определяет, какие свойства существуют внутри объекта в памяти.
    2. Тип ссылки на объект определяет, какие методы и переменные доступны программе Java.
0 голосов
/ 02 марта 2011

'obj' - это переменная . содержит либо ссылку, либо ноль.Если он содержит ссылку, то это относится к объекту.

0 голосов
/ 02 марта 2011

obj является ссылкой типа MyClass.Текущая ссылка ни на что не указывает (то есть: ноль).

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