[JAVA] 접근 제한자

오태영·2024년 8월 27일

접근 제한자란?

접근 제한자란 쉽게말해 '접근권한을 어디까지 줄것이냐'가 핵심입니다.

접근제한자는 public, protected, default, private 4가지가 존재합니다.

지시자클래스 내부동일 패키지상속 받은 클래스이외의 영역
privateOXXX
defaultOOXX
protectedOOOX
publicOOOO

이중에서 public과 default만 클래스를 정의할 때 사용이 가능합니다.

public class a{
	...
}
class b {
	...
}

클래스에서 사용가능한 접근제한자는 위와 같이 표현이 가능합니다.
접근 제한자부분을 비워 놓거나 default라 쓰면 default 수준의 클래스를 정의할 수 있습니다.

다음은 인스턴스 변수와 메소드를 대상으로 적용할 수 있는 접근제한자를 코드로 적용해보겠습니다.

public class c {
	public int num1;
    int num2;				// 접근 제한자를 쓰지 않으면 default가 적용
    protected int num3;
    private num4;
    
    public void aaa() {}
    void bbb() {}			// 마찬가지로 접근 제한자를 쓰지 않으면 default가 적용
    protected void ccc() {}
    private void ddd() {}
}

접근제한자 적용

그럼 실제로 코드를 작성해서 접근이 제한되는지 확인해보겠습니다.

package zoo;
public class Tiger {
	public void shout() {
		System.out.println("어흥");
	}
}

package zoo;

class Elephant {
	public void shout() {
		System.out.println("뿌우우");
	}
}

package zz;

public class Run {
	public static void main(String[] args) {
		new zoo.Tiger().shout();
		new zoo.Elephant().shout();
	}
}

zoo라는 패키지에 Tiger, Elephant 클래스를 생성하고 다른 패키지에 Run클래스를 생성하고 실행을 해봤습니다.
그러면 Tiger클래스는 정상작동하고 Elephant클래스는 오류가 나는것을 확인할 수 있습니다.

profile
개발자 지망생

0개의 댓글