12/19 자바 — package, import , static
패키지 = 디렉토리.
import = 사용할 클래스의 경로를 지정
클래스 구성요소 中 필드,메소드.
static이 붙은 변수 : 클래스 변수.
안붙은 변수 : 인스턴스 변수.
>일반 클래스의 static클래스 변수는 딱 한 번생성자 호출 전에도 메모리에 적재됨.
자바 Object 클래스는 생성자 없이 사용 가능.
ex)System.out.println() , Random.nextInt();
생성된 인스턴스는 참조변수를 통해 호출됨 ( 인스턴스명)
package study;
import java.util.Scanner;
public class BirthMean {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(“생일 4자리(ex:0129) 입력하고 enter!”);
int birth = scanner.nextInt();
int month = birth / 100;
int day = birth % 100;
/*System.out.println(“당신의 입력 값 “ + birth + “맞나요?(맞으면y/틀리면n)”);
Scanner scanner2 = new Scanner(System.in);
String check = scanner2.nextLine();
if (check == “y”) {*/
switch (month) {
case 1:
System.out.printf(month + “월 드래곤의”);
break;
case 2:
System.out.printf(month + “월 바람의”);
break;
case 3:
System.out.printf(month + “월 어둠의”);
break;
case 4:
System.out.printf(month + “월 불꽃의”);
break;
case 5:
System.out.printf(month + “월 정열의”);
break;
case 6:
System.out.printf(month + “월 낭만적인”);
break;
case 7:
System.out.printf(month + “월 냉소적인”);
break;
case 8:
System.out.printf(month + “월 비관적인”);
break;
case 9:
System.out.printf(month + “월 사랑스러운”);
break;
case 10:
System.out.printf(month + “월 내츄럴본”);
break;
case 11:
System.out.printf(month + “월 어색한”);
break;
case 12:
System.out.printf(month + “월 기분나쁜”);
break;
}
if (day < 10) {
System.out.println(day + “일의 바보”);
} else if (day < 20) {
System.out.println(day + “일의 천사”);
} else {
System.out.println(day + “일의 악마”);
}
}/*else {
System.out.println(“다시 해주세요”);
}*/
}
발생한 문제점들
- 930129로 받았을 시 , 01과 29를 Integer메소드로 분리해 낼 방법이 없음.
- 930129받았을 시, String으로 입력 받았을 때, .substring()으로 분리하려고 했는데, 01의 경우 분리 할 시 0이 문제가 생겨서 안뽑힘.
- y/n 조건문에서 y입력해도 else경우로 break됨.
- n입력 했을 시, 처음으로 돌아가는 기능 구현 못했음.