자바

JAVA 자바 필드 접근 제한과 메서드 접근 제한

알통몬_ 2017. 3. 12. 19:26
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

필드와 메서드 접근 제한

 필드와 메서드를 선언할 때 고려해야 할 사항은 클래스 내부에서만 사용할 것인지, 

패키지 내에서만 사용할 것인지, 아니면 다른 패키지에서도 사용할 수 있도록 할 것인지를 결정해야 합니다. 

이것은 필드와 메서드가 어떤 접근 제한을 갖느냐에 따라 결정됩니다.


필드와 메서드는 public, protected, default, private 접근 제한을 가질 수 있습니다.




예제1)

package field_method_access.package1;


public class A {

//필드

public int field1;

int field2;

private int field3;

//생성자

public A() {

field1 = 1;   

field2 = 1;   

field3 = 1;   

          <- 클래스 내부일 경우 접근 제한자의 영향을 받지 않습니다.

method1();   

method2();   

method3();   

}

//메소드

public void method1() {}

void method2() {}

private void method3() {}

 

}


예제2)

package field_method_access.package1; // 같은 패키지


public class B {

public B() {

A a = new A();

a.field1 = 1;   

a.field2 = 1;   

//a.field3 = 1;   

                      <- private 필드와 메서드 접근 불가.

a.method1();  

a.method2();  

//a.method3();  

}

}

 


예제3)

package field_method_access.package2; // 다른패키지


import field_method_access.package1.A;


public class C {

public C() {

A a = new A();

a.field1 = 1;   

//a.field2 = 1;   

//a.field3 = 1;   

                  <- public 필드와 메서드만 접근 가능.

a.method1();   

//a.method2();   

//a.method3();   

}

}

반응형