티스토리 뷰

 

 

메소드, 변수 접근 제어자

  같은 클래스 같은 패키지
(다른 클래스)
다른 패키지 다른 패키지
상속 관계 O
다른 패키지
상속관계 X
public O O O O O
protected O O X O X
default
(또는 명시 X)
O O X X X
private O X X X X

 

 

 

protected 예제

 

package1

package package1;

class ExamplePackage1 {
    protected void methodProtected() {
        System.out.println("methodProtected");
    }
}

 

package2

- ExamplePackage1을 상속받지 않았기 때문에 사용 불가능

package package2;

import package1.ExamplePackage1;

class ExamplePackage2 {
    public static void main(String[] args) {
        ExamplePackage1 example1 = new ExamplePackage1();
        // example1.methodProtected(); // 사용 불가
    }
}

 

- ExamplePackage1을 상속받았기 때문에 사용 가능

package package2;

import package1.ExamplePackage1;

class Example2 extends ExamplePackage1 {
    public static void main(String[] args) {
        Example2 example2 = new Example2();
        Example2.methodProtected(); // 상속 받았기 때문에 사용가능
    }
}

 

 

 

 

클래스 접근 제어자

  다른 패키지
public O
default
(또는 명시 X)
X

 

package1

package package1;

public class Example1 {
	// public 클래스
}
package package1;

class Example2 {
	// default 클래스
}

 

package2

 

package package2;

import package1.Example1; // 사용 가능
// import package1.Example2; //  사용 불가능

public class ExamplePackage2 {
    public static void main(String[] args) {
        Example1 example1 = new Example(); // 생성 가능
    }
}

 

 

반응형

'Backend > JAVA' 카테고리의 다른 글

JAVA 생성자(Constructor)  (0) 2023.07.06
JAVA 클래스 인스턴스 예제  (0) 2023.07.04
댓글
반응형
최근에 올라온 글
공지사항