열혈 Java 9차시

미래·2022년 11월 26일
0

열혈 Java

목록 보기
9/12

9-1 정보 은닉(Information Hiding)

  • 데이터에 직접 접근이 가능하면, 반지름이 음수로 바뀌는 것처럼 논리적 오류는 발생하는데도 컴파일 오류는 발생하지 않을 수 있다
  • 정보 은닉은 외부에서 데이터에 직접 접근을 허용하지 않고
    논리적 오류가 문법적 오류가 되게끔 강제하는 방법이다
  • 데이터 앞에 private을 붙인다
  • Getter와 Setter가 데이터에 접근하는 통로가 된다
  • Getter 메소드와 Setter 앞에는 public을 붙인다
  • 외부에서의 직접 접근을 막고 별도의 메소드를 제공하는 것이 좋은 클래스 설계의 원칙이다

9-2 접근 수준 지시자 (Access-level Modifiers)

  • public > protected > default > private
  • 클래스 정의 대상 : public , default
  • 인스턴스 변수와 메소드 대상: public , protected, default, private
  • public 클래스는 외부에 노출시키는 클래스
  • 소스파일 이름과 public 클래스이름이 같아야 한다
  • default 클래스만 있으면 소스파일 이름 아무거나
  • 소스파일 이름만으로도 public 클래스를 유추할 수 있다
  • 외부 노출도를 높이기 위하여 자바에서 제약을 둔 것이다
  • 이런 규칙으로 인하여 하나의 소스파일에 public 클래스는 오직 하나만 존재할 수 있다
  • 패키지 선언이 안된 클래스들은 디폴트 패키지로 묶인다
  • default는 같은 패키지라면 접근을 허용한다
  • protected는 다른 패키지이더라도 상속 관계라면 접근을 허용한다
  • private은 클래스 내부에서만 접근을 허용한다 다만 메소드로 접근 가능

    출처

9-3

  • 캡슐화는 클래스에다 관련 있는 것을 적절히 담는 것이다
  • 클래스들은 서로 관계를 맺는다
  • 캡슐화가 무너지면 알아야 하는 정보가 늘어나면서 프로그램의 복잡도가 올라간다
  • 각자 역할 충실히 담당하도록 디자인하여 각자가 편하게 존재할 수 있도록 돕는다
  • 클래스의 정의를 무너뜨리고 캡슐화할 수 있고
  • 클래스의 정의를 무너뜨리지 않고 포함 관계로 캡슐화할 수 있다

0개의 댓글