Инкапсуляция в ООП Java с примером
Что такое инкапсуляция в Java?
Инкапсуляция в Java представляет собой механизм объединения переменных (данных) и методов (кода) в единое целое. Это процесс сокрытия информации и защиты данных и поведения объекта. Это одна из четырех важных концепций ООП. Класс encapsulate легко тестировать, поэтому он также лучше подходит для модульного тестирования.
В этом уроке вы узнаете-
- Что такое инкапсуляция в Java?
- Изучите инкапсуляцию на примере
- Скрытие данных в Java
- Методы получения и установки в Java
- Абстракция и инкапсуляция
- Преимущества инкапсуляции в Java
Нажмите здесь, если видео недоступно
Изучите инкапсуляцию на примере
Чтобы подробно понять, что такое инкапсуляция, рассмотрим следующий класс банковского счета с методами депозита и показа баланса
class Account { private int account_number; private int account_balance; public void show Data() { //code to show data } public void deposit(int a) { if (a < 0) { //show error } else account_balance = account_balance + a; } }
Предположим, хакеру удалось получить доступ к коду вашего банковского счета. Теперь он пытается внести сумму -100 на ваш счет двумя способами. Давайте посмотрим на его первый метод или подход.
Подход 1: Он пытается внести недопустимую сумму (например, -100) на ваш банковский счет, манипулируя кодом.
Теперь вопрос:Возможно ли это? Пусть исследует.
Обычно переменная в классе устанавливается как «частная», как показано ниже. Доступ к нему возможен только с помощью методов, определенных в классе. Ни один другой класс или объект не может получить к ним доступ.
Если элемент данных является закрытым, это означает, что к нему можно получить доступ только в пределах одного и того же класса. Никакой внешний класс не может получить доступ к частному члену данных или переменной другого класса.
Таким образом, в нашем случае хакер не может внести сумму -100 на ваш счет.
Подход 2 :при первом подходе хакера не удалось внести сумму. Затем он пытается внести сумму -100, используя метод «депозита».
Но реализация метода имеет проверку на отрицательные значения. Таким образом, второй подход также не работает.
Таким образом, вы никогда не раскрываете свои данные посторонним лицам. Что делает ваше приложение безопасным.
Весь код можно представить как капсулу, а общаться можно только через сообщения. Отсюда и инкапсуляция имени.
Сокрытие данных в Java
Скрытие данных в Java скрывает переменные класса от других классов. Доступ к нему возможен только через метод их текущего класса. Он скрывает детали реализации от пользователей. Но больше, чем сокрытие данных, это предназначено для лучшего управления или группировки связанных данных.
Чтобы добиться меньшей степени инкапсуляции в Java, вы можете использовать такие модификаторы, как «защищенный» или «публичный». Благодаря инкапсуляции разработчики могут легко изменять одну часть кода, не затрагивая другую.
Геттер и сеттер в Java
Getter и Setter в Java два обычных метода, используемых для извлечения и обновления значений переменной. В основном они используются для создания, изменения, удаления и просмотра значений переменных. Метод установки используется для обновления значений, а метод получения используется для чтения или извлечения значений. Они также известны как средства доступа и изменения.
Следующий код является примером методов получения и установки:
class Account{ private int account_number; private int account_balance; // getter method public int getBalance() { return this.account_balance; } // setter method public void setNumber(int num) { this.account_number = num; } }
В приведенном выше примере метод getBalance() — это метод получения, который считывает значение переменной account_balance, а метод setNumber() — это метод установки, который устанавливает или обновляет значение для переменной account_number.
Абстракция и инкапсуляция
Часто инкапсуляция неправильно понимается с абстракцией. Давайте учиться-
- Инкапсуляция больше связана с тем, «как» реализовать функциональность.
- Абстракция больше связана с тем, «что» может сделать класс.
Простым примером, чтобы понять эту разницу, является мобильный телефон. Где сложная логика печатной платы инкапсулирована в сенсорный экран, а интерфейс предназначен для ее абстрагирования.
Преимущества инкапсуляции в Java
- Инкапсуляция связывает данные с соответствующими функциями. Здесь функции означают «методы», а данные — «переменные».
- Поэтому мы храним переменные и методы в одном месте. Это место «класс». Класс является основой для инкапсуляции.
- С помощью инкапсуляции Java вы можете скрыть (ограничить доступ) к важным элементам данных в своем коде, что повышает безопасность.
- Как мы уже обсуждали ранее, если элемент данных объявлен как "частный", доступ к нему возможен только внутри того же класса. Никакой внешний класс не может получить доступ к члену данных (переменной) другого класса.
- Однако, если вам нужен доступ к этим переменным, вы должны использовать общедоступные методы получения и установки. методы.
java
- Инкапсуляция Java
- Приведение типов Java
- Метод String Length() в Java:как найти на примере
- Метод Java String charAt() с примером
- Строка Java содержит () Метод | Проверить подстроку с примером
- Метод Java String endWith() с примером
- Java BufferedReader:как читать файл в Java с примером
- Алгоритм сортировки вставками в Java с примером программы
- Сортировка выбором в программе Java с примером
- Java — инкапсуляция