Рубрики
Без рубрики

JAVA: ООП (инкапсуляция)

Вопрос 1: Модификаторы доступа? Q2: УПС: Инкапсуляция? Q3: Как добиться инкапсуляции? Q4: Преимущества? 1…. Помеченный как java, ооп.

Вопрос 1: Модификаторы доступа? Q2: УПС: Инкапсуляция? Q3: Как добиться инкапсуляции? Q4: Преимущества?

1. Модификатор доступа:-

1.1 используется для установки уровня доступа для классов, атрибутов, методов и конструкторов. 1.2 java предоставляет модификаторы доступа, такие как public, private, default и protected.

Модификаторы доступа на уровне класса:-

public: класс доступен другим классам по умолчанию: доступ к классу могут получить классы из того же пакета. по умолчанию для модификатора доступа установлено значение default

Модификаторы доступа на уровне метода, атрибутов, конструктора:-

public: код доступен для всех классов private: код доступен только внутри класса default: код доступен только в том же пакете. по умолчанию модификатору доступа присвоено значение default protected: код доступен в том же пакете и вне пакета через подкласс

2. Инкапсуляция:-

2.1 это одна из самых мощных и фундаментальных концепций объектно-ориентированного программирования 2.2, также называемая сокрытие данных , поскольку она скрывает конфиденциальные данные от пользователя, чтобы защитить их от внешнего вмешательства и неправильного использования

объединение данных в единое целое с целью предотвращения доступа к ним из внешнего мира

2.3 например, автомобиль состоит из множества деталей, таких как колеса, двигатель и т.д., Которые вместе образуют единый объект.

2.4 поскольку существует запрет на прямой доступ к данным. Функции – это единственные способы доступа к данным. Это в основном создает щит, из-за которого код или данные не могут быть доступны за пределами экрана

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

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

  • Предположим, сотрудник хочет знать данные об импорте и экспорте материалов, но ему не будет разрешен доступ к этим данным. Скорее всего, он должен будет издать приказ от уполномоченного лица, запрашивающего необходимую информацию. Тогда также конкретный сотрудник не будет напрямую получать доступ к данным, скорее сотрудники уполномоченного отдела соберут данные запроса и передадут их желаемому сотруднику. > таким образом, мы можем сказать, что здесь отдел представляет собой единое целое, которое объединяет данные и сотрудников.

3. Достичь инкапсуляции:-

шаг 1: объявите переменные уровня класса private

таким образом, к ним нельзя получить доступ извне класса

шаг 2: предоставьте сеттер и методы получения , которые объявлены как общедоступные

используется для просмотра или изменения значения переменной

Ссылка на Github на приведенный ниже код Простой пример инкапсуляции:-

public class Encapsulation
{
  //Declaring variables as private
  private String EmployeeName;
  private String EmployeeJob;
  private int EmployeeAge;

  //'public' Setter and Getter Methods
  public void setName(String EmployeeName)
  {
    this.EmployeeName = EmployeeName;
  }
  public String getName()
  {
    return EmployeeName;
  }

  public void setJob(String EmployeeJob)
  {
    this.EmployeeJob = EmployeeJob;
  }
  public String getJob()
  {
    return EmployeeJob;
  }

  public void setAge(int EmployeeAge)
  {
    this.EmployeeAge = EmployeeAge;
  }
  public int getAge()
  {
    return EmployeeAge;
  }

  public static void main (String[] args)
  {
    //creating object
    Encapsulation e = new Encapsulation();

    // setting values through setter methods
    e.setName("SUPRIYA KOLHE");
    e.setAge(22);
    e.setJob("SOFTWARE DEVELOPER");

    // Displaying values through Getter methods
    System.out.println("Name of the employee: " + e.getName());
    System.out.println("Age of the employee: " + e.getAge());
    System.out.println("Job of the employee: " + e.getJob());
  }//PSVM ends
}//Encapsulation class ends

/*
Name of the employee: SUPRIYA KOLHE
Age of the employee: 22
Job of the employee: SOFTWARE DEVELOPER
*/

3.1 как вы можете видеть в приведенном выше примере, здесь мы устанавливаем значения с помощью методов Setter и получаем к ним доступ с помощью метода Getter

где методы Setter устанавливают значение переменной, а методы Getter возвращают значения

4. Преимущества:-

Скрытие данных:- программист может скрывать внутренние классы и предоставлять авторизацию для доступа к ним только нужным пользователям.

ограничивает доступность данных

Простота тестирования:- благодаря упорядоченной структуре легко выполнять модульное тестирование. Гибкость и ремонтопригодность: – программист может сделать код доступным только для чтения и только для записи в соответствии с потребностями.

Методы получения используются для чтения/извлечения данных. Таким образом, использование только их сделает код доступным только для чтения. Методы Setter используются для записи в переменные. Таким образом, использование только их сделает код доступным только для записи.

Пример, доступный только для чтения:

public class Employee
{  
    private String Dept="IT";  
    public String getDept()
    {  
         return Dept;   
    }  
}  

Пример, доступный только для записи:

public class Employee
{  
    private String Salary="80000";  
    public String setSalary()
    {  
         return Salary;   
    }  
}  

Методы получения и установки: – возможность доступа к частным переменным вне класса Возможность повторного использования кода: – возможность эффективно использовать существующий код снова и снова. Контроль и безопасность: – класс имеет контроль над переменными и полями, т.е. над тем, что в них хранится.

Пожалуйста, прокомментируйте, если у вас есть какие-либо отзывы или предложения

Оригинал: “https://dev.to/supriya2371997/java-oop-encapsulation-3pl8”