[Java] 접근제한자

zizi·2023년 5월 3일
0

Java

목록 보기
17/27

접근 제한자란 클래스 내에서 멤버의 접근을 제한하는 역할을 한다.

접근제한자의 종류

  • public
    어떤 클래스든 접근할 수 있다는 것을 의미. (전체 공개)

  • protected
    같은 패키지와 서로 다른 패키지다 하더라도 상속받은 자식 클래스에서는 접근할수 있다는 것을 의미

  • default 접근 지정자(접근제한자를 적지 않은 경우)
    자기자신과 같은 패키지에서만 접근할 수 있다는 것을 의미

  • private
    자기 자신만 접근할 수 있다는 것을 의미

    public class AccessObj{
        private int i = 1;
        int k = 2; // default접근 제한자
        public int p = 3;
        protected int p2 = 4;
    }
  • AccessObj를 사용하는 AccessObjExam
    • AccessObj의 필드 i 의 접근 제한자는 private이므로 다른 클래스인 AccessObjExam에서 접근할 수 없다.
    public class AccessObjExam extends AccessObj{	//패키지는 다르지만 상속관계(extends)에 있으므로 
        public static void main(String[] args) {	//protected 접근제한자로 지정된 필드 p2에 접근할 수 있다.
            AccessObjExam obj = new AccessObjExam();
            System.out.println(obj.p);
            System.out.println(obj.p2);
            System.out.println(obj.k);	//같은 패키지 시 오류 발생하지 않고, 다른 패키지 시 컴파일 오류가 발생
            System.out.println(obj.i);	//컴파일 오류가 발생
        }
    }

접근제한자 예시

public class Car {
    public String name;
    protected int number;
    
    public Car(String name, int number) {
        this.name = name;
        this.number = number;
    }
}
public class CarExam{
    public static void main(String[] args) {
        Car car = new Car("포니", 1234);
        
        System.out.println("name: " + car.name);
        System.out.println("number: " + car.number);
        
    }
}
profile
좋았다면 추억이고 나빴다면 경험이다.🍀

0개의 댓글

관련 채용 정보