第11章
コード11-01
Character.java
public class Character {
String name;
int hp;
// 逃げる
public void run() {
System.out.println(this.name + "は逃げ出した");
}
// 戦う
public void attack(Matango m) {
System.out.println(this.name + "の攻撃!");
m.hp -= ??;
System.out.println("敵に??ポイントのダメージをあたえた!");
}
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
コード11-02
Character.java
public class Character {
String name;
int hp;
public void run() {
System.out.println(this.name + "は逃げ出した");
}
public void attack(Matango m) {
}
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
コード11-03
Character.java
public class Character {
String name;
int hp;
public void run() {
System.out.println(this.name + "は逃げ出した");
}
public void attack(Matango m) {
}
}
Hero.java
public class Hero extends Character {
public void attack(Matango m) {
System.out.println(this.name + "の攻撃!");
System.out.println("敵に10ポイントのダメージをあたえた!");
m.hp -= 10;
}
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
コード11-04
Character.java
public class Character {
String name;
int hp;
public void run() {
System.out.println(this.name + "は逃げ出した");
}
public void attack(Matango m) {
}
}
Hero.java
public class Hero extends Character {
}
Main.java
public class Main {
public static void main(String[] args) {
Hero h = new Hero();
Matango m = new Matango();
h.attack(m);
}
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
コード11-05
Character.java
public class Character {
String name;
int hp;
public void run() {
System.out.println(this.name + "は逃げ出した");
}
public void attack(Matango m) {
}
}
Hero.java
public class Hero extends Character {
public void atack(Matango m) {
System.out.println(this.name + "の攻撃!");
System.out.println("敵に10ポイントのダメージをあたえた!");
m.hp -= 10;
}
}
Main.java
public class Main {
public static void main(String[] args) {
Hero h = new Hero();
Matango m = new Matango();
h.attack(m);
}
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
コード11-06
Character.java
public class Character {
String name;
int hp;
public void run() {
System.out.println(this.name + "は逃げ出した");
}
public void attack(Matango m) {
}
}
Main.java
public class Main {
public static void main(String[] args) {
Character c = new Character();
Matango m = new Matango();
c.attack(m);
}
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
コード11-07
Character.java
public class Character {
String name;
int hp;
public void run() {
System.out.println(this.name + "は逃げ出した");
}
public abstract void attack(Matango m);
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
コード11-08
Character.java
public abstract class Character {
String name;
int hp;
public void run() {
System.out.println(this.name + "は逃げ出した");
}
public abstract void attack(Matango m);
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
コード11-09
Character.java
public abstract class Character {
String name;
int hp;
public void run() {
System.out.println(this.name + "は逃げ出した");
}
public abstract void attack(Matango m);
}
Dancer.java
public class Dancer extends Character {
public void dance() {
System.out.println(this.name + "は情熱的に踊った");
}
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
コード11-10
Character.java
public abstract class Character {
String name;
int hp;
public void run() {
System.out.println(this.name + "は逃げ出した");
}
public abstract void attack(Matango m);
}
Dancer.java
public class Dancer extends Character {
public void dance() {
System.out.println(this.name + "は情熱的に踊った");
}
public void attack(Matango m) {
System.out.println(this.name + "の攻撃");
System.out.println("敵に3ポイントのダメージ");
m.hp -= 3;
}
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}
コード11-11
Creature.java
public abstract class Creature {
public abstract void run();
}
コード11-12
Creature.java
public interface Creature {
public abstract void run();
}
コード11-13
Creature.java
public interface Creature {
void run();
}
コード11-14
CleaningService.java
public interface CleaningService {
Shirt washShirt(Shirt s);
Towl washTowl(Towl t);
Coat washCoat(Coat c);
}
Coat.java
Shirt.java
Towl.java
コード11-15
CleaningService.java
public interface CleaningService {
Shirt washShirt(Shirt s);
Towl washTowl(Towl t);
Coat washCoat(Coat c);
}
Coat.java
KyotoCleaningShop.java
public class KyotoCleaningShop implements CleaningService {
String ownerName; // 店主の名前
String address; // 住所
String phone; // 電話番号
/* シャツを洗う */
public Shirt washShirt(Shirt s) {
// 大型洗濯機15分
return s;
}
/* タオルを洗う */
public Towl washTowl(Towl t) {
// 大型洗濯機10分
return t;
}
/* コートを洗う */
public Coat washCoat(Coat c) {
// ドライ20分
return c;
}
}
Shirt.java
Towl.java
コード11-16
Creature.java
public interface Creature {
void run();
}
Human.java
public interface Human extends Creature {
void talk();
void watch();
void hear();
// さらに、親インタフェースからrun()を継承する
}
コード11-17
Character.java
public abstract class Character {
String name;
int hp;
public abstract void run();
public abstract void attack(Matango m);
}
Creature.java
public interface Creature {
void run();
}
Fool.java
public class Fool extends Character implements Human {
// Characterからhpやnameなどのフィールドを継承している
// Characterから継承した抽象メソッドattack()を実装
public void attack(Matango m) {
System.out.println(this.name + "は戦わずに遊んでいる");
}
// さらにHumanから継承した4つの抽象メソッドを実装
public void talk() { /* … */ }
public void watch() { /* … */ }
public void hear() { /* … */ }
public void run() { /* … */ }
}
Human.java
public interface Human extends Creature {
void talk();
void watch();
void hear();
// さらに、親インタフェースからrun()を継承する
}
Matango.java
public class Matango {
int hp;
final int LEVEL = 10;
char suffix;
public void run() {
System.out.println("お化けキノコ" + this.suffix + "は逃げ出した!");
}
}