Модификаторы в Java
Данная статья:
- написана командой Vertex Academy. Надеемся, что она Вам будет полезна. Приятного прочтения!
- это одна из статей из нашего "Самоучителя по Java"
Что такое "модификаторы"
Модификаторы ( modifiers) - от англ. слова "modify", которое переводится как "изменять", "регулировать". Таким образом, модификаторы - это такие ключевые слова языка Java, которые как-то "изменяют и регулируют" работу классов, методов и переменных.
Вообще, все модификаторы делятся на 2 группы:
1. модификаторы доступа (Access Modifiers)
2. другие модификаторы (Non-Access Modifiers).
Ниже приводим Вам в помощь картинку. Как видите, "другие модификаторы" (Non-Access Modifiers) - это модификаторы классов, полей, методов, интерфейсов и другое.
Одним словом, модификаторы в Java - тема очень обширная. Поэтому теме модификаторов мы посвятим не одну, а сразу несколько статей. Но сейчас, обратите внимание на модификаторы доступа, выделенные в отдельный класс - это необходимо для лучшего понимания темы ООП.
Модификаторы доступа
Итак, Вы уже поняли, что модификаторам доступа отводится особое место среди собратьев. В чем же их функция? Модификаторы доступа помогают Вам регулировать кто может видеть элементы Вашего кода и кто может их менять. Грубо говоря, "система сигнализации" 🙂 На картинке ниже видно, что существует 4 типа модификаторов доступа.
Модификатор public говорит о том, что метод (или класс) "виден отовсюду" , то есть к нему можно обращаться из любой части программы.
Если ничего не указывать, тогда будет стоять видимость по умолчанию - т.е. default. Как видно по картинке, по умолчанию Ваш код видно в границах пакета - "package visible". Это означает, что если Вы обратитесь к такому классу или методу не из его package, то ответа не получите 🙂
Protected - с англ. "защищенный" - это видимость в границах пакета и видимость для классов-наследников. Можно сказать, что protected = default + наследование.
Модификатор private обеспечивает видимость только в границах класса. Таким образом, можно визуально представить это так:
Зачем?
Ограничение доступа к определенным элементам кода - важная часть защиты программы, то есть такого принципа ООП, как инкапсуляция (если Вы не читали статью про ООП, можете найти ее тут). Кроме того, Вы уже наверняка использовали модификатор public - с самой первой Вашей программы. Например:
1 2 3 4 5 6 7 |
class Test { public static void main(String args[]){ int k; k = 10; System.out.println (k); } } |
Видите - public static void main. То есть в "самом главном методе" тоже используется модификатор доступа - public - который означает, что содержание main "видно отовсюду". И это понятно - ведь не может же метод, который запускает всю программу, быть приватным? Тогда весь код попросту не будет выполняться.
А в одной из прошлых статей по ООП, Вы использовали модификатор private для создания геттеров и сеттеров (ссылка на статью):
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Cat{ private String name; private String color; public String getName(){ return name; } public void setName(String a){ name=a; } } |
Как Вы видите, эти модификаторы доступа Вы уже непроизвольно использовали. Теперь, Вы сможете применять их чаще и лучше 🙂
Как использовать
Вы выше уже увидели, что модификаторы доступа применяются и к полям (т.е. переменным) - в геттерах, и к методам - например, к main. Итак, чтобы использовать модификаторы, необходимо знать следующее:
1) Пишутся в самом начале (перед всем-всем-всем другим 🙂 ). Безопасность, так сказать, на первом месте 🙂
2) Все четыре модификатора применяются к методам и полям.
3) К классам могут применяться все четыре модификатора только если они вложенные. В противном случае, применим только public и default.
Итого
Поздравляем, теперь Вы знаете, какие существуют типы модификаторов доступа! Один шаг вперед 😉
Вот Вам напоминание на будущее:
И мы ждем Вас на следующих уроках!
Статья написана Vertex Academy. Будем рады видеть Вас на наших курсах Java с нуля.