본문 바로가기

Java

Java의 접근제어자(Access Modifier)

[접근제어자(Access Modifier)]

변수나 메소드의 사용 권한은 다음과 같은 접근 제어자를 사용하여 설정할수 있다.

 

private

private 이 붙은 변수, 메소드는 해당 클래스에서만 접근이 가능하다.

default

접근 제어자가 없는 변수, 메소드는 default 접근 제어자가 되어 default로 지정된 변수나 메서드가 있는 클래스와 같은 패키지 내에서만 접근이 가능하다.

접근 제어자를 별도로 설정하지 않는다면 default 접근 제어자가 된다.

package house;

public class HouseKim {
    String lastname = "kim";  // lastname은 default 접근제어자로 설정된다.
}
package house;

public class HousePark {
    String lastname = "park";

    public static void main(String[] args) {
        HouseKim kim = new HouseKim();
        System.out.println(kim.lastname);  // HouseKim 클래스의 lastname 변수를 사용할 수 있다.
    }
}

protected

protected가 붙은 변수, 메소드는 동일 패키지의 클래스 또는 해당 클래스를 상속받은 다른 패키지의 클래스에서만 접근이 가능하다.

package house;

public class HousePark {
    protected String lastname = "park";
}
package house.person;  // 패키지가 서로 다르다.

import house.HousePark;

public class EungYongPark extends HousePark {  // HousePark을 상속했다.
    public static void main(String[] args) {
        EungYongPark eyp = new EungYongPark();
        System.out.println(eyp.lastname);  // 상속한 클래스의 protected 변수는 접근이 가능하다.
    }
}

public

public 접근제어자가 붙은 변수, 메소드는 어떤 클래스에서라도 접근이 가능하다.

 

 

Reference.
https://wikidocs.net/232