중급과정/HighJava

[Java] 행성의 면적 구하기 (Enum)

whalerice 2023. 11. 30. 09:03

문제) 태양계 행성을 나타내는 enum Planet을 이용하여 구하시오.
(단, enum 객체 생성시 반지름을 이용하도록 정의하시오.) 

예) 행성의 반지름(KM):
수성(2439), 
금성(6052), 
지구(6371), 
성(3390), 
목성(69911), 
토성(58232), 
천왕성(25362), 
해왕성(24622)

 

public class Homework04_EnumPlanet {
	
	public enum Planet {
		수성(2439), 금성(6052), 지구(6371), 화성(3390), 목성(69911),
		토성(58232), 천왕성(25362), 해왕성(24622);
		
		private Integer data;

		private Planet(Integer data) {
			this.data = data;
		}

		public Integer getData() {
			return data;
		}

		public void setData(Integer data) {
			this.data = data;
		}
		
	}
	
	
	
	
	public static void main(String[] args) {
		
		// 면적구하기
		//%.2f=> 소수점 이하 2자리
		Planet[] enumArr = Planet.values();
		for (Planet p : enumArr) {
			System.out.printf("%s의 면적 : %.2f km²%n", p.name(), 
					4 * Math.PI * p.getData() * p.getData());
		
		}
	}
}