- 접근 지정자
멤버필드나 메소드 앞에 적어준다.
- public : 같은 패키지 내의 다른 클래스에서 접근할 수 있음
- protected : 같은 패키지 내의 클래스에서 접근할 수 있음
- private : 같은 패키지 내의 클래스에서 직접 접근할 수 없음 (같은 패키지 내의 다른 클래스에서는 접근할 수 있음)
- default : interface에서 주로 사용
package package1;
public class Ex06 {
private String name;
private int age;
protected String addr;
double height; // 접근 지정자를 명시하지 않음 // protected
public String phone;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setAddr(String addr) {
this.addr = addr;
}
public void setHeight(double height) {
this.height = height;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public String getAddr() {
return this.addr;
}
public double getHeight() {
return this.height;
}
protected void print() {
System.out.println(name);
System.out.println(age);
System.out.println(addr);
}
}
package package1;
public class Ex07Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Ex06 ex = new Ex06();
// ex.name = "이현경"; // private는 직접 접근할 수 없음
// ex.age = 25;
ex.addr = "시흥"; // protected는 직접 접근이 가능
ex.height = 156.5; // 접근 지정이 없어도 접근 가능
ex.phone = "010-0000-0000";
}
}
- import
패키지가 다를 경우 improt 선언을 해주어야 함
package package3;
// 패키지가 다르면 import를 해주어야 함
import package1.Ex06;
public class Ex08Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Ex06 ex = new Ex06();
// ex.name="이현경"; // private는 다른 패키지에서도 사용할 수 없음
// ex.addr = "경기도"; // protected는 패키지가 다르면 접근할 수 없음
// ex.height = 156.5;
ex.phone = "010-0000-0000"; // public은 어디서든지 접근 가능
// ex.print(); // 패키지가 다르기 때문에 접근할 수 없음
}
}