7-21 접근 제어자(Access Modifier)

oyeon·2020년 12월 27일
0

(완)객체지향 개념

목록 보기
24/37
  • private : 같은 클래스 내에서만 접근이 가능하다.
  • (default) : 같은 패키지 내에서만 접근이 가능하다.
  • protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근이 가능
  • public : 접근 제한이 전혀 없다.

클래스 이름 : public, (default) 접근 제어자만 사용 가능
클래스 멤버 : 4가지 전부 사용 가능

예제 - MyParent.java 파일

package pkg1;

public class MyParent{
	private	  int prv;	// 같은 클래스
			  int dft;	// 같은 패키지
	protected int prt;	// 같은 패키지 + 자손(다른 패키지)
	public	  int pub;	// 접근제한 없음.
	
	public void printMembers() {
		System.out.println(prv);	// OK
		System.out.println(dft);	// OK
		System.out.println(prt);	// OK
		System.out.println(pub);	// OK
	}
}

class MyParentTest {
	public static void main(String[] args) {
		MyParent m = new MyParent();
//		System.out.println(m.prv);	// 에러
		System.out.println(m.dft);	// OK
		System.out.println(m.prt);	// OK
		System.out.println(m.pub);	// OK
	}
}

예제 - MyParentTest2.java 파일

package pkg2;

import pkg1.MyParent;	// ctrl + shift + o

class MyChild extends MyParent{
	public void printMembers() {
//		System.out.println(prv);	// 에러
//		System.out.println(dft);	// 에러
		System.out.println(prt);	// OK
		System.out.println(pub);	// OK
	}	
}

public class MyParentTest2 {
	public static void main(String[] args) {
		MyParent p = new MyParent();
//		System.out.println(p.prv);	// 에러
//		System.out.println(p.dft);	// 에러
//		System.out.println(p.prt);	// 에러
		System.out.println(p.pub);	// OK
	}
}
profile
Enjoy to study

0개의 댓글