클래스의 접근을 제한하는 역할을 한다. 접근 제한자의 종류는 4가지다.
public → protected → default → private의 순서로 제한의 정도가 강하다. 접근 제한자를 사용하는 목적은 다양하다. 객체에 포함된 특정한 데이터를 보호해야 하는 경우 접근제한자를 사용해서 그 정도를 조절할 수 있다.
case1 : 모든 패키지에 제한 없음
package classes;
public class SpSc {
public String vPublic = "Public MV 확인";
protected String vProtected ="Protected MV 확인";
/*default*/ String vDefault = "Default MV 확인";
private String vPrivate ="Private MV 확인";
public void mPublic(){
System.out.println("Public MM 확인");
}
protected void mProtected(){
System.out.println("Protected MM 확인");
}
/*default*/void mDefault(){
System.out.println("Default MM 확인");
}
private void mPrivate(){
System.out.println("Private MM 확인");
}
public static void main(String[] args) {
SpSc sPsC = new SpSc();
System.out.println(sPsC.vPublic);
System.out.println(sPsC.vProtected);
System.out.println(sPsC.vDefault);
System.out.println(sPsC.vPrivate);
sPsC.mPublic();
sPsC.mProtected();
sPsC.mDefault();
sPsC.mPrivate();
}
}
case 2 : 같은 패키지 내에 있으나 다른 클래스에 있는 경우 private 에러 발생
package classes;
class SpDc {
public static void main(String[] args) {
SpSc sPsC = new SpSc();
System.out.println(sPsC.vPublic);
System.out.println(sPsC.vProtected);
System.out.println(sPsC.vDefault);
System.out.println(sPsC.vPrivate); //에러
sPsC.mPublic();
sPsC.mProtected();
sPsC.mDefault();
sPsC.mPrivate(); //에러
}
}
case 3 : 다른 패키지에서 상속 시 private, default 에러
import classes.SpSc;
class DpIc extends SpSc{
public static void main(String[] args) {
DpIc dPiC = new DpIc();
System.out.println(dPiC.vPublic);
System.out.println(dPiC.vProtected);
System.out.println(dPiC.vDefault); //에러
System.out.println(dPiC.vPrivate); //에러
dPiC.mPublic();
dPiC.mProtected();
dPiC.mDefault(); //에러
dPiC.mPrivate(); //에러
}
}
case 4: 다른 패키지 & 상속 X 경우 private, default, protected 에러
import classes.SpSc;
class DpDc {
public static void main(String[] args) {
SpSc dPdC = new SpSc();
System.out.println(dPdC.vPublic);
System.out.println(dPdC.vProtected); //에러
System.out.println(dPdC.vDefault); //에러
System.out.println(dPdC.vPrivate); //에러
dPdC.mPublic();
dPdC.mProtected(); //에러
dPdC.mDefault(); //에러
dPdC.mPrivate(); //에러
}
}
'문돌이의 IT > 자바(Java)' 카테고리의 다른 글
자바(Java) 생성자를 사용해보자 (0) | 2016.03.05 |
---|---|
자바(Java) getter setter 메소드 (0) | 2016.03.04 |
자바(Java) 다차원배열의 기본 (0) | 2016.03.02 |
자바(Java) System.arraycopy 배열 복사하기 (1) | 2016.03.01 |
자바(Java) Math.random()으로 중복없이 로또번호 생성하기 (9) | 2016.02.29 |