final 키워드의 특징
- 보통 클래스를 final로 지정하는 이유는 보안 문제 때문이다.
1. 변수를 final로 지정하면 값을 변경할 수 없다.
class Macdonarld {
final int burgerCount = 2;
final int cokeCount;
Macdonarld() {
cokeCount = 2;
// cokeCount를 변경 할 수 없다.
}
void Mac_morning(final int coffee) {
//coffee로 값을 바꿀 수 없다.
}
void Mac_lunch() {
final int bigMaccount = 10;
// bigMaccount 값을 변경 할 수 없다.
}
}
2. 메소드를 final로 저정하면 메소드를 오버라이드할 수 없다.
class Burger {
final int calcMacluch() {
//절대로 오버라이드하면 안 되는 중요한 메소드
}
}
3. 클래스를 final로 지정하면 그 클래스를 확장할 수 없다. (자식 클래스를 만들 수 없다.)
final class BeToDeluxe {
//이 클래스는 확장할 수 없다.
}
cf. 정적 메소드만 들어있는 클래스가 있다면 그 클래스의 인스턴스를 만들 필요가 없기 때문에 그 생성자를 private로 지정하는 것이 좋다.
cf. 자바에서 상수를 만들 때는 변수에 static과 final로 지정하면 된다.
cf. 상수(static final)의 이름은 일반적으로 모두 대문자를 사용한다.
cf. final 인스턴스 변수 값은 선언 할 때 혹은 생성자에서 값을 넣어 주어야 한다.
'개발 및 관리 > Java' 카테고리의 다른 글
자바 숫자 Formatting - 화폐, 숫자, 날짜 (0) | 2013.01.22 |
---|---|
Math 메소드 (0) | 2013.01.22 |
Head First Java - 9장 생성자와 가비지 컬렉션, TestHippo.java (0) | 2013.01.21 |
Head First Java - 9장 생성자와 가비지 컬렉션, TestDuck.java (0) | 2013.01.21 |
Head First Java - 8장 인터페이스와 추상 클래스, Of76.java (0) | 2013.01.21 |