패키지
src 폴더 내부에는 여러 패키지를 넣을 수 있습니다.
그리고 같은 패키지 내부에는 클래스 들 간에 서로의 객체를 만들어 사용할 수 있습니다.
하지만 다른 패키지에서는 같은 이름의 클래스라도 다르게 적용되며, 독립적입니다.
그러나 다른 패키지에서 import할 수 있는 방법이 있습니다.
package test;
public class Student { // public 이 붙어야 참고할 수 있습니다.
private String name; // private는 자기 클래스 안에서만 접근할 수 있습니다.
private int class_number;
public Student() {} // 디폴트
public Student(String name, int class_number) {
this.name = name;
this.class_number = class_number;
}
public int getName() {return name} // getter
public String getClassNumber() {return class_number} // getter
public void printInfo() {
System.out.println("name: " + name);
System.out.println("class number: " + class_number);
}
}
package test1
import test.Student // import해야한다.(패지키명.클래스명)
import test.* // 해도 되지만 위에 방법을 권장한다.
public class UseStudentInfo {
public static void main(String[] args) {
Student gyu = new Student("gyu",1);
gyu.printInfo(); // name : gyu \n class number : 1
}
}
접근 제어자
변수, 메서드, 생성자에 대한 접근 권한을 지정합니다.
밑으로 갈수록 접근이 어렵다는 것을 볼수 있습니다.
private는 같은 클래스 내에서만 접근 가능합니다.
default는 같은 패키지 내에서만 접근이 가능합니다.
protected는 다른 패키지 내 자식 클래스에서 접근이 가능합니다.
public은 어디서든 접근이 가능합니다.
이러한 접근제어를 잘못하게 되면
Cannot reduce the visibility of the inherited method
를 보게 된답니다.
cf) 가변인수
인수의 개수를 가변적으로 두는 것을 의미한다.
public static void arr(int ... a) // arr에는 인자가 0~n개 모두 들어갈 수 있다.
주의!
가변 인자는 한번만 사용해야 되고, 일반 인수를 먼저 적어야 한다.
참고자료 : 이젠 나도 자바!(책)
'기술 스텍 > Java' 카테고리의 다른 글
java기초(7) 제네릭스 (0) | 2023.01.24 |
---|---|
java 기초(6) (0) | 2023.01.23 |
java 기초(4) (0) | 2023.01.23 |
java 기초(3) (0) | 2023.01.22 |
java 기초(2) (0) | 2023.01.22 |