[문제] 인터페이스에 대한 설명으로 옳지 않은 것은?
- ① 클래스는 하나의 상위 클래스로부터만 상속을 받을 수 있지만 인터페이스는 여러 개의 인터페이스로 부터 상속을 받을 수 있다.
- ② 인터페이스 선언시 필요에 따라 다른 인터페이스로부터 상속 받을 수 있다.
- ③ 인터페이스의 상속은 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;
자동 형변환(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 : 이 클래스 내에서만 참조가능
아무 겂도 없으면 이 패키지 내에서만 참조 가능
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
b3에 덧셈 할당할 때에 can not convert from int to byte