1. Static 키워드
1. Static 키워드
- Static 키워드 : 객체가 아닌 클래스로 접근하기 위한 기능을 제공하는 제한자
=> 클래스 (내부 클래스), 필드, 메소드 작성시 사용
2. 제한자
- 제한자 (Modifier) : 특별한 기능을 제공(제한)하기 위해 사용하는 키워드
- Aceess Modifier : private, package, protected, public, static, final, abstarct
3. 정적 필드 (Static Field)
- 정적 필드 (Static Field) : 클래스를 읽어 메모리(MethodArea)에 저장될 때 생성되는 필드
- 객체가 생성되기 전에 메모리에 하나만 생성되는 필드
- 생성자에 초기화 처리하지 않고 직접 초기값을 필드에 저장
- 클래스로 생성된 모든 객체가 정적 필드 사용 가능
=> 메모리 절약 및 필드값 변경 용이
- 클래스 외부에서는 객체가 아닌 클래스를 사용하여 접근 가능
public static int sum;
private static int total;
- 정적 필드는 public 접근 제한자로 설정된 경우 클래스를 이용하여 접근 가능
4. 정적 메소드 (Static Method)
- 정적 메소드 (Static Method) : this 키워드를 제공하지 않는 메소드
- this 키워드가 없으므로 인스턴스 필드 및 메소드 접근 불가능
- 클래스를 사용하여 정적 필드 및 메소드 접근 가능
- 정적 필드가 private 접근 제한자로 설정된 경우 메소드를 이용하여 접근 가능
=> 정적 메소드는 객체가 아닌 클래스를 이용하여 호출 가능
public static int getTotal () {
return (Student.)total;
}
public static int setTotal (int total) {
Student.total = total;
}
2. 인스턴스 (Instance)
1. 인스턴스 (Instance)
- 인스턴스 (Instance) : 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
2. 인스턴스 필드 (Instance Field)
- 인스턴스 필드 (Instance Field) : 객체가 생성될 때 메모리(HeapArea)에 생성되는 필드
private int num;
private String name;
private int kor, eng;
3. 인스턴스 메소드 (Instance Method)
- 인스턴스 메소드 (Instance Method) : this 키워드가 제공되는 메소드
- this 키워드를 이용하여 인스턴스 밒드 및 메소드 접근 가능
- 클래스를 사용하여 정적 필드 및 메소드 접근 가능