문제
아래의 2개 클래스와 1개의 인터페이스를 작성하고, 실행결과를 출력하시오! (익명 구현 객체)
Vehicle (인터페이스)
Anonymous, AnonymousExample
Vehicle(인터페이스)
멤버함수
public void run() *추상메서드
public void speedup() *추상메서드
Anonymous(클래스)
멤버변수
int Speed * 생성자이용 -1로 초기화
Vehicle field *익명 구현 클래스 구현 (추상 메서드 재 정의)
void passengerCar() * 로컬 변수의 익명 구현 클래스 구현 (추상 메서드 재 정의)
void airPlane(Vehicle v) * 매개 변수의 익명 구현 클래스 구현 (추상 메서드 재 정의)
AnonymousExample(실행 클래스)
결과
자전거가 달립니다.
자전거의 스피드가 음수일리가 있나요?
자전거의 스피드 : 10Km입니다.
자전거의 스피드 : 20Km입니다.
자전거의 스피드 : 30Km입니다.
자전거의 스피드 : 40Km입니다.
자전거의 스피드 : 50Km입니다.
자전거의 스피드 : 60Km입니다.
자전거의 스피드 : 70Km입니다.
자전거의 스피드 : 80Km입니다.
자전거의 스피드 : 90Km입니다.
자전거의 스피드 : 100Km입니다.
승용차가 달립니다.
자동차의 스피드가 음수일리가 있나요?
승용차가 달립니다.
차의 현재 기어 : 1단입니다.
차의 현재 기어 : 2단입니다.
차의 현재 기어 : 3단입니다.
차의 현재 기어 : 4단입니다.
차의 현재 기어 : 5단입니다.
차의 현재 기어 : 6단입니다.
비행기가 이륙합니다.
비행기의 현재 스피드 : 0Km입니다.
비행기의 현재 스피드 : 100Km입니다.
비행기의 현재 스피드 : 200Km입니다.
비행기의 현재 스피드 : 300Km입니다.
비행기의 현재 스피드 : 400Km입니다.
비행기의 현재 스피드 : 500Km입니다.
비행기의 현재 스피드 : 600Km입니다.
비행기의 현재 스피드 : 700Km입니다.
비행기의 현재 스피드 : 800Km입니다.
비행기의 현재 스피드 : 900Km입니다.
코드
interface Vehicle1 {
public void run();
public void speedup();
}
class Anonymous {
int Speed;
public Anonymous() {
Speed = -1;
}
Vehicle1 field = new Vehicle1() {
@Override
public void speedup() {
// TODO Auto-generated method stub
int speed = 10;
for (int i = 0; i < 10; i++) {
System.out.println("자전거의 스피드 : " + speed + "Km입니다.");
speed += 10;
}
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("자전거가 달립니다.");
System.out.println("자전거의 스피드가 음수일리가 있나요?");
speedup();
}
};
void passengerCar() {
Vehicle1 field = new Vehicle1() {
@Override
public void speedup() {
// TODO Auto-generated method stub
int gear = 1;
for (int i = 0; i < 6; i++) {
System.out.println("차의 현재 기어 : " + gear + "단입니다.");
gear += 1;
}
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("승용차가 달립니다.");
System.out.println("자동차의 스피드가 음수일리가 있나요?");
System.out.println("승용차가 달립니다.");
speedup();
}
};
field.run();
}
void airPlane(Vehicle1 v) {
v.run();
}
}
class AnonymousExample {
public static void main(String[] args) {
Anonymous a = new Anonymous();
a.field.run();
a.passengerCar(); //로컬 변수라 passengerCar 안에서 구현이 다 끝나야함.
a.airPlane(new Vehicle1() {
@Override
public void speedup() {
// TODO Auto-generated method stub
int speed = 0;
for (int i = 0; i < 10; i++) {
System.out.println("비행기의 현재 스피드 : " + speed + "Km입니다.");
speed += 100;
}
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("비행기가 이륙합니다.");
speedup();
}
});
}
}
Vehicle 클래스가 Eclipse 파일 중 다른 곳에 있어서 저는 Vehicle1로 작성하였습니다.
'Java' 카테고리의 다른 글
| [Java] (interface 익명 구현 객체) (19-3) (0) | 2023.09.01 |
|---|---|
| [Java] (interface 익명 구현 객체) (19-2) (0) | 2023.08.31 |
| [Java] (interface 익명 구현 객체) (0) | 2023.08.31 |
| [Java] (interface) (18-2) (0) | 2023.08.31 |
| [Java] (interface) (18-1) (0) | 2023.08.30 |