패키지 이름은 패키지에 속해있는 클래스가 최대한 다른 클래스와 중복되는 것을 방지하도록 만든다.
패키지 이름은 일반적으로 도메인을 거꾸로 이용한다.
개발 중에 패키지의 이름과 구조는 변경될 수 있다.
패키지 이름만 보고도 해당 패키지 안에 있는 클래스가 어떤 속성과 기능을 가지고 있는 예상이 될 수 있도록 이름을 만든다.
다른 패키지에 있는 클래스를 사용하기 위해서는 import 키워드를 이용한다.
만일 import 를 하지 않았더라면,
com.java.dailyJournal.DailyJournal object1 = new DailyJournal();
// dailyJournal 패키지의 DailyJournal 클래스로 객체 object1 를 생성
이렇게 다른 패키지의 클래스 경로를 일일히 적어가면서 클래스 객체를 생성해야 한다.
그러나 아래와 같이 다른 패키지의 클래스를 편히 사용할 수 있다.
DailyJournal object1 = new DailyJournal();
다른 패키지에 있는 특정 클래스 import
=> import com.java.dailyJournal
다른 패키지에 있는 모든 클래스 import
=> import com.java.dailyJournal *
// 현재 패키지 : Employee 패키지
pakage com.java.employee;
// dailyJournal 패키지의 Daily 라는 클래스를 사용하기 위해 import 함
import com.java.dailyJournal.Daily;
public class Employee{
DailyJournal object1 = new DailyJournal();
// import 를 하지 않았다면 아래와 같이 클래스를 사용해야 했을 것이다.
// com.java.dailyJournal.DailyJourna object1 = new DailyJournal();
}
동일한 클래스에서 파생된 여러 객체들이 서로 공유하는 멤버변수와 메소드를 사용할 수 있게 해주는 키워드
-클래스의 속성과 메소드에 static 키워드를 사용하면 어디서나 공유하는 멤버변수와 메소드를 사용할 수 있다.
형식 : 클래스나 멤버변수 등의 이름 맨 앞에 static 을 기입
예를들어 다음과 같은 클래스가 있을 때
public class EmployeeBank{
String name;
static int amount = 0; // EmployeeBank 로 부터 만들어서 모든 객체들이 공유하는 static 변수
public EmployeeBank(String name) {
this.name = name;
}
public void saveMoney(int money) {
amount += money;
System.out.println("amount:" + amount);
}
public void getBankInfo() {
System.out.println("Emoloyee name: " + this.name);
System.out.println("amount: " + amount);
}
}
static 변수가 각 객체끼리 공유되는 변수임을 알 수 있다.
public static void main(String[] args){
EmployeeBank parkBank = new EmployeeBank("박찬호");
parkBank.saveMoney(100); // static 변수 amount 에 100 더함
EmployeeBank leeBank = new EmployeeBank("이승엽");
leeBank.saveMoney(300); // static 변수에 300 더해서 400이 됨
leeBank.getBankInfo(); // amount 값 400 출력
parkBank.getBankInfo(); // amount 값 400 출력