Инкапсуляция в Java OOP с примером

Что такое инкапсуляция в Java?

Инкапсуляция – это принцип обертывания данных (переменных) и кода вместе как единое целое. Это одна из четырех концепций ООП. Остальные три – Наследование, Полиморфизм и Абстракция.

В этом уроке вы узнаете,

Изучить инкапсуляцию с помощью примера

Чтобы понять, что такое инкапсуляция в деталях, рассмотрите следующий класс банковского счета с депозитом и покажите методы баланса

 

Предположим, хакеру удалось получить доступ к коду вашего банковского счета. Теперь он пытается внести сумму -100 в свой аккаунт двумя способами. Давайте посмотрим его первый метод или подход.

Подход 1: он пытается внести недействительную сумму (например, -100) в свой банковский счет, манипулируя кодом.

Теперь вопрос: возможно ли это? Пусть исследуют.

Обычно переменная в классе устанавливается как “частная», как показано ниже. Доступ к нему можно получить только с помощью методов, определенных в классе. Ни один другой класс или объект не могут получить к ним доступ.

Если элемент данных является закрытым, это означает, что он может быть доступен только в том же классе. Никакой внешний класс не может получить доступ к частному элементу данных или переменной другого класса.

Поэтому в нашем случае хакер не может внести сумму -100 на ваш счет.

Подход 2 : первый подход Хаккера не смог внести сумму. Затем он пытается сделать депозит на сумму -100, используя метод “депозит”.

Но реализация метода имеет проверку на отрицательные значения. Таким образом, второй подход также терпит неудачу.

Таким образом, вы никогда не подвергаете свои данные внешней стороне. Это делает ваше приложение безопасным.

Весь код можно рассматривать как капсулу, и вы можете общаться только через сообщения. Следовательно, инкапсуляция имени.

Скрытие данных в Java

Часто инкапсуляция Java упоминается как скрытие данных . Но больше, чем скрытие данных, концепция инкапсуляции предназначена для лучшего управления или группировки связанных данных.

Методы Getter и Setter в Java

Если элемент данных объявлен “приватным», тогда его можно получить только в том же классе. Никакой внешний класс не может получить доступ к элементу данных этого класса. Если вам нужно получить доступ к этим переменным, вы должны использовать общедоступные методы “getter”и “setter».

Методы Getter и Setter используются для создания, изменения, удаления и просмотра значений переменных.

Следующий код – пример методов getter и setter:

 

В приведенном выше примере метод getBalance () – это метод getter, который считывает значение переменной account_balance, а метод setNumber () – это метод setter, который устанавливает или обновляет значение переменной account_number.

Абстракция против инкапсуляции

Часто инкапсуляция неправильно понимается абстракцией. Давай учиться-

  • Инкапсуляция – это больше о “Как”для достижения функциональности
  • Абстракция больше о том, что “класс”может сделать.

Простым примером для понимания этой разницы является мобильный телефон. Если сложная логика в печатной плате инкапсулирована в сенсорный экран, и интерфейс предоставляется для ее абстрагирования.

Преимущества инкапсуляции в Java

  • Инкапсуляция связывает данные со связанными с ними функциями. Здесь функциональность означает “методы», а данные означают “переменные»,
  • Поэтому мы сохраняем переменные и методы в одном месте. Это место “класс». Класс является базой для инкапсуляции.
  • С помощью инкапсуляции Java вы можете скрыть (ограничить доступ) к важным членам данных в своем коде, что улучшит безопасность
  • Как мы обсуждали ранее, если член данных объявлен “приватным», тогда его можно получить только в том же классе. Никакой внешний класс не может получить доступ к элементу данных (переменной) другого класса.
  • Однако, если вам нужно получить доступ к этим переменным, вы должны использовать общедоступные методы ”getter”и “setter”.

 

0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *