[접근제어자(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
'Java' 카테고리의 다른 글
Iterable와 Iterator에 대해 (0) | 2022.07.03 |
---|---|
자바에서의 제네릭과 와일드카드 (0) | 2022.05.12 |
Java Garbage Collection(GC)란 무엇이고 동작방식과 G1GC에 대해 (0) | 2022.05.08 |
JVM 구조와 Java의 실행방식 (0) | 2022.05.07 |
멀티 스레드의 스레드들이 객체를 공유하는데 임계영역의 문제를 해결하지 않은 경우 (0) | 2022.04.09 |