다음은 캡슐화 및 추상화에 대한 간략한 정의입니다.
추출:
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.