Frog is cry
파이널(day18) 본문
package day19_ex03_final;
// 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;
}
}
package day19_ex03_final;
public class Earth_Ex {
public static void main(String[] args) {
System.out.println("지구의 반지름 : " + Earth.EARTH_RADIUS + "km");
System.out.println("지구의 표면적 : " + Earth.EARTH_SURFACE_AREA + "km^2");
}
}
package day19_ex03_final;
public class Person {
final String nation = "Korea"; // final필드
final String ssn; // final필드
// 주민등록번호 필드는 한번 값이 저장되면 변경할 수 없도록 final필드로 선언하였다.
// 하지만, 주민등록 번호 필드는 Person 객체가 생성되는 시점에 부여되는 것이 상식적이다.
// 그래서 클래스 설계시 초기값을 미리 주지 않고 선언만 한 것이다.
// 이후, 아래의 생성자에서 매개변수 ssn으로 주민등록번호를 받아서
// this.ssn과 같이 초기값을 지정하였다.
String name; // 인스턴스 필드
public Person(String ssn, String name) {
this.ssn = ssn;
this.name = name;
}
}
package day19_ex03_final;
public class Person_Ex {
public static void main(String[] args) {
Person p1 = new Person("123456-1234567","계백");
System.out.println(p1.nation);
System.out.println(p1.ssn);
System.out.println(p1.name);
// 아래의 주석문을 풀면 에러임
// p1.nation = "usa";
// 이것은 nation필드가 final이어서
// 값을 변경할 수 없음 에도 변경하려고
// 시도하였기에 에러입니다.
// p1.ssn = "424222-1212132";
p1.name = "을지문덕";
System.out.println(p1.nation);
System.out.println(p1.ssn);
System.out.println(p1.name);
}
}
package day19_ex03_final;
public class Person2 {
final String field1 = "여름방학";
final String field2 = "8월17일";
final String field3;
String field4;
// Person2() {};
// public Person2(int num) {
// String field3 = "";
// if(num == 1) {
// field3 = "휴강합시다";
// }else if(num != 1) {
// field4 = "공부합시다";
// }
// this.field3 = field3;
public Person2(int num) {
if(num == 1) {
field3 = "휴강합시다";
}else {
field4 = "공부합시다";
field3 = ""; // 주석 시 에러
// final은 둘다 초기화 해줘야 하는데 한가지만 초기화 해주었기 떄문에 에러가 나옴
// final은 생성자를 이용해서 초기화 가능하지만 상수는 불가능함
// 선언과 초기화를 반드시 해줘야함
}
}
}
package day19_ex03_final;
public class Person2_Ex {
public static void main(String[] args) {
Person2 per2 = new Person2(1);
System.out.println(per2.field3);
System.out.println(per2.field4);
// 1넣으면 null이 안나오도록 해보기
}
}
'JAVA > 국비수업' 카테고리의 다른 글
getter_setter(day19) (0) | 2020.07.24 |
---|---|
패키지-import(Day19) (0) | 2020.07.24 |
싱글톤(day18) (0) | 2020.07.23 |
스테틱 변수(day18) (0) | 2020.07.23 |
메소드(day17) (0) | 2020.07.22 |
Comments