Модификаторы
Модификаторы доступа
- default (package-private) - доступ имеют классы только с одного и того же пакета.
- public - доступ имеют все классы, только нужно делать import, если с другого пакета.
- protected - как default доступ + доступ имеют классы наследники даже с других пакетов. Наследники (за границами пакета) имеют доступ только через наследование (inheritance), но никак не через ссылку на обьект.
- private - доступ имеет только клас владелец.
Клас может быть только
public или default (кроме вложенных).
Другие модификаторы
- final(метод, клас, переменная) - класс не может иметь подклассов, не может быть extend. Единственный модификатор, который может применяться для локальных переменных. Если попытаться изменить переменную или переназначить или расширить клас, то будет Compilation error. Если это поле то оно должно быть присвоено значению, иначе Compilation error.
- abstract (метод, клас) - клас не может иметь экземпляр, может иметь абсрактные методы. (если пометить класс или метод abstract и final одновременно - будет Compilation error)
- strictfp(метод, клас) - все рассчеты в классе проводятся по станадарту IEEE 754 (плавающая точка).
- synchronized (метод) - доступ к методу может иметь только один thread одновременно.
- native - сообщает, что метод реализован на нейтив языку С, в конце метода ставится ";", как в абстрактом методе.
- transient(переменная) - переменная не будет сереализироваться.
- volatile(переменная) - используется для синхронизации.
- static(переманная класса только!!!, блок, вложенный клас, метод) - инициализируется до создания экзепляров обьектов. Нестатические элементы не могут использоваться в статических методах.
final и abstract не используются вместе.
Комментариев нет:
Отправить комментарий