접근제어자 종류

■private 모든 외부 호출을 막는다

■default 같은 패키지안에서 호출은 허용한다 ■protected 같은 패키지안에서 호출은 허용한다. 패키지가 달라도 상속 관계의 호출은 허용한다 ■public 모든 외부 호출을 허용한다.

접근 제어자 사용 - 필드, 메서드,생성자

private ,default ,protected ,public 모두 사용가능

접근 제어자 사용 - 클래스 레벨

클래스 레벨의 접근 제어자는 private,public 만 사용 가능

  1. 하나의 자바 파일에 public 클래스는 반드시 파일명과 이름이 같아야 한다.
  2. 하나의 자바 파일에 public 클래스는 하나만 등장할 수 있다.
  3. default 접근 제어자를 사용하는 클래스는 무한정 만들 수 있다

캡슐화

  1. 데이터를 숨겨라

객체에는 속성(데이터)과 기능(메서드)이 있다.

캡슐화에서 가장 필수로 숨겨야 하는 것은 속성(데이터)이다.

객체 내부의 데이터를 외부에서 함부로 접근하게 두면, 클래스 안에서

데이터를 다루는 모든 로직을 무시하고 데이터를 변경할 수 있다.

결국 모든 안전망을 다 빠져나가게 된다. 따라서 캡슐화가 깨진다.

  1. 기능을 숨겨라

객체의 기능 중에서 외부에서 사용하지 않고 내부에서만 사용하는 기능들이 있다.

이런 기능도 모두 감추는 것이 좋다. 사용자 입장에서 꼭 필요한 기능만 외부에 노출하자. 나머지 기능은 모두 내부로 숨기자 정리하면 데이터는 모두 숨기고, 기능은 꼭 필요한 기능만 노출하는 것이 좋은 캡슐화이다