관리 메뉴

Frog is cry

파이널(day18) 본문

JAVA/국비수업

파이널(day18)

Frog is cry 2020. 7. 23. 17:43
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