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


Процесс связывания данных и соответствующих методов (поведения) в единое целое в Java называется инкапсуляцией. Другими словами. Инкапсуляция-это метод программирования. Который связывает члены класса (переменные и методы) вместе и предотвращает их доступ к другим классам. Тем самым мы можем защитить переменные и методы от внешнего вмешательства и неправильного использования. Каждый класс Java является примером инкапсуляции. Потому что мы пишем все внутри класса только то. Что связывает переменные и методы вместе и скрывает их сложность от других классов.

Темы, описанные в учебнике скрыть

Другим примером инкапсуляции является капсула.

В основном капсула инкапсулирует несколько комбинаций лекарств.

Если комбинации лекарств являются переменными и методами. То капсула будет действовать как класс. И весь процесс называется Инкапсуляцией. Как показано на рисунке ниже.
Инкапсуляция в Java

В методе инкапсуляции мы объявляем поля как частные в классе. Чтобы предотвратить прямой доступ к ним других классов. Необходимые инкапсулированные данные могут быть доступны с помощью общедоступных методов Java getter и setter.

Если поле объявлено закрытым в классе. То оно не может быть доступно никому вне класса и скрывает поле внутри класса.

Поэтому это также называется сокрытием данных.

Давайте лучше поймем инкапсуляцию в java. Взяв примеры в реальном времени.

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


Пример 1 в реальном времени:
Школьная сумка-один из самых реальных примеров инкапсуляции. Школьная сумка может хранить наши книги, ручки и т. Д.

Пример 2 в реальном времени:
Когда вы входите в свои учетные записи электронной почты. Такие как Gmail. Yahoo Mail или Rediff mail. В бэкэнде происходит множество внутренних процессов. И вы не можете их контролировать.

Когда вы вводите пароль для входа в систему. Они извлекаются в зашифрованном виде и проверяются. А затем вам предоставляется доступ к вашей учетной записи.

У вас нет контроля над тем. Как был проверен пароль. Таким образом. Он защищает наш счет от неправильного использования.

Пример 3 в реальном времени:
Предположим. У вас есть счет в банке. Если переменная вашего баланса объявлена в банковском программном обеспечении как общедоступная переменная. То баланс вашего счета будет известен как общедоступный. И в этом случае любой желающий может узнать баланс вашего счета. Итак, вам это понравится? Разумеется, нет.

Таким образом. Они объявляют переменную баланса закрытой. Чтобы сделать ваш счет безопасным. Чтобы никто не мог видеть баланс вашего счета.

Человек, который должен видеть баланс своего счета. Должен будет получить доступ только к закрытым членам с помощью методов. Определенных внутри этого класса. И этот метод будет запрашивать имя владельца вашего счета или идентификатор пользователя. А также пароль для аутентификации.

Таким образом. Мы можем достичь безопасности. Используя концепцию сокрытия данных. Это называется инкапсуляцией в Java.

Как достичь или реализовать инкапсуляцию в Java


Есть два важных момента. Благодаря которым мы можем достичь или реализовать инкапсуляцию в программе Java.
1. Объявление переменной экземпляра класса как частной. так что он не может быть доступен непосредственно никому из вне класса.

2. Предоставьте методы public setter и getter в классе для установки/изменения значений переменной/полей.

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


Существуют следующие преимущества инкапсуляции в Java. Они заключаются в следующем:
1. Инкапсулированный код более гибок и легко изменяется в соответствии с новыми требованиями.
2. Это мешает другим классам получить доступ к закрытым полям.
3. Инкапсуляция позволяет изменять реализованный код. Не нарушая другой код. Который реализовал этот код.
4. Он защищает данные и коды от внешнего наследования. Таким образом. Инкапсуляция помогает достичь безопасности.
5. Это повышает ремонтопригодность приложения.
6. Если вы не определяете метод setter в классе. То поля можно сделать доступными только для чтения.
7. Если вы не определяете метод getter в классе. То поля могут быть сделаны только для записи.

Недостаток инкапсуляции в Java


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

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


Скрытие данных в Java является важным принципом объектно-ориентированной системы программирования (OOPs). Это предотвращает доступ к членам данных (переменным) непосредственно из-за пределов класса. Так что мы можем достичь безопасности данных. Эта функция oops называется скрытием данных в Java.

Посторонний человек не может получить доступ к нашим внутренним данным напрямую. Или наши внутренние данные не должны выходить напрямую. После проверки или аутентификации внешний человек может получить доступ к нашим внутренним данным.

Например, предоставив правильное имя пользователя и пароль. Вы сможете получить доступ к информации вашего почтового ящика Gmail.

Как добиться скрытия данных программно?


Объявив члены данных (переменные) закрытыми. Мы можем добиться или реализовать скрытие данных. Если переменные объявлены закрытыми в классе. Никто не может получить к ним доступ извне.

Самое большое преимущество сокрытия данных заключается в том. Что мы можем добиться безопасности.

Ключевые моменты:

1. Настоятельно рекомендуется объявить члены данных в классе закрытыми.

2. Сочетание скрытия данных и абстракции-это не что иное. Как инкапсуляция.

Инкапсуляция = Скрытие данных + Абстракция

Если какой-либо компонент следует за скрытием и абстракцией данных. Он называется инкапсулированным компонентом.

Плотно инкапсулированный класс в Java


Если каждая переменная объявлена как частная в классе. Она называется плотно инкапсулированным классом в Java. Для плотно инкапсулированного класса мы не обязаны проверять. Содержит ли класс метод getter и setter или нет и объявлены ли эти методы как общедоступные или нет.

Например:

учетная запись публичного класса { частный двойной баланс; публичный двойной getbalance() 

Решите следующие вопросы. Чтобы четко понять концепцию.

Вопрос: Какие из следующих классов плотно инкапсулированы?

класс А { класс В расширяет А { класс C расширяет A { 

Ответ: Класс А и класс С-это плотно инкапсулированные классы. Класс B не является плотно инкапсулированным классом из-за неприватизированной переменной y. Любой может получить доступ к нему непосредственно из-за пределов класса.

класс Р { класс Q расширяет P { класс R расширяет Q { 

Ответ: Ни один из них не является плотно инкапсулированным классом. Поскольку класс Q является дочерним классом P. Непубличные данные-члены класса P по умолчанию доступны в подклассе Q. Аналогично. Класс R является подклассом Q. Все непубличные данные-члены класса Q по умолчанию доступны внутри класса R.

Ключевые моменты:

1. Если родительский класс не является плотно инкапсулированным. Ни один дочерний класс не является плотно инкапсулированным. Поскольку непубличные члены данных родительского класса по умолчанию доступны каждому дочернему классу.

Таким образом. Мы можем сказать. Что сокрытие данных. Инкапсуляция и Плотно инкапсулированные концепции классов используются в целях безопасности.

Поскольку методы getter и setter широко используются в программировании Java. Но не все понимают и реализуют эти методы должным образом.

Итак, если ваша концепция метода геттера и сеттера не ясна. Сначала я хотел бы порекомендовать вам четко понять методы геттера и сеттера. Прежде чем изучать примеры программ инкапсуляции.

Геттер и сеттер в Java с примером программы

Примеры Программ Инкапсуляции Java


Давайте разберемся в некоторых примерах программ. Основанных на инкапсуляции в Java.
:
упаковочные энкапрограммы; ученик публичного класса { имя частной строки; публичная строка getName() { public void setName(String studentName) { 

В этом примере программы мы объявили имя частной переменной в классе Student. Таким образом. Член данных из-за пределов класса не может быть доступен непосредственно таким образом:

класс EncapsulatedTest { public static void main(String[] arg) { Student obj = новый студент(); obj.name = Поскольку имя-это личное. 

Чтобы удалить проблему ошибки компиляции из приведенного выше кода. Нам нужно вызвать getter. GetName () и setter setName (). Чтобы прочитать и обновить значение переменной.

класс EncapsulationTest { public static void main(String[] args) { Student obj = new Student();// Создание объекта класса Student с помощью ключевого слова new. obj.setName(String studentName = obj.getName(); // чтение значения переменной. 

Выход: Амит

Возьмем другой пример программы. Где все три поля данных будут объявлены закрытыми. К которым нельзя получить доступ непосредственно из вне класса. Эти методы могут быть доступны через общедоступные методы только из-за пределов класса.

Поля stdName. StdRoll и stdId будут сделаны скрытыми полями данных с использованием техники инкапсуляции концепций OOPs в Java. Посмотрите на исходный код программы. Чтобы лучше понять.

Исходный код программы 2:

энкапРограммы пакетов; Студент публичного класса { // Шаг 1: Объявите переменные частными в классе. private String stdName; // private field. private int stdRollNo; private int stdId; // Шаг 2: Примените метод public getter для каждой частной переменной. публичная строка getStdName() { // Частные поля могут быть доступны только внутри открытого метода. public int getStdRollNo() public int getStdId() // Шаг 3: Примените метод public setter для каждой частной переменной. public void setStdName(строковое имя) { public void setStdRollNo(int rollNo) { public void setId(int id) { } публичный класс EncapsulationTest { public static void main(String[][] args) { // Шаг 4: Создайте объект класса Student с помощью ключевого слова new. obj - это ссылочная переменная класса student. Указывающая на объект класса student. Студент obj = новый студент(); // Шаг 5: Вызовите метод setter и установите значение переменных. obj.setStdName(obj.setStdRollNo(4); obj.setStdId(12345); // Шаг 6: Вызовите метод getter. Чтобы прочитать значение переменных и распечатать его. System.out.println( System.out.println(

Выход: Имя студента: Киран Студенческий рулон№: 4 Студенческий билет: 12345

Что произойдет. Если мы не будем использовать инкапсуляцию?


Если мы не используем инкапсуляцию в программе. Поля не будут закрытыми и могут быть доступны любому человеку вне класса. Давайте создадим программу. В которой мы поймем влияние отказа от использования метода инкапсуляции в Java-программе.

Исходный код программы 3:

пакет encapTest; ученик класса { String id; // Здесь инкапсуляция не используется. Так как поле не является частным. } публичный класс EncapsulationTest { public static void main(String[][] args) { Student st = новый студент(); st.id=

Предположим. Что в приведенной выше программе 3 кто-либо изменяет тип данных id со строки на целое число, как это:

пакет encapTest; ученик класса { Целочисленный идентификатор; // Изменен со строки на целое число. } класс EncapsulationTest { public static void main(String[][] args) { 

Что же теперь будет? Всякий раз, когда Id был использован. То будет сгенерирована ошибка времени компиляции.

Давайте разберемся. Как инкапсуляция позволяет модифицировать реализованный Java-код. Не нарушая другой код. Который реализовал этот код?

Поскольку тип данных Id был изменен со строкового на целочисленный. Поэтому мы будем изменять только метод getter и setter. Чтобы избежать взлома других кодов. Посмотрите на исходный код программы.

Исходный код программы 4:

пакет encapTest; ученик класса { Целочисленный идентификатор; публичная строка getId() { return String.valueOf(id);// Метод String valueOf() преобразуется из int в String. Он преобразует int в Строку. Long в строку. Boolean в строку. Character в строку. Float в строку. Double в строку. } public void setId(String id) } открытый класс EncapsulationTest { public static void main(String [][] args) { Студент st = новый студент(); st.setId(

Выход: 2

Подробнее об инкапсуляции:
1. Пример программы инкапсуляции на Java для практики
2. 12 Реальных вопросов интервью инкапсуляции и ответов

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

Ключевые моменты. Которые нужно запомнить:

1. Инкапсуляция-один из четырех принципов концепций ООП. А остальные три-Абстракция. Наследование и полиморфизм.
2. Концепции OOPs в Java-программе реализуются с помощью четырех принципов. Они представляют
собой инкапсуляцию (защиту данных класса от доступа членов другого класса).
b. Абстракция (Скрытие данных класса от других классов)
c. Наследование (Использование кода. Написанного в классе внутри других классов)
d. Полиморфизм (Использование различных методов с одинаковым именем)

Спасибо за чтение!!!
Далее ⇒ Наследование в Java⇐ PrevNext ⇒