문제 : 하기의 코드가 실행될 수 있도록 처리하십시오
class Main {
public static void main(String[] args) {
전사 a전사 = new 전사();
String 이름 = "칸";
a전사.이름 = 이름;
a전사.나이 = 20;
a전사.자기소개();
a전사.나이++;
a전사.자기소개();
a전사.나이 = 30;
a전사.이름 = "카니";
a전사.자기소개();
a전사.a무기 = new 활();
a전사.공격();
// 출력 : 카니가 활로 공격합니다.
a전사.a무기 = new 칼();
a전사.공격();
// 출력 : 카니가 칼로 공격합니다.
}
}
class 전사 {
// 인스턴스 변수
String 이름;
// 인스턴스 변수
int 나이;
// 인스턴스 변수
무기 a무기;
void 자기소개() {
System.out.println("안녕하세요. 저는 " + this.나이 + "살 " + this.이름 + " 입니다.");
}
}
class 무기 {
}
class 칼 extends 무기 {
}
class 활 extends 무기 {
}
풀이 :
class Main {
public static void main(String[] args) {
Warrior aWarrior = new Warrior();
String name = "칸";
aWarrior.name = name;
aWarrior.age = 20;
aWarrior.introduce();
aWarrior.age++;
aWarrior.introduce();
aWarrior.age = 30;
aWarrior.name = "카니";
aWarrior.introduce();
aWarrior.aWeapon = new Bow();
aWarrior.attack();
aWarrior.aWeapon = new Sword();
aWarrior.attack();
}
}
class Warrior {
public String name;
public int age;
Weapon aWeapon;
void introduce() {
System.out.println("안녕하세요. 저는" + this.age + "살" + this.name + " 입니다.");
}
void attack() {
aWeapon.character = this.name;
aWeapon.attack();
}
}
class Weapon {
String character;
void attack() {
}
}
class Sword extends Weapon {
void attack() {
String weaponName = "칼";
System.out.println(weaponName + " 로 " + character + " 가 공격합니다.");
}
}
class Bow extends Weapon {
void attack() {
String weaponName = "활";
System.out.println(weaponName + " 로 " + character + " 가 공격합니다.");
}
}
'Language > Java' 카테고리의 다른 글
공부내용 정리 Java :: JDK, JRE, JVM의 차이 (0) | 2021.08.08 |
---|---|
공부내용 정리 Java :: 예제 2 (0) | 2021.06.16 |
공부내용 정리 Java :: 예제 1 (0) | 2021.06.16 |
공부내용 정리 Java :: 기초 2 - 객체지향 I (0) | 2021.06.16 |
공부내용 정리 Java :: 기초 VII (0) | 2021.06.16 |