티스토리 뷰

과제내용

 학생 스스로 출제자가 되어 기존 기말시험과 같은 사지선다 객관식으로 7개 문제를 만들고, 문제별로 답과 해설을 추가하여 제출하라. 단, 홀수 학번은 교재 2,3,5,7,9,11,13장에서, 짝수 학번은 교재 2,4,6,8,10,12,14장에서 순서대로, 각 장마다 

 1문제씩, 각 장의 주제에 맞는 문제를 작성하여야 한다. 아래 지시사항을 반드시 지켜야 한다.

- 문제의 맥락을 이해할 수 있게 5줄 이내의 해설을 작성하며, 관련 내용 을 확인할 수 있는 (교재의 쪽수 또는 참고자료의 쪽수)와 내용을 반드시 명시한다 (아래 예시 참고).

- 문제의 참신성과 품질을 우선 고려하여 평가할 것이다.


2장(Java 기본문법) - 다음 Java의 자료형에 대한 설명으로 바르지 않은 것을 고르시오.

①    char: 크기는 1바이트이며 -128 ~ 127 까지의 범위를 나타내는 자료형

②    boolean: true와 false로 두 개의 리터럴을 가지는 참, 거짓을 표현하기 위한 자료형

③    int: 정수를 나타내기 위한 자료형으로 4바이트이 크기를 가짐

④    double: 실수를 나타내기 위한 자료형으로 8바이트의 크기를 가짐

답: ①

해설: 교과서에서는 제2장 Java 기본 문법 챕터의 2.3 자료형 부분에 설명이 있다. boolean은 참과 거짓을 나타내기 위한 자료형, int는 정수, double은 실수를 나타내기 위한 자료형으로 맞는 설명이다. 그러나 char는 2바이트의 크기로 문자를 나타내기 위한 자료형으로 맞지 않는 설명이다. 해당 설명은 C언어의 char 형에 대한 설명임

 


 

4장(인터페이스와 다형성) - 다음 인터페이스 구현 코드 중 컴파일시에 실패를 하는 코드를 고르시오.

①    public interface MyInteface { int getValue(); }

②    public interface MyInteface { default int getValue() { return 1; } }

③    public interface MyInteface { static int getValue() { return 1; } }

④    public interface MyInteface { int getValue() { return 1; } }

답: ④

해설: 교과서에서는 제4장 인터페이스와 다형성 챕터의 4.1 인터페이스 부분에 설명이 있다. 1번은 자바 인터페이스의 몸체가 없는 메소드로 컴파일에 문제가 없다. 2,3 번의 경우는 Java8에서 부터 허용이 된 인터페이스의 default, static 메서드로 구현이 가능한 메소드로 컴파일에 문제가 없다. 그러나 4번은 추상 메서드에 구현부를 넣어 컴파일에 실패를 하게 된다.


 

6장(패키지와 예외처리) - 다음과 같은 메소드가 구현이 되어 있을 때 메소드를 호출하는 코드를 작성할 때 예외를 정상적으로 처리하지 못하는 코드를 고르시오.

 

public void exceptionTest() throws ArrayIndexOutOfBoundsException, IllegalArgumentException { ... }

 

 

①    try { exceptionTest(); }
catch (ArrayIndexOutOfBoundsException e) { }
catch (IllegalArgumentException e) {}

②    try { exceptionTest(); }
catch (Exception e) { }

③    try { exceptionTest(); }
catch (Exception e) { }
catch (IllegalArgumentException e) {}

④    void exceptionTest() throws ArrayIndexOutOfBoundsException, IllegalArgumentException { exceptionTest(); }

답: ③

해설: 교과서에서는 제6장 패키지와 예외처리 챕터의 6.2 예외와 예외처리 부분에 설명이 있다. 1번은 두개의 예외를 순차적으로 각각 처리하도록 한 것으로 정상적인 예외처리이다. 2번은 상위 에외인 Exception을 처리하도록 한 것으로 역시 정상적인 예외처리이다. 4번은 예외를 throws 통해 다시 던지게 한 것으로 정상적인 예외처리이다. 그러나 3번의 경우 상위 에외인 Exception을 먼저 처리하여 IllegalArgumentException 처리 부분은 전혀 처리되지 않으므로 정상적인 예외처리로 볼 수 없다.


8장(java.io 패키지와 스트림) - 다음 중 자바의 OutputStream의 write(byte[] data, int offset, int length) 메소드의 대한 설명으로 옳지 않은 것을 고르시오.

①    첫번째 매개변수인 data는 출력 스트림으로 주어진 바이트 배열을 의미한다.

②    두번째 매개변수인 offset은 첫번째 매개변수인 data의 전송 시작 지점의 index 를 의미한다.

③    세번째 매개변수인 length는 첫번째 매개변수인 data의 전송 종료 지점의 index를 의미한다.

④    세번째 매개변수인 length는 첫번째 매개변수인 data에서 두번째 매개변수인 offset 부터 length개 까지를 의미한다.

답: ③

해설: 교과서에서는 제8장 java.io 패키지와 스트림 챕터의 8.4의 파일 입출력 부분에 설명이 있다. 첫번째 매개변수인 data는 출력 스트림으로 주어진 바이트 배열이다. 두번째 매개변수인 offset은 첫번째 매개변수인 data의 전송 시작 지점의 index 를 의미한다. 세번째 매개변수인 length는 첫번째 매개변수인 data에서 두번째 매개변수인 offset 부터 length개 까지를 의미한다. 따라서 1,2,4번은 맞는 설명이고 3번은 맞지 않는 설명이다.


10장(컬렉션) - 아래 주어진 조건에 가장 적합한 컬력션을 생성하는 코드를 고르시오.

 

(단일 스레드 환경에서) 폴더명(String)을 키로, 다수개의 파일명 리스트 (List<String>)을 값으로 저장함

 

①    List<String> folderMap = new ArrayList<>();

②    Map<String, List<String>> folderMap = new HashMap<>();

③    Map<List<String>, String> folderMap = new HashMap<>();

④    Set<String> folderMap = new HashSet<>();

답: ②

해설: 교과서에서는 제10장 컬렉션 챕터의 10.3 ~ 10.6 에 걸쳐 의 설명되어 있다. 우선 키와 값의 쌍으로 데이터를 저장하는 컬렉션의 형태는 Map이다. 그렇기 때문에 1, 4번은 적절치 않다. Java Map의 정의 형식은 “Map<Key, Value>” 형태로 Key를 먼저 정의를 한 뒤에 Value를 정의한다. 그렇기 때문에 2번이 적절하다.


12장(AWT 컨트롤 클래스) - 다음 중 두AWT 컨트롤 클래스의 관계가 슈퍼 - 서브 클래스의 계층 관계가 아닌 것을 고르시오.

①    Component – Checkbox

②    Window - Frame

③    Container - Window

④    Container – Canvas

답: ④

해설: 교과서에서는 제12장 AWT 컨트롤 클래스 챕터의 12.3 GUI 컴포넌트 클래스에 설명이 되어 있다. 1번인 Conponent의 경우 Button, Canvas, Container, CheckBox, Choice, Label, List, TextComponent, ScrollBar에 해당하는 서브 클래스를 가지고 있어 정답이며 2번인 Window의 경우 Dialog, Frame에 해당하는 서브 클래스르 가지고 있어 정답이며, 3번인 Coniner의 경우 ScrollPane, Panel, Window에 해당하는 서브 클래스를 가지고 있어 정답이다. 그러나 4번인 Canvas는 Container와 동등한 레벨에 있는 클래스로 정답이 아니다.


14장(JDBC 프로그래밍) - 다음 중 JDBC API에서 제공하는 객체에 대한 설명 중 옳지 않은 것을 고르시오.

①    Statement: SQL 질의 실행과 결과 반환에 사용되는 객체

②    ResultSet: 실행 결과를 나타내는 테이블로 볼 수 있으며 Statement의 객체가 리턴하는 객체

③    PreparedStatement 객체: Precompile된 SQL 문을 표현하는 객체

④    DatabaseMetaData: ResultSet 객체에서 테이블의 이름, 열의 이름과 타입 정보를 얻을 때 사용되는 객체

답: ④

해설: 교과서에서는 제 14장 JDBC 프로그래밍 챕터의 14.3 ~ 14.7에 걸쳐 설명이 되어 있다. 1번인 Statement 객체는 옳은 설명이며 Connection 객체의 createStatement( )메소드를 통해 생성된다. 2번인 ResultSet 객체는 옳은 설명이며 select 구문의 실행 결과를 다룰 때 사용되는 객체이다. 3번인 PreparedStatement 객체는 옳은 설명이며 Connection 객체의 prepareStatement(Stringsql) 메소드를 통해 생성된다. 그러나 4번 DatabaseMetaData 객체는 옳지않은 설명이며 DBMS의 정보를 가지는 객체이다.

반응형
댓글