본문 바로가기

Dev. Java

[자바 기본기] 제어자

1. 제어자(modifier)란?

- 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여한다.

        - 제어자는 크게 접근 제어자와 그 외의 제어자로 나뉜다.
       
        - 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있으나, 

          접근제어자는 단 하나만 사용할 수 있다.

접근 제어자 : public , protected, default, private

        그           외 : static, final, abstract , native, transient, synchronized,                                      volatile, strictfp






2. static ( 클래스의 , 공통적인 )

  • static이 사용될 수 있는 곳 -  멤버변수, 메서드, 초기화 블럭 


 






3. final ( 마지막의 , 변경될 수 없는 )

  • final이 사용될 수 있는 곳 - 클래스 , 메서드 , 멤버변수 , 지역변수


<덧붙임>







4. 생성자를 이용한 final 멤버변수 초기화

- final이 붙은 변수는 상수이므로 보통은 선언과 초기화를 동시에 하지만,

          인스턴스변수의 경우 생성자에서 초기화 할 수 있다.

 


<덧붙임>

- 예제와 같은 카드 게임의 경우, 카드의 숫자와 모양은 처음 정해진 그대로 가야하므로         final로 변경하지 못하게 했다.

- 초기화의 경우, 생성자에서 이루어진다.





5. abstract ( 추상의 , 미완성의 )

  • abstract가 사용될 수 있는 곳 - 클래스 , 메서드


<덧붙임>






6. 접근 제어자 (access modifier)

- 멤버 또는 클래스에 사용되어, 외부로부터의 접근을 제한한다.


접근 제어자가 사용될 수 있는 곳  -  클래스, 멤버변수, 메서드 , 생성자

        private - 같은 클래스 내에서만 접근이 가능하다.
        
        default - 같은 패키지 내에서만 접근이 가능하다.

        protected - 같은 패키지 내에서 , 그리고 다른 패키지의 자손클래스에서

        public - 접근 제한이 전혀 없다

 




7. 접근 제어자를 이용한 캡슐화

  • 접근 제어자를 사용하는이유
- 외부로부터 데이터를 보호하기 위해서

    - 외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서







8. 생성자의 접근 제어자

- 일반적으로 생성자의 접근 제어자는 클래스의 접근 제어자와 일치한다.

     - 생성자에 접근 제어자를 사용함으로써 인스턴스의 생성을 제한할 수 있다.

 


<덧붙임>


9. 제어자의 조합




참조 : http://choijava.blogspot.kr/2013/08/blog-post_19.html?view=sidebar