level up 과정 [JAVA]

객관식(2)

[문제] 인터페이스에 대한 설명으로 옳지 않은 것은?

  • ① 클래스는 하나의 상위 클래스로부터만 상속을 받을 수 있지만 인터페이스는 여러 개의 인터페이스로 부터 상속을 받을 수 있다.
  • ② 인터페이스 선언시 필요에 따라 다른 인터페이스로부터 상속 받을 수 있다.
  • ③ 인터페이스의 상속은 extends 예약어를 사용한다.
  • ④ 인터페이스는 클래스와 달리 상속 관계에서 계층 구조를 가질 수 없다.

[문제] 기본 자료형은 ( )만 표현하기 때문에 처리하는데 한계가 있다. 즉, 연산자를 이용한 단순 연산만 수행할 수 있는데, 이러한 제한을 보강하기 위해 만들어진 것이 ( ) 클래스이다.

  • ① 자료의 형(Type), Wrapper
  • ② 속성, Wrapper
  • ③ 크기, Wrapper
  • ④ 종류, Wrapper

[문제] 자바에서 사용되는 관계 연산자에 대한 설명으로 옳지 않은 것은?

  • ① 관계 연산자는 연산에 참여하는 두 항의 피연산자를 비교하는 연산자를 의미한다.
  • ② 관계 연산자는 수식에서 자주 사용되는 등호, 부등호 기호를 이용한 6개의 연산자와 instanceof라는 연산자로 구성된다.
  • ③ 두 개의 문자로 구성되는 관계 연산자 기호 사이에는 공백 문자가 올 수 있다.
  • ④ 관계 연산자 !=, >=, <=는 연산 기호의 순서가 명확해야 한다.

[문제] 다음은 자바의 예외 처리에 대한 설명이다. 틀린 것은?

  • ① try~catch~finally 문에 여러 개의 catch문이 올 수 있다.
  • ② finally문은 생략 가능하다.
  • ③ 모든 메소드 마다 예외의 유형을 정의하여야 한다.
  • ④ 프로그래머가 지정하지 않은 예외는 디폴트 예외 처리기가 처리한다.

[문제] 다음 예제 프로그램에 대한 설명으로 옳은 것은?

short s = 23;

int i = (int) (s);

float f = (float) (s);
  • ① 명시적으로 선언된 short 타입을 최종적으로 float 타입으로 캐스팅하고 있다.
  • ② 명시적으로 선언된 short 타입을 int 타입 또는 float 타입으로 캐스팅하고 있다.
  • ③ 묵시적으로 선언된 short 타입을 int 타입 또는 float 타입으로 캐스팅하고 있다.
  • ④ 묵시적으로 선언된 short 타입을 최종적으로 float 타입으로 캐스팅하고 있다.
※ 참고
자동 형변환(Promotion)/묵시적 형변환 : 큰 자료형에 작은 자료형의 값을 대입하는 경우
ex) short a = 5;
int b=a;
강제 형변환(Casting)/명시적 형변환 : 작은 자료형에 큰 자료형의 값을 대입하는 경우
ex) int b=5;
short a = (short) b;

[문제] 다음 문항에서 예제 프로그램을 보고 올바르게 설명한 것은?

//SuperClass.java

package net.javaosf;

public class SuperClass {
    private String name;
    protected String age;
    public String address;
    String tel;
}


//SubClassA.java

package net.javaosf;

public class SubClassA extends SuperClass {}


//SubClassB.java

package org.kosta;

public class SubClassB extends SuperClass {
    public String address;
}
  • ① SubClassB는 SuperClass와 선언 패키지 경로가 다르므로 상속받을 수 없다.
  • ② SubClassA는 SuperClass를 상속받았으므로 age를 직접 접근할 수 있다.
  • ③ SubClassA는 SuperClass를 상속받았기 때문에 tel을 직접 접근하여 사용할 수 있다.
  • ④ SubClassB에 address는 SuperClass에서 상속받은 멤버의 이름과 같다. 그래서 자신 데이터가 우선되고 중복되는 부모의 멤버는 접근할 수 없다. 
※ 참고
class의 경우
public : 모든 패키지에서 이 클래스를 참조할 수 있다.
private : 자신을 포함한 클래스에서만 참조가능
protected : 자신을 포함하는 클래스에서 상속받은 클래스에서도 참조가능
아무 것도 없으면 현재 패키지에서만 이 클래스를 참조할 수 있다.

method, variable 의 경우
public : 이 클래스 밖에서도 이 메서드를 참조할 수 있다.
protected : 상속받은 클래스와 이 클래스내에서만 참조할 수 있다.
private : 이 클래스 내에서만 참조가능
아무 겂도 없으면 이 패키지 내에서만 참조 가능

 [문제] 다음 예제 프로그램의 결과는 무엇인가?

//Test.java

public class Test {

    public static void main(String[] args) {

        byte b1, b2, b3;
        b1=10;
        b2=20;
        b3=b1+b2;

        System.out.println(b1+ " - " + b2+ " - " + b3);
    }
    
}
  • ① 컴파일 에러난다.
  • ② exception 발생
  • ③ 10 - 20 - 30 으로 출력된다.
  • ④ -40 으로 출력된다.
※ 참고
b3에 덧셈 할당할 때에 can not convert from int to byte

댓글

댓글 본문
graphittie 자세히 보기