Является ли `this` указателем в Java? - PullRequest
1 голос
/ 15 октября 2011

Я читал, что в Java нет концепции указателя, однако я также несколько раз читал, что this - это ключевое слово в Java, которое относится к текущему объекту.Я все еще не понимаю, можно ли назвать this указателем или вообще не указателем.

Если это не указатель, как он может ссылаться на объект?Как он может сохранить ссылку на текущий объект?Я читал, что для C ++ this - это указатель, который содержит адрес текущего объекта.

Ответы [ 3 ]

5 голосов
/ 15 октября 2011

Да, каждая переменная объектного типа в Java фактически является указателем, но большую часть времени мы называем ее ссылкой.Это по-прежнему указатель, поскольку, если он равен нулю и вы разыменовываете его, вы получаете исключение NullPointerException.

В Java есть указатели, но нет арифметики указателей.Вы не можете увеличивать указатель, как, например, в C.

Также: JavaScript и Java - два очень разных языка.Ваш вопрос не должен быть помечен как javascript.

2 голосов
/ 15 октября 2011

Хотя все объекты в Java на самом деле являются ссылками на объекты, в Java нет такого термина, как указатель, поскольку это язык более высокого уровня, это означает, что, хотя this относится к текущему объекту, его фактическое значение не используется.в качестве ссылки.Кроме того, это может быть только указатель на объект, а не указатель на фактическое расположение объекта в памяти.(В отличие от любой известной мне реализации this в C ++, где this указывает на выделенную память объекта)

0 голосов
/ 28 апреля 2016

это не указатель, а просто ссылка, которая не используется динамически.

...