https://www.yes24.com/Product/Goods/124821050
5주차(24.8.5- 8.11) Chapter 08 ~ 09
기본미션
▶ 클래스 선언 시 인터페이스는 어떻게 선언 되는가?
클래스를 선언할 때 인터페이스는
- 필드
- 생성자 또는 메소드의 매개 변수
- 생성자 또는 메소드의 로컬 변수
로 선언 될 수 있다.
인터페이스 선언은 class 키워드 대신에 interface 키워드 사용
(인터페이스 일므은 영어 대소문자를 구분하며, 첫 글자를 대문자로 하고 나머지는 소문자로 작성)
[public] interface 인터페이스이름 {...}
interface 인터페이스이름 {
//상수
타입 상수이름 = 값;
//추상 메소드
타입 메소드이름(매개변수, ...);
}
1. 인터페이스가 필드 타입으로 사용될 경우
→ 필드에 구현 객체를 대입 할 수 있음.
2. 인터페이스가 생성자의 매개 변수 타입으로 사용될 경우
→ new 연산자로 객체를 생성할 때 구현 객체를 생성자의 매개값으로 대입 할 수 있음.
3. 인터페이스가 로컬 변수 타입으로 사용될 경우
→ 변수에 구현 객체를 대입 할 수 있음.
4. 인터페이스가 메소드의 매개 변수 타입으로 사용될 경우
→ 메소드 호출 시 구현 객체를 매개값으로 대입 할 수 있음
★ 대입이 된 후에는 재 정의된 구현 객체의 메소드를 호출 할 수 있음.
//인터페이스로 구현 객체 사용
public class MyClass {
// 필드
RemoteControl rc = new Television();
// 생성자
MyClass() {
}
MyClass(RemoteControl rc) {
this.rc = rc;
rc.turnOn();
rc.setVolume(5);
}
// 메소드
void methodA() {
RemoteControl rc = new Audio();
rc.turnOn();
rc.setVolume(5);
}
void methodB(RemoteControl rc) {
rc.turnOn();
rc.setVolume(5);
}
}
선택미션
▶ 09-1 확인문제 3번 풀이(p.443)
Q. 다음과 같이 Car 클래스 내부에 Tire와 Engine이 멤버 클래스로 선언되어 있습니다. 바깥 클래스(NestedClassExample)에서 멤버 클래스의 객체를 생성하는 코드를 빈칸에 작성해보세요.
public class Car {
class Tire {}
static class Engine {}
}
public class NestedClassExample {
public static void main(String[] args) {
Car myCar = new Car();
Car.Tire tire = ________________
Car.Engine engine = ________________
}
}
solve
public class NestedClassExample {
public static void main(String[] args) {
Car myCar = new Car();
Car.Tire tire = myCar.new Tire();
Car.Engine engine = new Car.Engine();
}
}
'혼공학습단' 카테고리의 다른 글
[혼공단] 혼공학습단 12기 활동 회고(24. 7. 1 ~ 24. 8. 18) (0) | 2024.08.17 |
---|---|
[혼공단12기] 혼자 공부하는 자바(개정판) 6주차(Chapter 10 ~ 11) (0) | 2024.08.13 |
[혼공단12기] 혼자 공부하는 자바(개정판) 4주차(Chapter 07) (0) | 2024.07.22 |
[혼공단12기] 혼자 공부하는 자바(개정판) 3주차(Chapter 06) (0) | 2024.07.20 |
[혼공단12기] 혼자 공부하는 자바(개정판) 2주차(Chapter 04-05) (0) | 2024.07.08 |