본문 바로가기

BackEnd/Java

[java] 이것이 자바다 ch06 fianl 필드와 상수

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
반응형