추상화 대 캡슐화: 추상화와 캡슐화의 차이점

게시 됨: 2021-02-09

목차

소개

모든 프로그래머는 깔끔하고 깨끗한 코드를 개발하기 위해 번창하며 갑옷이나 OOP 개념에서 적절한 무기를 사용해야 합니다. 적절한 OOP 개념을 사용하면 복잡성이 줄어들고 개체의 엔터티가 코드의 다른 부분과 분리됩니다. 또한 가독성이 향상되고 필요한 경우 쉽게 수정할 수 있습니다.

또한 상속과 같은 OOP 개념은 코드의 확장성을 제공합니다. 이러한 개념은 추상 클래스 정의, 이전에 구현된 코드 업데이트, 실제 시나리오에 대한 응용 프로그램 구현에 유용합니다.

추상화, 캡슐화는 객체 지향 프로그래밍의 기본 개념입니다. 그리고 모든 프로그래머는 깨끗하고 재사용 가능한 코드를 위해 이러한 개념을 구현합니다. 그러나 이 두 개념 사이에는 상당한 수의 차이점이 있습니다. 이 기사에서 이해해 보겠습니다.

먼저 추상화와 캡슐화의 개념을 간단히 살펴보겠습니다.

추출

추상화는 불필요한 데이터를 숨기고 관련 데이터만 보여주는 프로세스입니다. 데이터의 바다에서 우리는 사용자에게 일부 데이터의 투명성만 유지하고 있습니다. 객체 지향 프로그래밍에서 이 중요한 개념은 코드의 복잡성을 줄이고 가독성을 높일 것입니다.

예를 들어 온라인 과정 등록 포털을 만드는 작업이 할당되었고 사용할 수 있는 데이터 필드가 {이름, 나이, 현재 직업, 대학 이름, 과정 이름, 지불 방법, 형제자매 이름, 결혼 여부, 차량 숫자}.

사용 가능한 데이터 필드를 살펴본 후 일부 필드는 과정 등록 포털에 필요하지 않으며 {형제 이름, 결혼 여부, 차량 번호}와 같은 필드는 과정 등록에 필요하지 않다는 것을 이해하게 될 것입니다.

따라서 우리는 구체적이고 관련 데이터만 선택해야 합니다. 이제 필요한 필드는 {이름, 나이, 현재 직업, 대학 이름, 코스 이름, 지불 방법}입니다. 이것은 전체 데이터에서 선택된 정보를 에스코트했기 때문에 OOP에서 추상화의 예입니다.

이제 이 새로운 데이터는 과정 상태 추적기, 과정 완료 기록 등과 같은 일부 다른 응용 프로그램에서도 사용할 수 있습니다. 우리는 변경 없이 동일한 데이터를 사용할 수 있습니다.

많은 사람들이 추상화와 추상 클래스에 대해 자주 혼동하는데, 둘 다 관련이 있습니까?

추상 클래스는 추상화와 다르며 추상 클래스/메소드는 자식 클래스 또는 하위 클래스에서 구현하려는 의도로 생성됩니다. 반면 추상화는 단순히 데이터를 숨기고 public, protected, private과 같은 액세스 지정자를 사용하여 관련 데이터만 표시하는 것입니다.

캡슐화

캡슐화는 데이터 멤버를 멤버 변수와 바인딩하는 것입니다. 이렇게 하면 변수에 대한 직접 액세스가 개인 정보를 침해할 수 있고 구현을 숨길 수 없기 때문에 변수에 대한 직접 액세스를 피할 수 있습니다.

set 및 get과 같은 클래스의 몇 가지 고전적인 메서드를 살펴보았을 수 있습니다. 여기서 set 메서드는 값을 업데이트하거나 변수에 할당하는 데 사용되고 get 메서드는 변수 값을 읽거나 검색하는 데 사용됩니다. 여기에서 해당 클래스의 개체를 사용하여 변수에 직접 액세스할 수 있지만 변수를 비공개로 만들려면 이러한 설정을 사용하고 메서드를 가져와야 합니다.

개념은 간단합니다. 우리는 set 및 get 메소드를 공개하고 변수는 비공개로 만들 것입니다. 따라서 private 객체는 클래스 외부에서 액세스할 수 없지만 클래스 내부에서 액세스할 수 있으므로 클래스 외부의 public 메소드를 통해서만 변수에 액세스할 수 있습니다. 메서드와 변수를 묶거나 묶는 이러한 개념을 캡슐화라고 합니다.

이것을 더 잘 이해하기 위해 간단한 자바 프로그램을 살펴보자.

수업 과정 등록 {
개인 문자열 학생 이름;
개인 문자열 코스 이름;
공개 문자열 getName (){
학생 이름 반환 ;
}
공개 무효 setName (문자열 이름){
.student_name=이름;
}
공개 문자열 getCourse (){
코스 이름 반환 ;
}
공개 무효 setCourse (문자열 과정){
.course_name=과정;
}
}
공개 수업 u pGrad {
공개 정적 무효 메인 (String[] 인수){
CourseRegistration c= new CourseRegistration();
c.setName( "미툰" );
c.setCourse( "데이터 과학" );
System.out.println(c.getName());
System.out.println(c.getCourse());
}
}

위의 코드에서 멤버 변수 학생 이름과 코스 이름이 비공개인 클래스 CourseRegistration을 만들었습니다. 그러나 set name 및 get name 함수를 사용하여 다른 클래스에서 액세스하고 있습니다. 기본 클래스에서 CourseRegistration 유형의 개체를 만들었습니다. set 및 get 함수를 사용하여 멤버 변수를 초기화하고 액세스합니다.

이제 추상화의 정의와 예를 보았으므로 추상화와 캡슐화의 장점과 차이점에 대해 논의해 보겠습니다.

추상화의 장점

  • 사용자는 관련 데이터만 볼 수 있으므로 데이터의 프라이버시가 유지됩니다.
  • 코드의 복잡성을 줄이고 가독성을 높입니다.
  • 추상화를 구현한 클래스는 상속하여 부모 클래스로 사용할 수 있으므로 재사용성을 높이고 중복을 줄일 수 있습니다.

캡슐화의 장점

  • 데이터 멤버를 멤버 함수와 바인딩하는 데 도움이 됩니다.
  • 오류 분석을 위해 효율성과 사용자 친화성을 향상시킵니다.
  • 데이터의 접근성과 투명성을 제어할 때 프로그래머에게 유연성을 제공합니다.

추상화와 캡슐화의 차이점

정의

  • 추상화는 코드의 세부 사항과 구현을 숨기고 있습니다.
  • 캡슐화는 데이터를 숨기고 코드의 가시성을 제어합니다.

단계

  • 추상화는 디자인 수준의 프로세스입니다.
  • 캡슐화는 구현 수준 프로세스입니다.

중추 능력

  • 추상화는 클래스의 구현 대신에 클래스 인스턴스가 무엇을 할 수 있는지에 대한 것입니다.
  • 캡슐화는 데이터 바인딩 및 데이터의 투명성 유지에 대한 제어를 돕습니다.

사용 사례

  • 추상화는 설계 수준 프로세스이며 프로젝트의 설계 단계에서 복잡성을 줄이는 데 사용됩니다.
  • 캡슐화는 구현 수준 프로세스이며 프로젝트의 구현 단계에서 개인 정보를 제공하고 데이터의 투명성에 대한 제어를 유지하는 데 사용됩니다.

구현 방법

  • 자바의 클래스와 인터페이스를 사용하여 추상화를 달성할 수 있습니다.
  • 캡슐화는 클래스를 사용하여 구현되며 데이터 개인 정보 보호에 대한 제어는 protected, public, private와 같은 액세스 지정자를 지정하여 얻을 수 있습니다.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

우리는 OOP 개념의 중요성을 살펴보고 추상화 및 캡슐화의 정의를 이해했습니다. 추상화 및 캡슐화의 예를 살펴보았습니다. 또한 추상화 및 캡슐화와 같은 OOP 개념을 사용할 때의 이점을 살펴보았습니다. 마지막으로 추상화와 캡슐화의 차이점을 살펴보았습니다.

이제 추상화, 캡슐화의 정의와 구현을 알았으므로 코드에 구현하고 지금부터 작성하려는 코드의 복잡성을 줄여보세요!

Java, 전체 스택 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트를 제공하는 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 Executive PG 프로그램을 확인하십시오. , 과제, IIIT-B 동문 상태, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

객체지향 프로그래밍에서 추상화란?

객체 지향 프로그래밍에서 추상화는 객체를 구축하여 문제에 대한 고급 정보를 표현하는 기술입니다. 추상화는 인터페이스의 도움으로 구현되며 인터페이스의 구현은 실제 코드를 사용하여 수행됩니다. 추상화는 구체적인 세부 사항이 다른 인터페이스를 제공하여 소비 모듈에서 숨겨지는 곳에서 구현됩니다. 추상화는 저수준 세부 사항의 구현 세부 사항을 숨기기 위해 구현됩니다. 또한 복잡한 세부 사항을 숨기고 사용자에게 더 간단한 인터페이스를 제공하는 데 사용됩니다.

프로그래밍에서 클래스와 객체는 어떻게 작동합니까?

클래스와 객체는 모든 객체 지향 프로그래밍 언어에서 사용되는 두 가지 주요 개념입니다. 모든 클래스에는 사용하고 조작할 수 있는 일련의 변수와 메서드가 포함되어 있습니다. 객체 지향 프로그래밍 언어에서 프로그램의 모든 객체는 특정 유형을 가지며 객체의 변수와 메소드는 동일한 유형의 메소드에 의해서만 조작될 수 있습니다. 대부분의 객체 지향 언어에서 클래스는 객체를 생성하는 데 사용되며 그 반대의 경우도 마찬가지입니다. 객체 지향 프로그램은 객체, 프로시저 및 데이터 유형으로 구성됩니다. 데이터와 코드를 포함하여 객체 지향 프로그램의 모든 것이 객체입니다.

캡슐화와 추상화의 차이점은 무엇입니까?

추상화는 코드에서 불필요한 세부 사항을 제거하고 관련 부분에 집중하는 방법입니다. 예를 들어, 두 숫자를 곱하는 함수를 작성하는 대신 "곱하기" 함수를 작성하고 임의의 숫자와 임의의 숫자를 곱하는 데 사용할 수 있습니다. 추상화는 특정 데이터를 나타내는 방법입니다. 캡슐화는 무언가의 복잡성을 숨기고 노출하려는 부분만 노출하는 방법입니다. 예를 들어 데이터를 저장하는 데 사용하는 하나 이상의 개인 필드가 있는 클래스가 있는 경우 캡슐화됩니다. 클래스에는 데이터가 포함되어 있으며 공개 데이터를 노출하는 메서드가 있습니다.