기록장
파이널 필드랑 상수를 설명해 줄게 본문
728x90
파이널은 최종적인 필드라는 뜻이겠지?
final 필드는 초기값이 저장되면 이것이 최종적인 값이 돼
그래서 수정할 수가 없어
선언방법은
final 타입 필드 [= 초기값];
이렇게 하면 돼
파이널 필드에 초기값을 줄 수있는 방법은 두개야
1. 필드 선언 시에 주는 방법이랑 -->단순 값일 때
2. 생성자에서 주는 방법 --> 복잡한 초기화, 외부 데이터로 초기화
package sec02.exam01;
public class Person {
final String nation = "Korea";
final String ssn;
String name;
public Person(String ssn, String name) {
this.ssn =ssn;
this.name =name;
}
}
package sec02.exam01;
public class PersonExample {
public static void main(String[] args) {
Person p1 = new Person("123456-123456", "홍길동");
System.out.println(p1.nation);
System.out.println(p1.ssn);
System.out.println(p1.name);
//p1.nation = "usa";
//p1.ssn = "654321-7654321";
p1.name="홍삼원";
}
}
상수를 설명해 줄게
불변의 값을 저장하는 필드를 자바에서는 상수라고 해
(수학에서는 원주율(파이),지구의 무게 및 둘레)
근데 위에서 말한 파이널이랑은 달랑
왜냐면 파이널 필드는 객체마다 저장이 되고 생성자의 값 마다
여러가지 값을 가질 수 있거든? ( 위에 홍길동처럼)
하지만 상수는 불변의 값이라고 했지?
객체마다 저장할 필요가 없는 공용성도 있고 여러 가지 값으로 초기화가 안돼
즉 상수는 static이면서 final이지
static final 필드는 객체마다 존재하지 않고 클래스만 존재해
한 번 초기값이 저장되면 변경 안돼~
static final 타입 상수 = 초기값;
이렇게 선언해
상수 이름
-모두 대문자
-다른 단어가 혼합된 이름이면 언더바(_)로 단어들을 연결해줘
static final double PI = 3.14159;
static final double EARTH_RADIUS =6400;
static final double EARTH_EARTH = 4 * Math.PI * EARTH_RADIUS * EARTH_RADIUS;
이런게 올바르게 선언한 형식이야
package sec02.exam01;
public class Earth {
static final double EARTH_RADIUS = 6400;
static final double EART_ARE = 4 * Math.PI * EARTH_RADIUS * EARTH_RADIUS;
}
상수 선언
package sec02.exam01;
public class EarthExample {
public static void main(String[] args) {
System.out.println("지구의 반지름" + Earth.EARTH_RADIUS+"km");
System.out.println("지구의 표면력" + Earth.EART_ARE+"km");
}
}
상수 사용
728x90
'개발 > JAVA' 카테고리의 다른 글
상속에 대해서 설명해줄게 (0) | 2022.05.16 |
---|---|
접근제한자 공부하면서 코드 짠거 (0) | 2022.05.15 |
정적 변수 코드 짜봤어~ 주의할 점도 알려 줄게 (0) | 2022.05.15 |
메소드를 알려줄게 2 (0) | 2022.05.14 |
메소드를 말해줄게 (0) | 2022.05.14 |
Comments