티스토리 뷰

과제 내용

1. 이름이 Test인 퍼블릭 클래스를 정의한다.

  • 첫 줄에 자신의 학번을 출력하고 다음 줄에 이름을 출력하도록 main() 함수를 정의하여 Test 클래스에 포함시킨다.
  • 이클립스를 사용하여 클래스를 작성하고 실행시킨다.
  • 클래스 정의와 출력 결과를 확인할 수 있는 1개 그림을 캡처하여 과제물 파일에 포함시키시오. 

 

2. 아래 예외처리 코드에 문제가 있는지/없는지 밝히시오, 문제가 있다면 이유를 200자 이내(공백 포함)로 설명하시오. (중괄호 블록 안에는 적당한 명령이 있다고 가정한다.)

try{ }
catch(Exception ex) { }
catch(ArithmeticException ex) { }

 

3. 자바 API 문서에서 Comparable 인터페이스를 찾아보고, Comparable를 구현하는 클래스를 정의할 때 어떤 메소드를 구현해야 하는지 쓰시오.


과제 답

1번 문제

 

2번 문제

  • 문제가 있음.
    • 기본적으로 Java의 catch 문에 삽입되는 클래스 타입은 Java의 Execption 클래스이다.
    • 그렇기 때문에 ArithmeticException 역시 Execption을 상속받고 있는 클래스이다.
  • 해당 예외처리 코드에서는 ArithmeticException 아닌 예외가 발생했을 때는 문제가 없지만 ArithmeticException 예외가 발생했을 때 'catch(Exception ex) { }' 문 안으로 들어가게 된다.
  • 그렇기 때문에 이후에 catch(ArithmeticException ex) { }' 문으로 들어가지 않고 try-catct문을 벗어나기 때문에 원하는 예외처리가 동작 하지 않을 수가 있다.

 

3번 문제

  • Comparable 인터페이스는 객체를 정렬하기 위한 기준을 명시하는 인터페이스이다.
  • 만약 Comparable 인터페이스를 구현하는 클래스를 구현하게 된다면 반드시 'compareTo(T t)' 메소드를 구현해줘야 한다.
반응형
댓글