교육 11일차

권재현·2021년 3월 29일
0

교육

목록 보기
9/49

10일차 복습

1.날짜 처리

//Calendar는시스템에서 객체를 취득한다. 컴퓨터에서 가져온다.
	Calendar c = Calendar.getInstance();
		
	System.out.println(c.get(Calendar.YEAR)); //연
//서양과 동양의 차이로 인해 숫자로 보기위해서는 +1, 월은 인덱스 기반 0부터 시작
	System.out.println(c.get(Calendar.MONTH)+1); 
	System.out.println(c.get(Calendar.DATE)); //일
	// 0 -AM, 1 - PM  
	System.out.println(c.get(Calendar.AM_PM));
	System.out.println(c.get(Calendar.HOUR)); //12시간 기준
System.out.println(c.get(Calendar.HOUR_OF_DAY));  //24시간 기준
	
    System.out.println(c.get(Calendar.MINUTE)); //분
	System.out.println(c.get(Calendar.SECOND)); //초
	System.out.println(c.get(Calendar.MILLISECOND)); // 밀리초
	//언어마다 다름. 1 - 일요일, 2 - 월요일, 3 - 화요일
	//요일을 가져오겠다 의 경우는 0부터 시작
	// 주에 몇번째 날인지의 경우는 1 부터 시작.
	System.out.println(c.get(Calendar.DAY_OF_WEEK)); // 

		// y : 연
		// M : 월
		// d : 일
		// a : am/pm
		// H : 24시간 기준 시
		// h : 12시간 기준 시
		// m : 분
		// s : 초
		
		String p = "yyyy-MM-dd HH:mm:ss";
		
	SimpleDateFormat sdf = new SimpleDateFormat(p);
	//현재날짜를 가져와서 해당 포맷으로 변환하여 문자열로 돌려줌.
		String d = sdf.format(new Date());
	
		System.out.println(d);
        

2.스캐너 사용시 주의사항

Scanner sc = new Scanner(System.in);
		
	System.out.println("글자를 입력해주세요");
	String s = sc.nextLine(); //한줄 받을 때 사용
		
	System.out.println(s);
		
	System.out.println("숫자를 입력해주세요");
		
	int a = sc.nextInt();
	System.out.println(a);
		
	//nextLine과 next사용 시 주의사항
	//next는 한글이 터진다.
	//입력 받을 시에는 nextLine을 사용하자
    
	s = sc.nextLine();  //라인을 사용할 경우 라인을 위에 하나 더 넣어준다.
	System.out.println("글자를 입력해주세요");
	s = sc.nextLine(); // next의 경우 다음값을 취득, 엔터와 관계없다.
	System.out.println(s);

While문 사용예제

	Scanner sc = new Scanner(System.in);
		
		//while문 사용시 종료 먼저 만드는 습관.
		while(true) {
			System.out.println("메뉴를 선택하시오.");
			System.out.println("1. 계속\t9.종료");
			int input = sc.nextInt();
			sc.hasNextLine();
			
			if(input == 9) {
				break;
			}
		}
		System.out.println("종료되었습니다.");
	}

3.예외처리


코드안정성 확보. 코드 분기점으로 활용

오버라이딩 시 좁아 질 수 있다.

  • 오류(Error) - 코드상 문제 발생으로 컴파일 할 수 없는 상태
  • 예외(Exception)- 코드 자체는 문제가 없으나 실행 중 값이나 행위에 의하여 발생할 수도 있는 상태

1.try {

​ 내용

}cathch(예외 클래스 변수명){

​ 내용 2

}

실행순서.
1. 내용을 시도한다.
2. 만약 예외클래스에 해당하는 예외가 발생하면, 내용 2를 실행한다.

Exception : 예외 중 최상위 클래스


try{

} cathch( ){

}

  • try와 catch는 한쌍!!

    ※ 예외처리 시 catch에 여래개 지정할 경우 범위가 작은 것부터 지정한다. 이유 추가해야함

    예외메소드

  • toString( ) : 예외사항을 문자로 돌려준다.

  • printStackTrace( ) : 시스템(자바)에게 현재 발생한 예외의 출력을 요구한다.

throw 예외 객체 ; <= 예외 강제 발생

		try {
			String s = "abc";
//			int a = Integer.parseInt(s);
			throw new NumberFormatException();
//			System.out.println("??????"); // dead code
			} catch(NumberFormatException ne) {
				System.out.println("숫자아님");
				ne.printStackTrace();
			} catch(Exception e){
				System.out.println(e.toString());
				e.printStackTrace();
				
			}
			System.out.println("끝난거 맞음.");
			//try와 catch는 한쌍
			TestService5 ts = new TestService5();
				
			try {
				ts.test();
			} catch (Exception e) {
			// TODO Auto-generated catch block
				e.printStackTrace();
				}
	}

throws : 발생할 수도 있는 예외들을 미리 정의, 시한 폭탄 같은 것

	// throws : 발생할 수도 있는 예외들을 미리 정의
	//	 		위험성이 있다.
	public void test() throws Exception {
		System.out.println("메소드");
	}

}

후기

오늘 예외처리는 반드시 추가 공부가 필요하고, 또 오늘 최종 자바 테스트 전에 문제를 주셨는데 아무래도, 콜렉션 프레임워크에 대한 공부가 많이 필요 할 것같다.ㅠㅠ다시 문제풀러가자

profile
호텔리어 출신 비전공자

0개의 댓글