コンテンツにスキップ

第14章

コード14-01

Empty.java

public class Empty {}

Main.java

public class Main {
  public static void main(String[] args) {
    Empty e = new Empty();
    String s = e.toString();
    System.out.println(s);
  }
}

コード14-02

Empty.java

public class Empty {}

Hero.java

public class Hero {
  String name;
  int hp;
  /* … */
}

Main.java

public class Main {
  public static void main(String[] args) {
    Object o1 = new Empty();
    Object o2 = new Hero();
    Object o3 = "こんにちは";
  }
}

コード14-03

Printer.java

public class Printer {
  public void printAnything(Object o) {
    // 何型でもいいから、引数を1つ受け取り画面に表示
    System.out.println(o.toString());
  }
}

コード14-04

Hero.java

public class Hero {
  String name;
  int hp;
  /* … */
}

Main.java

public class Main {
  public static void main(String[] args) {
    Hero h = new Hero();
    h.name = "ミナト";
    h.hp = 100;
    System.out.println(h.toString());
  }
}

コード14-05

Hero.java

public class Hero {
  String name;
  int hp;
  /* … */
  public String toString() {
    return "名前:" + this.name + "/HP:" + this.hp;
  }
}

Main.java

public class Main {
  public static void main(String[] args) {
    Hero h = new Hero();
    h.name = "ミナト";
    h.hp = 100;
    System.out.println(h.toString());
  }
}

コード14-06

Hero.java

public class Hero {
  String name;
  int hp;
  /* … */
  public String toString() {
    return "名前:" + this.name + "/HP:" + this.hp;
  }
}

Main.java

public class Main {
  public static void main(String[] args) {
    Hero h1 = new Hero();
    h1.name = "ミナト";
    h1.hp = 100;
    Hero h2 = new Hero();
    h2.name = "ミナト";
    h2.hp = 100;
    if (h1.equals(h2) == true) {
      System.out.println("同じ内容です");
    } else {
      System.out.println("違う内容です");
    }
  }
}

コード14-07

Hero.java

public class Hero {
  String name;
  int hp;
  /* … */
  public boolean equals(Object o) {
    if (this == o) { return true; }
    if (o instanceof Hero) {
      Hero h = (Hero)o;
      if (this.name.equals(h.name)) {
        return true;
      }
    }
    return false;
  }
}

Main.java

public class Main {
  public static void main(String[] args) {
    Hero h1 = new Hero();
    h1.name = "ミナト";
    h1.hp = 100;
    Hero h2 = new Hero();
    h2.name = "ミナト";
    h2.hp = 100;
    if (h1.equals(h2) == true) {
      System.out.println("同じ内容です");
    } else {
      System.out.println("違う内容です");
    }
  }
}

コード14-08

Hero.java

public class Hero {
  String name;
  int hp;
  int money;
  /* … */
}

コード14-09

Hero.java

public class Hero {
  String name;
  int hp;
  static int money;
  /* … */
}

コード14-10

Hero.java

public class Hero {
  String name;
  int hp;
  static int money;
  /* … */
}

Main.java

public class Main {
  public static void main(String[] args) {
    Hero h1 = new Hero();
    Hero h2 = new Hero();
    System.out.println(h1.hp);
    System.out.println(Hero.money);
    /* … */
  }
}

コード14-11

Hero.java

public class Hero {
  String name;
  int hp;
  static int money;
  /* … */
}

Main.java

public class Main {
  public static void main(String[] args) {
    Hero h1 = new Hero();
    Hero h2 = new Hero();
    Hero.money = 100;
    System.out.println(Hero.money);
    System.out.println(h1.money);
    h1.money = 300;
    System.out.println(h2.money);
  }
}

コード14-12

Hero.java

public class Hero {
  String name;
  int hp;
  static int money;
  /* … */
}

Main.java

public class Main {
  public static void main(String[] args) {
    // 1人も勇者を生み出していない状況で…
    Hero.money = 100;
    System.out.println(Hero.money);
  }
}

コード14-13

Hero.java

public class Hero {
  String name;
  int hp;
  static int money;
  /* … */
  static void setRandomMoney() {
    Hero.money = (int)(Math.random() * 1000);
  }
}

コード14-14

Hero.java

public class Hero {
  String name;
  int hp;
  static int money;
  /* … */
  static void setRandomMoney() {
    Hero.money = (int)(Math.random() * 1000);
  }
}

Main.java

public class Main {
  public static void main(String[] args) {
    Hero.setRandomMoney();
    System.out.println(Hero.money);
    Hero h1 = new Hero();
    System.out.println(h1.money);
  }
}

コード14-15

Hero.java

public class Hero {
  String name;
  int hp;
  static int money;
  /* … */
  static void setRandomMoney() {
    Hero.money = (int)(Math.random() * 1000);
    System.out.println(this.name + "たちの所持金を初期化しました");
  }
}