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

Раздел: ООП

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

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

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

Last updated: 3 мая 2025 г.

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

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

Если вспомнить пример из предидущего урока, то в классе Cat перед полями String name и String color не было указано никаких модификаторов. Однако, по умолчанию они являются public, что означает открытый доступ.

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

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

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

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

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