[Java] 점프투 자바 ch7

FrugalBoy
2024.12.02조회수 3회

FrugalBoy
구독자 5명구독중 12명
Wanna live like a frugal boy
For the genetically superior, success is easier to attain.
But it is by no means guaranteed.
After all, there is no gene for fate
-Gattaca-


house/person/EungYongPark.java
Copypackage house.person;
public class EungYongPark {
}또는 다음과 같이 * 기호를 이용해 house 패키지 내의 모든 클래스를 사용할 수 있다.
import house.*;
// import house.HouseKim // house 패키지의 HouseKim 클래스 사용가능
public class Sample {
public static void main(String[] args) {
HouseKim kim = new HouseKim();
HousePark park = new HousePark();
}
}접근 제어자를 별도로 설정하지 않는다면 변수나 메서드는 default 접근 제어자가 자동으로 설정되어 동일한 패키지 안에서만 접근이 가능하다.
package house; // 패키지가 동일하다.
public class HouseKim {
String lastname = "kim"; // lastname은 default 접근제어자로 설정된다.
}
house/HousePark.java
Copypackage house; // 패키지가 동일하다.
public class HousePark {
String lastname = "park";
public static void main(String[] args) {
HouseKim kim = new HouseKim();
System.out.println(kim.lastname); // HouseKim 클래스의 lastname 변수를 사용할 수 있다.
}
}
접근 제어자가 public으로 설정되었다면 public 접근 제어자가 붙은 변수나 메서드는 어떤 클래스에서도 접근이 가능하다.
package house;
public class HousePark {
protected String lastname = "park";
public String info = "this is public message.";
}
HousePark의 info 변수는 public 접근 제어자가 붙어 있으므로 어떤 클래스라도 접근이 가능하다. 그래서 다음과 같이 작성할 수 있다.
import house.HousePark;
public class Sample {
public static void main(String[] args) {
HousePark housePark = new HousePark();
System.out.println(housePark.info);
}
}접근 제어자가 protected로 설정되었다면 protected가 붙은 변수나 메서드는 동일 패키지의 클래스 또는 해당 클래스를 상속받은 클래스에서만 접근이 가능하다.
house/HousePark.java
package house; // 패키지가 서로 다르다.
public class HousePark {
protected String lastname = "park";
}
house/person/EungYongPark.java
package house.person; // 패키지가 서로 다르다.
import house.HousePark;
public class EungYongPark extends HousePark { // ...