다음은 캡슐화 및 추상화에 대한 간략한 정의입니다.
추출:
Java의 추상화 프로세스는 특정 세부 사항을 숨기고 오브젝트의 필수 기능 만 표시하는 데 사용됩니다. 즉, 객체 (인터페이스)의 외부 뷰를 처리합니다. 다른 사이트에서 이것을 볼 수있는 유일한 좋은 예는 인터페이스입니다.
캡슐화 :
기본적으로 private, public, protected 등과 같은 수정 자의 도움으로 객체 상태를 숨기는 것에 관한 것입니다. 필요한 경우에만 공개 메소드를 통해 상태를 노출합니다.
처럼 우리는 수정과 달성 무엇을 private, public또한 아무것도뿐만 아니라 추상화 개념없는 측면 세상 밖으로에서 불필요한 세부 사항을 숨 깁니다
위의 설명에서 캡슐화는 추상화의 일부이거나 추상화의 일부라고 말할 수 있습니다. 그렇다면 왜 캡슐화 용어가 추상화만을 다룰 수있을 때 발명 되었는가? 나는 그것들을 구별하는 큰 차이가있을 것이라고 확신하지만 그물에있는 대부분의 자료는 두 가지에 대해 거의 같은 것을 말합니다.
이 질문은이 포럼에서도 일찍 제기되었지만 구체적인 의심으로 다시 게시하고 있습니다. 일부 응답자들은 또한 추상화는 개념이고 캡슐화는 구현이라고 말합니다. 그러나 나는 이것을 사지 않습니다-그것이 사실이라면,이 두 가지 다른 개념이 우리를 혼란스럽게한다고 생각할 수 있습니다.
업데이트 : -5 년 후 나는이 게시물과 아래의 답변을 기반으로 요점 인 내 자신의 답변을 생각해 냈습니다.
private public인스턴스의 데이터를 보호하는 것이 좋습니다.
An 'abstraction' (noun) is a concept that acts as a super-categorical noun for all subordinate concepts, and connects any related concepts as a group, field, or category.