728x90
반응형
1. final 필드 선언
▷ final 필드는 초기값이 저장되면 최종적인 값이 되어서 프로그램 실행 도중에 수정할 수 없게 됩니다.
▷ final 필드에 초기값을 주려면 필드 선언 시에 초기값을 대입하거나 생성자에서 초기값을 대입합니다.
public class Korean { // 인스턴스 final 필드 선언 final String nation = "대한민국"; final String ssn; // 인스턴스 필드 선언 String name; // 생성자 선언 public Korean(String ssn, String name) { this.ssn = ssn; this.name = name; } }
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); // final 필드에는 값을 변경할 수 없다. // k1.nation = "USA"; // k1.ssn = "123-123-12134"; // 인스턴스 멤버의 값 변경은 가능 k1.name = "김자바"; System.out.println(k1.name); } } // 출력 : // 대한민국 // 123456-1234567 // 감자바 // 김자바
2. 상수 선언
▷ 상수 : 불변의 값을 저장하는 필드, 대문자를 사용해야합니다.
▷ 상수는 객체마다 저장할 필요가 없고, 여러 개의 값을 가져도 안되기 때문에 static이면서 final이어야 합니다.
▷ 상수는 대문자로 사용합니다. 두 단어 이상일 경우 언더바( _ )를 이용해서 연결합니다.
public class Earth { // 상수 선언 및 초기화 static final double EARTH_RADIUS = 6400; // 상수 선언 static final double EARTH_SURFACE_AREA; // 정적 블록에서 상수 초기화 static { EARTH_SURFACE_AREA = 4 * Math.PI + EARTH_RADIUS + EARTH_RADIUS; } }
public class EarthExample { public static void main(String[] args) { System.out.println("지구의 반지름 : " + Earth.EARTH_RADIUS + "km"); System.out.println("지구의 표면적 : " + Earth.EARTH_SURFACE_AREA + "km^02"); } } // 출력: // 지구의 반지름 : 6400.0km // 지구의 표면적 : 12812.56637061436km^02
final과 상수의 선언과 사용방법을 알아보았습니다. 해당 변수들은 지정 후 값은 변경이 되지 않습니다.
두 가지를 구분해서 사용하는 이유에 대해서도 아직 확실하게 모르겠네요,,ㅎㅎ
한 번 알아보고 정리해볼게요!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
728x90
반응형
'BackEnd > Java' 카테고리의 다른 글
[java] Getter와 Setter (1) | 2023.01.11 |
---|---|
[java] 접근 제한자 (0) | 2023.01.11 |
[java] 이것이 자바다 ch06 인스턴스 및 정적 멤버 (0) | 2023.01.11 |
[java] 이것이 자바다 ch06 메소드 (0) | 2023.01.11 |
[java] 이것이 자바다 ch06 클래스 (0) | 2023.01.11 |