Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 백준온라인저지
- 스파르타코딩클럽
- java
- 코딩테스트실력진단
- 카카오코테
- 코드트리
- 윤곽선검출
- 백준9012
- 백준평범한배낭
- 이것이자바다확인문제
- 이것이자바다
- 냅색알고리즘
- 이것이자바다9장
- 가운데를말해요
- 2019카카오코테
- 백준가운데를말해요
- 합성곱연산
- 백준
- 컴퓨터비전
- 딥러닝
- 백준10828
- 확인문제
- KT포트포워딩
- 운영체제
- 백준괄호
- BOJ
- BOJ1655
- 웹개발기초
- 백준스택
- 코테
Archives
- Today
- Total
코딩하는 락커
[이것이 자바다] ch08 확인문제 본문
1. 인터페이스에 대한 설명으로 틀린 것은 무엇입니까?
- 인터페이스는 객체 사용 설명서 역할을 한다.
- 구현 클래스가 인터페이스의 추상 메소드에 대한 실체 메소드를 가지고 있지 않으면 추상 클래스가 된다.
- 인터페이스는 인스턴스 필드를 가질 수 있다.
- 구현 객체는 인터페이스 타입으로 자동 변환된다.
2. 인터페이스의 다형성과 거리가 먼 것은?
- 필드가 인터페이스 타입일 경우 다양한 구현 객체를 대입할 수 있다.
- 매개 변수가 인터페이스 타입일 경우 다양한 구현 객체를 대입할 수 있다.
- 배열이 인터페이스 타입일 경우 다양한 구현 객체를 저장할 수 있다.
- 구현 객체를 인터페이스 타입으로 변환하려면 강제 타입 변환을 해야 한다.
3. 다음은 Soundable 인터페이스입니다. sound() 추상 메소드는 객체의 소리를 리턴합니다.
public interface Soundable
{
String sound();
}
SoundableExample 클래스에서 printSound() 메소드는 Soundable 인터페이스 타입의 매개변수를 가지고 있습니다. main() 메소드에서 printSound()를 호출할 때 Cat과 Dog 객체를 주고 실행하면 각각 "야옹"과 "멍멍"이 출력되고록 Cat과 Dog 클래스를 작성해보세요.
public class SoundExample {
private 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{
@Override
public String sound() {
return "야옹";
}
}
public class Dog implements Soundable{
@Override
public String sound() {
return "멍멍";
}
}
4. DaoExample 클래스의 main() 메소드에서 dbWork() 메소드를 호출할 때 OracleDao 와 MySqlDao 객체를 매개값으로 주고 호출했습니다. dbWork() 메소드는 두 객체를 모두 매개값으로 받기 위해 DateAccessObject 타입의 매개 변수를 가지고 있습니다. 실행 결과를 보고 DataAccessObject 인터페이스와 OracleDao, MySqlDao 구현 클래스를 각각 작성해보세요.
public class DaoExample {
public static void dbWork(DataAccessObject dao){
dao.select();
dao.insert();
dao.update();
dao.delete();
}
public static void main(String[] args) {
dbWork(new OracleDao());
dbWork(new MySqlDao());
}
}
public interface DataAccessObject {
void select();
void insert();
void update();
void delete();
}
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에서 삭제");
}
}
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에서 삭제");
}
}
5. 다음은 Action 인터페이스입니다. work() 추상 메소드는 객체의 작업을 시작시킵니다.
public interface Action {
void work();
}
ActionExample 클래스의 main() 메소드에서 Action의 익명 구현 객체를 만들어 다음과 같은 실행 결과가 나올 수 있도록 박스 안에 들어갈 코드를 작성해보세요.
public class ActionExample {
public static void main(String[] args) {
Action action = new Action() {
@Override
public void work() {
System.out.println("복사를 합니다");
}
};
action.work();
}
}
'☕️ Java' 카테고리의 다른 글
[이것이 자바다] ch10 확인문제 (0) | 2022.01.04 |
---|---|
[이것이 자바다] ch09 확인문제 (0) | 2022.01.03 |
[이것이 자바다] ch07 확인문제 (0) | 2021.12.21 |
[이것이 자바다] ch06 확인문제 (0) | 2021.12.19 |
Comments