Package- default 접근제한자

Mia Lee·2021년 12월 7일
0

JAVA

목록 보기
63/98

public class Ex2 {

	public static void main(String[] args) {

		/*
		 * 접근제한자
		 * 1. public - 모든 클래스에서 접근 가능
		 * 2. protected
		 * 3. default - 같은 패키지 내의 클래스에서 접근 가능
		 *    => 접근제한자를 아무것도 명시하지 않으면 default로 선언됨
		 * 4. private - 자신의 클래스에서만 접근 가능
		 *              (다른 클래스에서 접근 불가)
		 * 
		 */
		
		// 같은 파일 내의(같은 패키지) 다른 클래스의 멤버에 접근
		SameFileOtherClass c1 = new SameFileOtherClass();
//		System.out.println("privateNum : " + c1.privateNum); // X
		// => private 접근제한자는 다른 클래스에서 접근 불가
		System.out.println("defaultNum : " + c1.defaultNum); // O
		System.out.println("publicNum : " + c1.publicNum); // O
		
		// 같은 패키지 내의 클래스의 멤버에 접근
		SamePackageOtherClass c2 = new SamePackageOtherClass();
//		System.out.println("privateNum : " + c2.privateNum); // X
		System.out.println("defaultNum : " + c2.defaultNum);
		System.out.println("publicNum : " + c2.publicNum);
		
		System.out.println("=====================================");
		
		// 다른 패키지 내의 클래스의 멤버에 접근
		OtherPackageOtherClass c3 = new OtherPackageOtherClass();
//		System.out.println("privateNum : " + c3.privateNum); // X
//		System.out.println("defaultNum : " + c3.defaultNum); // X
		// => default 접근제한자는 다른 패키지의 클래스에서 접근 불가
		System.out.println("publicNum : " + c3.publicNum);
		
		c3.print();
		
	}

}

class SameFileOtherClass {
	private int privateNum = 10;
	int defaultNum = 20;
	public int publicNum = 30;
	
	public void print() {
		System.out.println("privateNum : " + privateNum); // O
		System.out.println("defaultNum : " + defaultNum); // O
		System.out.println("publicNum : " + publicNum); // O
		// => 자신의 클래스 내에서는 모든 접근제한자에 접근 가능
	}
}








0개의 댓글