Мы помогаем ИТ-компаниям оптимально настроить процессы менеджмента и разработки

Найти

(067) 536-87-70

(095) 492-65-67

 

Принципы ООП: Инкапсуляция

10.10.19

Не менее любопытным, чем наследование, принципом ООП, является инкапсуляция данных.

Инкапсуляция - предоставление пользователю компонентов (класс-капсула или же интерфейс) с объединенными и защищенными данными готовыми для использования, но не изменения или же раскрытия как они реализованы.

Капсула

То есть, мы можем создать поле, но мы не хотим, чтобы кто-то его менял - добавим полю модификатор доступа приватный, но при этом предоставим возможность использовать это поле (get и set):

   class Test {
        private int testField;

        public void setTestField(int testField) {
        this.testField = testField;
   }
   public int getTestField() {
        return testField;
   }

   public int getTestFieldDoubled() {
        return doubleTheResult(testField);
   }

   private int doubleTheResult(int param) {
        return param*2;
   }
}

public class Main {
    public static void main(String args[]) {
     Test test = new Test();
      test.setTestField(4);
      int doubledTestField = test.getTestFieldDoubled();
      System.out.println(doubledTestField); //8
    }
}

Как мы видим, пользователь не может использовать закрытые (приватные) данные и методы, но мы можем с их помощью реализовывать методы для личного использования. Пользователю эти методы ни к чему.

Выводы из вышесказанного:

  • Инкапсуляция обеспечивает нас набором поля-методы.
  • Пользователю недоступны те методы, которые необходимы для непосредственной реализации какой-либо логики.
  • Все поля должны быть приватными, а доступ к ним может быть построен через публичные методы (get и set).
  • 2*4 = 8.

В следующей статье будет рассказано еще про один немаловажный принцип ООП - Полиморфизм. Не пропустите!

 

 

Автор

photo
Сергей Посьмашный
Java blogger, физик, путешественник