1. 패키지
Java 프로그램은 많은 클래스로 구성되고, 이러한 클래스를 폴더 형식으로 관리하는 것을 패키지라고 한다.
패키지명을 정할 때는
- 패키지에 속해있는 클래스가 다른 클래스와 중복되는 것을 방지하도록 정한다.
- 일반적으로 도메인을 거꾸로 이용한다.
(패키지를 다른 프로젝트에 그대로 이식해서 사용할 때 도메인은 유니크하기 때문에)
- 개발 중 패키지의 이름과 구조는 변경할 수 있다.
- 패키지명만 보고도 어떤 속성과 기능을 가지고 있는지 알 수 있어야 한다.
2. import
다른 패키지에 있는 클래스를 사용하기 위해서는 import 키워드를 이용한다.
package com.java.employee;
import com.java.dailyJournal.DailyJournal; //import
import com.java.dailyJournal.*; //dailyJournal 하위에 있는 여러 클래스를 import 하는경우
public class Employee{
DailyJournal journal = new DailyJournal();
}
package com.java.dailyJournal;
public class DailyJournal{
}
3. static
클래스의 속성과 메서드에 static 키워드를 사용하면 어디서나 속성과 메서드를 사용할 수 있다.
static 변수 = 정적 변수
static 메서드 = 정적 메서드
static 변수/메서드는 객체에 소속된 것이 아닌 클래스에 고정된 멤버로 클래스로더가 클래스를 메모리영역에 적재할 때 일반적인 객체와는 별도로 관리
static 멤버들은 메모리의 static 영역에 할당된다.
(*static 영역 : 클래스들이 할당되고(객체 X), GC가 관리 X, 모든 객체가 메모리를 공유하는 영역)
(* 객체는 heap 영역에 할당되고, GC 가 관리해줌)
package com.java.employeeBank;
public class EmployeeBank{
String name;
static int amount = 0;
public EmployeeBank(String name){
this.name = name;
}
public void saveMoney(int money){
amount += money;
}
public void getBankInfo(){
//~~
}
}
public static void main(String args){
EmployeeBank park = new EmployeeBank("박찬호");
park.saveMoney(100);
EmployeeBank son = new EmployeeBank("손흥민");
son.saveMoney(300);
}
메모리에 생성된 amount를 객체 간 공유하여 son.saveMoney(300); 을 실행하고 나면
amount 값은 400이 된다.
static을 너무 많이 사용하면 메모리에 부하를 주기 때문에 꼭 필요할 때 사용해야 한다.
728x90
반응형
'개발자 :-) > Java' 카테고리의 다른 글
[Java] 데이터 은닉 (0) | 2022.09.03 |
---|---|
[Java] 클래스 로더(Class Loader) (0) | 2022.09.03 |
[Java] 생성자와 소멸자 그리고 this (1) | 2022.09.02 |
[Java] 객체와 메모리 (0) | 2022.09.02 |
[Java] 메서드 (0) | 2022.09.02 |
댓글