Перейти к контенту

Разница между абстракцией и инкапсуляцией в Java

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

Абстракция — это процесс сокрытия деталей реализации от пользователя, пользователю предоставляется только функциональность. Другими словами, у пользователя будет информация о том, что делает объект, а не о том, как он это делает.

 

В Java абстракция достигается с помощью абстрактных классов и интерфейсов.

Инкапсуляция в Java — это механизм объединения данных (переменных) и кода, действующих на данные (методы), в одно целое.

В этом заключается основная разница между абстракцией и инкапсуляцией.

Пример

public class EncapTest {
   private String name;
   private String idNum;
   private int age;
   
   public int getAge() {
      return age;
   }
   public String getName() {
      return name;
   }
   public String getIdNum() {
      return idNum;
   }
   public void setAge( int newAge) {
      age = newAge;
   }
   public void setName(String newName) {
      name = newName;
   }
   public void setIdNum( String newId) {
      idNum = newId;
   }
}
public class RunEncap {
   public static void main(String args[]) {
      EncapTest encap = new EncapTest();
      encap.setName("James");
      encap.setAge(20);
      encap.setIdNum("12343ms");
      
      System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge());
   }
}

Итог

Name : James Age : 20

Оцени статью

Средняя оценка / 5. Количество голосов:

Спасибо, помогите другим - напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

 

Пока нет комментариев.

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

Ваш e-mail не будет опубликован.

СайдбарКомментарии (0)