캡슐화

종원유·2021년 11월 23일
0

Java

목록 보기
1/11

캡슐화

캡슐화 : 관련이 있는 변수와 함수를 하나의 클래스로 묶고 외부에서 쉽게 접근하지 못하도록 하는 것.
객체에 직접적인 접근을 막고 외부에서 내부의 정보에 직접접근하거나 변경할 수 없고, 객체가 제공하는 필드와 메소드를 통해서만
접근이 가능하다.

  캡슐화의 장점
     : 정보은닉(Information Hiding)
        외부에서 객체접근하는데 잇어서 정보를 숨기고 객체의 연산을 통해서만 적근이 가능하도록 하는 것.
        정보은닉의 장점은 외부에서 특정 객체의 데이터 및 함수를 직접 접근을 막음으로써 변경을 못하게 하고 
        유지보수나 확장 시 오류의 범위를 최소화 할 수 있다.
        객체내 정보손상, 오용을 방지, 조작이 바뀌어도 사용 방법 자체는 바뀌지 않고, 데이터가 변경되어도 다른 객체에 영향을 주지 않기 때문에 
        독립성이 좋고, 처리된 결과사용으로 이식성이 좋고, 객체를 모듈화 할 수 있어 새로운 시스템의 구성에 하나의 모듈처럼 사용이 가능하다.
        ex) 데이터는 외부로 공개하지 않고, 몇개의 메소드만 외부로 공개한다.
  
  캡슐화의 핵심
     캡슐화의 핵심은 접근 제어자이다
     접근 제어자의 설계가 잘 이루어져야 자신 내부의 모듈은 감추고, 다른 모듈의 내부 작업도 직접적으로 개입하지 못하도록 할 수 있다.
     
     클래스 접근 제어자
        default : 동일 패키지의 클래스(class)에만 인스턴스(객체)가 생성 가능하다.
        public : 다른 패키지에서 인스턴스(객체)를 생성 가능하다.
        
     메소드 접근 제어자
        private : 동일한 클래스 안에서만 접근 가능하고, this를 사용하는 것들은 외부에서 접근 불가능하고, 상속도 안된다.
        default : 접근 제어자가 없는 형태로 동일한 패키지 안에서만 접근 가능하다.
        protected : 동일한 패키지 안에서 사용가능하고, 다른 패키지라도 상속받은 클래스는 접근 가능
        public : 모든 객체에서 접근 가능하다.
profile
개발자 호소인

0개의 댓글