Топ-100Модификаторы доступа - CodOrbits
LogoCodOrbits

Раздел: ООП

Здесь вы познакомитесь с объектно-ориентированным программированием в Java: классы, наследование, инкапсуляция и полиморфизм и многое другое.

Все разделы
Иконка ООП

Модификаторы доступа

Last updated: 3 мая 2025 г.

В продолжение темы инкапсуляции необходимо знать о модификаторах доступа public, private и protected.

С помощью этих модификаторов мы можем ограничить доступ некоторым элементам класса.

Например, у кота в классе в предыдущих уроках перед String name и String color ничего написано больше не было и поэтому, по умолчанию, они на самом деле помечены модификатором public.

Благодаря этому когда мы создавали объект кошки в main, мы могли напрямую через этот объект записать значения в name и color этого объекта (вот так – somecat.name = “Barsik”).

Если мы поставим перед этими полями private, то это уже будет запрещено.

С полями класса помеченными как private можно работать только в пределах класса, то есть, например, в пределах метода класса sayMeow() или в пределах конструктора Cat().

Поясним на примере:

1class Cat {
2    // пусть name будет public, а color будет private
3    public String name;
4    private String color;
5
6    Cat(String catName, String catColor) {
7        name = catName;
8        color = catColor;
9        // к color можно обращаться только
10        // в пределах класса кошки и ниоткуда больше.
11        // Например, ниже обращаемся к color
12        // в конструкторе класса кошки для вывода
13        // содержимого этого приватного поля на консоль.
14        System.out.println(color);
15    }
16
17    void sayMeow() {
18        System.out.println("Meow");
19    }
20}
21
22class Modifiers {
23    public static void main(String[] args) {
24        Cat somecat = new Cat("Barsik", "White");
25        // name помечен как public, поэтому мы можем
26        // напрямую через объект записать
27        // в него значение "Barsik".
28        System.out.println(somecat.name);
29
30        // Если мы раскомментируем строчку кода ниже
31        // то будет ошибка, так как color помечен как private.
32        // somecat.color = "White";
33        
34        // то есть опять-таки к private полям можно
35        // обращаться только в пределах класса.
36    }
37}

Вывод:

Search Icon

Все эти модификаторы также можно использовать и перед методами класса, и перед конструкторами, и перед самими классами.


Следующие уроки

Свойства в ООП (getters, setters)

14
мин.

Similar Articles Icon
Divider

Наследование в Java

15
мин.

Similar Articles Icon
Divider

Полиморфизм

15
мин.

Similar Articles Icon