Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

이것이 자바다 8장 확인 문제 본문

이것이 자바다/08 인터페이스

이것이 자바다 8장 확인 문제

빌드이너프 2024. 2. 4. 13:56

1. 인터페이스에 대한 설명으로 틀린 것은 무엇입니까? 

➊ 인터페이스로 객체(인스턴스)를 생성할 수 있다.
➋ 인터페이스는 다형성의 주된 기술로 사용된다.
➌ 인터페이스를 구현한 객체는 인터페이스로 동일하게 사용할 수 있다.

➍ 인터페이스를 사용함으로써 객체 교체가 쉬워진다.

답: 1

 

2. 인터페이스의 구성 멤버에 대한 설명으로 틀린 것은 무엇입니까? 

➊ 인터페이스는 인스턴스 필드가 없고 상수를 멤버로 가진다.

➋ 추상 메소드는 구현 클래스가 재정의해야 하는 멤버이다.

➌ 디폴트 메소드는 구현 클래스에서 재정의할 수 없다.

➍ 정적 멤버는 구현 객체가 없어도 사용할 수 있는 멤버이다. 

답: 3

 

3. 인터페이스 다형성에 대한 설명으로 틀린 것은 무엇입니까? 

➊ 필드가 인터페이스 타입일 경우 다양한 구현 객체를 대입 할 수 있다.
➋ 매개변수가 인터페이스 타입일 경우 다양한 구현 객체를 대입할 수 있다.

➌ 배열이 인터페이스 타입일 경우 다양한 구현 객체를 저장할 수 있다.
➍ 구현 객체를 인터페이스 타입으로 변환하려면 강제 타입 변환을 해야 한다. 

답: 4

 

4. 인터페이스 A B C 구현하고 B 상속해서 D 클래스를, C 상속해서 E 클래스를 만들었습니다. 다음 빈칸에 들어올 있는 것을 모두 선택하세요. 

// 메소드 선언
void method(A a) { ... }

// 메소드 호출
method(빈 칸);

답: 

new B()

new C()

new D()

new E()

 

5. TV 클래스를 실행했을 때 "TV를 켰습니다."라고 출력되도록 밑줄과 박스에 들어갈 코드를 작성해보세요.

public interface Remocon {
  public void powerOn();
}
public class TV _______________________ {
  박스
  
  public static void main(String[] args) {
    Remocon r= new TV();
    r.powerOn();
  }
}

답: 

밑줄__:

implements Remocon

 

박스: 

@Override
public void powerOn() {
  System.out.println("TV를 켰습니다.");
}

 

6. Soundable 인터페이스는 다음과 같은 sound() 추상 메소드를 가지고 있습니다.

SoundableExample 클래스의 printSound() 메소드는 매개변수 타입으로 Soundable 인터페이스를 가집니다.

printSound()를 호출할 때 Cat와 Dog 객체를 주고 실행하면 각각 "야옹"과 "멍멍"이 출력되도록 Cat과 Dog 클래스를 작성해보세요.

pulbic interface Soundable {
  public String sound();
}
public class SoundableExample {
  public static void printSound(Soundable soundable) {
    System.out.println(soundable.sound);
  }
  
  public static void main(String[] args) {
    printSound(new Cat());
    printSound(new Dog());
  }
}

답: 

public class Cat implements Soundable {
  public String sound() {
    System.out.println("야옹");
  }
}
public class Dog implements Soundable {
  public String sound() {
    System.out.println("멍멍");
  }
}

 

7. DaoExample 클래스의 main() 메소드에서 dbWork() 메소드를 호출할 OracleDao MySqlDao 객체를 매개값으로 주고 호출했습니다. dbWork() 메소드는 객체를 모두 개값으로 받기 위해 DataAccessObject 타입의 매개변수를 가지고 있습니다. 실행 결과를 보고 DataAccessObject 인터페이스와 OracleDao, MySqlDao 구현 클래스를 각각 작성해보세요. 

public class DaoExample { 
  public static void doWork(DataAccessObject dao) {
    dao.select();
    dao.insert();
    dao.update();
    dao.delete();
  }
  
  public static void main(String[] args) [
    doWork(new OracleDao());
    dowork(new MySqlDao());
  }
}

 

실행 결과

Oracle DB에서 검색
Oracle DB에 삽입
Oracle DB를 수정
Oracle DB에서 삭제
MySql DB에서 검색
MySql DB에 삽입
MySql DB를 수정
MySql DB에서 삭제

 

답:

public interface DataAccessObject {
  void select();
  void insert();
  void update();
  void delete();
}
public class OracleDao implements DataAccessObject {
  
  @Override
  public void select() {
    System.out.println("Oracle DB에서 검색");
  }

  @Override
  public void insert() {
    System.out.println("Oracle DB에 삽입");
  }
  
  @Override
  public void update() {
    System.out.println("Oracle DB에서 수정");
  }

  @Override
  public void delete() {
    System.out.println("Oracle DB에서 삭제");
  }
  

}
public class MySqlDao implements DataAccessObject {

  @Override
  public void select() {
    System.out.println("MySql DB에서 검색");
  }

  @Override
  public void insert() {
    System.out.println("MySql DB에 삽입");
  }
  
  @Override
  public void update() {
    System.out.println("MySql DB에서 수정");
  }

  @Override
  public void delete() {
    System.out.println("MySql DB에서 삭제");
  }
}

 

8. 다음과 같이 인터페이스와 클래스가 선언되어 있습니다. action( ) 메소드를 호출할 매개값이 C 객체일 경우에만 method2( ) 호출되도록 밑줄에 들어갈 코드를 작성해보세요. 

public interface A {
  public void method1();
}
public class B implements A {
  @Override
  public void method1() {
    System.out.println("B - method1()");
  }
}
public class C implements A {
  @Override
  public void method1() {
    System.out.println("C - method1()");
  }
  
  public void method2() {
    System.out.println("C - method2()");
  }
}
public class Example {
  public static void action(A a) {
    a.method1();
    if( ______________________ ) {
      c.method2();
    }
  }
  
  public static void main(String[] args) {
    action(new B());
    action(new C());
  }
}

답:

A instanceof C c