Access Modifier   접근 제한자, 접근 수정자

(2019-05-23)

Access Control Modifier, 접근 제한 수식자, Modifier, 수식자, 제한자, 한정자

1. [객체지향언어]  수식자/제한자/한정자/변경자 (Modifier)클래스 또는 클래스메소드,프로퍼티 앞에 붙여,
     - 여타 다른 객체에게 대상되는 것을 노출시키는 수준 또는 보호 수준을
     - 결정하는 수식자/제한자/한정자/변경자를 말함

  ㅇ 한편, 이렇게 클래스 또는 객체 단위로 묶어서 변수메소드를 보호하는 것을,
     - 정보은폐(Information Hiding) 또는 캡슐화(Encapsulation) 라고 함


2. [자바언어]  제한자/수식자 (Modifier) 종별

  ㅇ 접근 제한자 : public, protected, private
     - 클래스,메소드,필드 등에 대해 접근 범위(가시성)를 제한 지정
        . public    : 자신을 포함하여 모든 객체에 접근 가능
        . protected : 클래스 멤버 함수 또는 현재 클래스상속받은 클래스에서 접근 가능
           .. 같은 패키지(폴더)에 있는 클래스상속관계의 객체들 만 가능
        . private   : 같은 클래스멤버 함수 또는 멤버 변수 만이 접근 가능
        . default   : 같은 패키지(폴더)에 있는 클래스들 만 접근 가능
  ㅇ abstract 수식자 : 클래스,인터페이스,메소드추상적임을 알림
     - 추상 메소드 : 메소드 선언 만 있고, 본체(내용 정의) 없는 함수 원형과 같은 것
     - 추상 클래스 : 추상 메소드를 갖고 있어, 객체/인스턴스를 직접 생성할 수 없음
     - 추상 인터페이스 : 반드시 추상 메소드를 정의하기 때문에, 굳이 지정 불필요
  ㅇ native 수식자
  ㅇ static 수식자
     - 클래스인스턴스화되지 않아도 접근 가능
  ㅇ final 수식자
     - final 클래스 : 기존 클래스로부터 새로운 서브(확장) 클래스를 만들 수 없음
     - final 메소드 : 서브 클래스에서 메소드 변경이 금지됨 (즉, 오버라이드를 금지하는 것)
     - final 필드   : 그 필드의 값이 변경되는 것을 금지
  ㅇ transient 수식자
     - 객체의 직렬화시에 해당 필드를 직렬화 대상에서 제외
     - 직렬화이란, 인스턴스화된 객체바이트 열로 변환하는 것을 말함
  ㅇ volatile 수식자
  ㅇ synchronized 수식자

  ※ 수식자 사용 대상 (아래 각각을 정의시에 명시하게 됨)
     - 클래스 : public, default, final, abstract
     - 생성자 : public, protected, default, private
     - 멤버 변수 : public, protected, default, private, static, final, transient
     - 멤버 메소드 : public, protected, default, private, static, abstract, final
     - 지역 변수 : 접근제한자(public,protected,private)는 사용 불허


3. [객체지향언어]


[객체지향 프로그래밍] 1. 객체지향 2. 객체지향 프로그래밍 3. 메세지 4. 생성자 5. 접근 제한 수식자 6. 추상 클래스 7. 인터페이스
[객체,클래스,인스턴스] [객체지향 원리/특징] [다형태성] [객체지향 모델링]

 
        최근수정     요약목록     참고문헌