final 필드 선언
- final 필드는 초기값이 저장되면 최종적인 값이 되어서 프로그램 실행 도중에 수정할 수 없게 됨
- final 필드에 초기값을 주려면 필드 선언 시에 초기값을 대입하거나 생성자에서 초기값을 대입
출처, 이것이 자바다
package ch06.sec11.exam01;
/*
* final 키워드를 적용하면, 초기값 이후 다른값으로 변경불가.
*/
public class Korean {
final String nation = "대한민국";
final String ssn;
String name;
//ssn은 생성자를 통하여 초기값 사용.
public Korean(String ssn, String name) {
this.ssn = ssn;
this.name = name;
}
}
package ch06.sec11.exam01;
public class KoreanExample {
public static void main(String[] args) {
Korean k1 = new Korean("123456-1234567", "홍길동");
//필드값 출력
System.out.println(k1.nation);
System.out.println(k1.ssn);
System.out.println(k1.name);
//필드값 변경하기
// k1.nation = "USA"; //final 필드이므로 값 변경불가.
// k1.ssn = "123-12-1234"; //final 필드이므로 값 변경불가.
k1.name = "이몽룡"; //final 필드가 아니어서 변경가능.
}
}
상수 선언
- 상수: 불변의 값을 저장하는 필드
- 상수는 객체마다 저장할 필요가 없고, 여러 개의 값을 가져도 안 되기 때문에 static이면서 final
출처, 이것이 자바다
package ch06.sec11.exam02;
/*
* 상수선언 : 값이 불변인 것(영구적인 의미)을 이름으로 명칭을 사용
* static final
* 상수이름은 규칙이 아니지만, 대문자로 한다.
*/
public class Earth {
//지구의 반지름 : 6400
static final double EARTH_RADIUS = 6400;
static final double EARTH_SURFACE_AREA;
static {
EARTH_SURFACE_AREA = 4 * Math.PI * EARTH_RADIUS * EARTH_RADIUS;
}
}
package ch06.sec11.exam02;
public class EarthExample {
public static void main(String[] args) {
//상수 읽기가능, 변경 불가능.
System.out.println("지구의 반지름: " + Earth.EARTH_RADIUS + "km");
System.out.println("지구의 표면적: " + Earth.EARTH_SURFACE_AREA + "km^2");
}
}
'객체 지향 프로그래밍 - 클래스' 카테고리의 다른 글
접근 제한자 (0) | 2023.01.17 |
---|---|
패키지 (0) | 2023.01.17 |
정적 멤버 (0) | 2023.01.16 |
인스턴스 멤버 (0) | 2023.01.16 |
메소드 선언과 호출 (0) | 2023.01.16 |