이전 걸음에서 접근 제한자에 대한 설명을 공부를 했습니다. 그러면 이번 걸음에서는 당연히 사용을 하는 방법에 대해서 공부를 해야 된다고 생각이 들겠죠? 저 또한 접근 제한자의 사용 및 활용을 해야 한다고 생각을 하고 있습니다. 이번 글을 통해서 접근 제한자의 활용과 사용을 보시기를 바랍니다.
접근 제한자를 소스를 통해서 어떻게 사용을 하며 활용을 하는 방법을 이번 걸음에서 배울 수 있습니다. 이번 접근 제한자는 사용을 하면 바로 적용이 되기 때문에 어렵지 않게 활용을 하실 수 있습니다.
접근 제한자에서 public, protected, default, private에 대한 예제 소스를 구현하고 그 소스에 대한 설명을 이번 육십 걸음에서 하도록 하겠습니다. 이전 걸음과 이번 걸음을 같이 보시면 접근 제한자에 대해서 완벽하게 이해하고 사용을 할 수 있습니다.
public
class A{
public int a;
public void print(){
//private int b; 메소드 변수 또는 지역 변수는 사용 X
System.out.println("A");
}
}
public class PublicTest {
public static void main(String[] args) {
A a = new A();
a.a = 10;
a.print();
}
}
public은 누구나 사용을 할 수 있는 접근 제한자 입니다.
protected
class A{
protected int a;
protected void print(){
//protected int b; 메소드 변수 또는 지역 변수는 사용 X
System.out.println("A");
}
}
//같은 패키지 아닙니다.
class B extends A{
B(){
a = 10;
print();
}
}
protected는 상속 받은 자식만 사용을 할 수 있게 됩니다. 만약에 default인 상황이 되면 default는 같은 패키지 여서 사용이 가능 할 수 있기 때문에 상황을 꼭 확인 이 필요 합니다.
default
class A{
int a; //default
void print(){ // default
int b; // 접근 제한자가 없게 사용은 당연히 가능합니다.
System.out.println("A");
}
}
public class PublicTest {
public static void main(String[] args) {
A a = new A();
a.a = 10;
a.print();
}
}
default는 같은 패키지에서 사용이 가능 합니다. 하지만 패키지가 달라지면 사용을 할 수가 없습니다. 이때 default는 접근 제한자를 쓰지 않으면 됩니다.
private
class A{
private int a;
private void print(){
//private int b; 메소드 변수 또는 지역 변수는 사용 X
System.out.println("A");
}
}
public class PublicTest {
public static void main(String[] args) {
A a = new A();
//a.a = 10; 접근 불가능 합니다.
//a.print(); 접근 불가능 합니다.
}
}
private는 본인만 접근이 가능합니다. 그래서 다른 곳에서는 접근을 할 수 없습니다. A class 안에서만 사용을 해야 합니다.