Главная » Java » Доступ к членам классов Java

0

Доступ к членам классов и интерфейсов осуществляется с помощью оператора точки (.) (например, ref.тethod()). Оператор точки применяется для обращения и к членам экземпляров класса, и к его статическим членам. Поскольку типы способны к наследованию членов базовых типов, существуют правила, регламентирующие возможность обращения к членам класса в любой ситуации. Большинство подобных правил нашло отражение в главах 2 и 3, но мы считаем необходимым еще раз вкратце осветить некоторые из них.

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

Доступ к нестатическим членам всегда осуществляется посредством объектной ссылки – либо явной (включая ссылки на внешние объекты), либо косвенной, this, – если нестатический член принадлежит текущему объекту (или внешнему объекту). При обращении к полям и вложенным типам учитывается объявленный тип ссылки. Напротив, доступ к методам осуществляется на основании информации о классе, которому принадлежит объект, используемый для ссылки. Далее, коль скоро язык допускает возможность переопределения методов, исполняющая система обязана определить, к какому из методов следует обратиться, принимая во внимание структуру набора аргументов, передаваемы" при вызове метода (этот процесс более подробно описан в следующем разделе). По отношению к методам класса может быть применен только один оператор языка – оператор вызова метода, ().

Если оператор точки (.) употребляется в контексте ссылки, значение которой равно null, генерируется исключение типа NullРоinterException кроме тех случаев, когда адресуется статический член, принадлежащий объявленному типу ссылки.

 

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии