ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA 24] 자바 제한자 ( Modifier ) 접근제한자 / 소유제한자 / 수정제한자 / 추상제한자 / 기타제한자
    Language/Java 2018. 2. 13. 18:53
    반응형


    ■ 제한자 ( Modifier )

    1. 클래스 , 인터페이스 , 변수 , 메소드 , 생성자 

       앞에 붙어서 그 기능을 제한하는 Reserved Word ( 예약어 )

    2. 종류 및 특징

    1) 접근 제한자 ( Access Modifier )

    (1) public 

    접근제한이 없다.

    (2) protected

    같은 패키지 안

    다른 패키지 의 부모의 자원

    (3) default

    같은 패키지 안

    (4) private

    자신의 클래스 안


    cf 1) 범위가 넓은 순서

    public > protected > default > private

    cf 2) 접근제한이 강력한 순서

    public < protected < default < private

       3) class 앞에는 public 과 default 만 가능하다.




    2) 소유 제한자 ( static )

    (1) static붙으면 클래스 소유 , 붙지 않으면 객체 소유가 된다.

    (2) 특징

    ① Class ( 클래스 ) 와 Constructor ( 생성자 ) 앞에는 붙지 못한다.

        Memeber Variable ( 멤버 변수 ) 와 Method ( 메소드 ) 앞에만 붙을 수 있다.

    ② static method 내에서는 객체 생성 없이 static 자원을 호출 가능하다.

        해당 자원에 클래스 이름이 생략이 된다.

    ③ Local Variable ( 지역변수 ) 에는 static 이 붙을수 없다.

        오직 Member Variable ( 멤버 변수 ) 만이 소유의 대상이 된다.

    ④ 다른 클래스에서 static 자원을 호출할 때에는 클래스 이름을 생략할 수 없다.

    ⑤ static 자원은 메모리에 오직 1개 생성이 된다.

        해당 클래스의 모든 객체에서 공유 되어진다.

    ⑥ static 메소드에서는 this 와 super 을/를 사용할 수 없다.




    3) 수정 제한자 ( final )

    (1) final 이 붙으면 상수가 되기 때문에 수정을 할 수 가 없다.

    (2) 특징

    ① Class ( 클래스 ) , Variable ( 변수 ) , Method ( 메소드 ) 앞에 붙을 수 있다.

        Constructor ( 생성자 ) 는/은 왜 안될까? ( Constructor 는 Overriding 이 되지 않는다. )

    ② Class ( 클래스 ) 앞에 붙으면 자식을 못 낳는다. 즉 ,  마지막 자식이 된다.

        Variable ( 변수 ) 앞에 붙으면 상수가 된다. 즉 , 초기값을 바꿀수가 없다.

        Method ( 메소드 ) 앞에 붙으면 Overriding ( 오버라이딩 / 재정의 ) 가 되지 않는다.

    ④ static final member variable 이 많은 이유가 있다.

        생각해봅시다.




    4) 추상 제한자 ( abstract )

    (1) abstract 가 붙으면 추상화가 된다.

    (2) 특징

    ① Class 또는 method 앞에만 붙을 수 있다.

    ② Abstract 가 붙은 클래스를 ' 추상 클래스 ' 라고 한다.

        Abstract 가 붙은 메소드를 ' 추상 메서드 ' 라고 한다.

    ③ 하나 이상의 추상 메소드가 있다면 클래스는 반드시 추상 클래스가 되어야 한다.

    ④ 추상 클래스에는 일반 메소드도 포함이 가능하다.

    ⑤ Constructor ( 생성자 ) 앞에는 붙을 수 없다.

        Constructor ( 생성자 ) 는/은 왜 안될까? ( Constructor 는 Overriding 이 되지 않는다. )

    ⑥ 추상 클래스 객체는 완변한 자식 클래스를 만들어 그 객체를 형변환 하여 생성한다.

    ⑦ static abstract 를 함께 사용할 수 없다.




    5) 기타 제한자

    (1) sychronized ( 싱크로나이즈드 / 쓰레드 )

    (2) transient ( 보안 )

    (3) native ( System 자원 )

    반응형
Designed by Tistory.