국비교육/국비교육
day11 - 0805
Luver Duck
2022. 8. 9. 20:43
static(클래스의, 공통적인)
클래스 변수 (static 멤버 변수)
- 클래스 변수는 인스턴스를 생성하지 않아도 사용 가능 (static 영역에서 관리됨)
- 모든 인스턴스에 공통적으로 사용할 수 있으며 일괄 관리된다
클래스 메소드 (static 메소드)
- 클래스 메소드는 인스턴스를 생성하지 않아도 호출 가능 (static 영역에서 관리됨)
- 클래스 메소드 내에서는 인스턴스 멤버들을 직접 사용할 수 없다
static 전용 초기화 구문
- 클래스 변수(static 멤버 변수)는 생성자로 초기화하지 않는다
static {
클래스 변수 초기화;
}
final(마지막의, 변경될 수 없는)
final 클래스
- 다른 클래스에 상속을 할 수 없는 클래스 (다른 클래스의 슈퍼 클래스가 될 수 없다)
final 멤버 변수, final 지역 변수
- 변경할 수 없는 상수가 된다
- public static final 은 상수를 만드는 키워드가 된다
final 메소드
- 오버라이딩(재정의)될 수 없는 메소드 (상속 시 메소드 오버라이딩(재정의)를 금지할 수 있다)
상수의 선언과 상수 호출
- 상수명은 모두 대문자로 한다
import java.util.Random;
public class Test
// 상수 선언 (앞은 숫자 0, 뒤는 숫자 1로 정한다)
public static final int FRONT = 0, BACK = 1;
// 메인 메소드에서 상수 호출
public static void main(String[] args) {
Random r = new Random();
int coin = r.nextInt(2); // 동전 던지기(난수)
if(coin == FRONT) { // 상수 호출 (static - 인스턴스 생성 없이 호출 가능)
System.out.println("앞");
}
else{
System.out.println("뒤");
}
}
- 상수만을 보관하기 위한 클래스를 따로 만들 수도 있다
- 이 때 다른 클래스에서 상수의 호출은 클래스명.상수명 (Coin.FRONT)
public class Coin {
public static final int FRONT = 0, BACK = 1;
}