Language/Java
공부내용 정리 Java :: 예제 3
Cs.Woo
2021. 6. 24. 23:00
문제 : 하기의 코드가 실행될 수 있도록 처리하십시오
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 + " 가 공격합니다.");
}
}