JAVA 引数としてObject型を使うと、なんでもインスタンスを渡せる

**printAnything()メソッド**とほぼ同じ内容を持つのが、
**System.out.println()メソッド**

■printAnything

```java
public class Main23 {
	public static void main(String[] args) {
		Object o1 = new Empty();
		Object o2 = new Hero2();
		Object o3 = "こんにちは";
		printAnything(o3);
		printAnything(h2);
		printAnything(now2);
		printAnything(month);
		printAnything(s);
		printAnything(past1);

	}

	public static void printAnything(Object o) {
		System.out.println(o.toString());
	}
}
```

■printAnything実行結果
こんにちは
Hero2@6bc7c054
Wed Nov 11 17:55:52 JST 2015
10
Slime@232204a1
Thu Sep 22 01:23:45 JST 2011



---

```java
import java.util.Calendar;
import java.util.Date;

public class Main23 {
	public static void main(String[] args) {
		Hero2 h = new Hero2("ねこ５");
		Hero2 h1 = new Hero2("ミナト");
		Hero2 h2 = new Hero2("ねこ");
		Hero2 h3 = new Hero2("ねこ7");
		h3.sleep();
		h3.sit(4);

		System.out.println(h2.getName());
		System.out.println(h3.getName());
		h.setName("ねこ８");
		System.out.println(Hero2.money);

		System.out.println(Hero2.money);

		System.out.println(h1.money);
		System.out.println(Hero2.money);
		Matango2 m = new Matango2();
		Matango2 m1 = new Matango2();
		Matango2 m2 = new Matango2("ねこ３");
		m2.hp = 30;
		System.out.println(m1.name);
		System.out.println(m2.hp);
		System.out.println(m2.name);
		// ダンサー
		System.out.println(m1.getHp());
		Dancer d = new Dancer("ダンサー");
		d.attack(m1);
		System.out.println(d.getName());
		System.out.println(m1.getHp());
		d.read(m1);
		System.out.println(m1.getHp());

		h2.setName("ねこ13");
		System.out.println(h2.getName());
		System.out.println(h2.getName() + "のヒーローポイントは" + h3.getHp() + "です");

		Book k = new Book("Harry Potter", 980, "赤", "1234");
		System.out.println(k.getIsbn() + "番の本" + k.getName() + "は" + k.getPrice() + "円です");

		TangibleAsset ta2 = new Computer("パソコン", 45000, "白", "パナソニック");
		System.out.println(ta2.getName() + "は" + ta2.getPrice() + "円です");
		Matango2 pm2 = new PoisonMatango('R');
		System.out.println("PoisonMatango" + pm2.getSuffix() + "はMatango2の一種です");

		Character fool2 = new Fool("怠け者", 6);

		Character wz3 = new Wizard("魔女5", 4);
		System.out.println(wz3.getName() + "のヒーローポイントは" + wz3.getHp() + "です");

		Wizard wz6 = new Wizard("魔女6", 15);

		// キャラクター
		Character aa = new Wizard("魔女7", 21);
		Wizard ccc = (Wizard) aa; // ダウンキャストでエラー
		ccc.fireball(m2);
		// Hero h = (Hero) aa; エラーになる
		if (aa instanceof Wizard) {

			Wizard www = (Wizard) aa;
			www.fireball(m2);
		}
		ccc.fireball(m2);

		// ダンサー
		Character jjj = new Dancer("ダンサー5");

		if (jjj instanceof Dancer) {

			Dancer fff = (Dancer) jjj;
			fff.read(m2);
		}
		Dancer ppp = (Dancer) jjj; // ダウンキャストでエラー
		ppp.read(m2);

		// P519
		// Hero2 hazardH1 = new Hero2();
		// Hero2 hazardH2 = new Hero2();
		// Thief hazardT1 = new Thief();
		// Wizard hazardW1 = new Wizard();
		// Wizard hazardW2 = new Wizard();
		// System.out.println("hazardW1の名前は" + hazardW1.getName() + "です");
		//
		// // まず宿屋に泊まる
		// hazardH1.setHp(hazardH1.getHp() + 50);
		// hazardH2.setHp(hazardH2.getHp() + 50);
		// hazardT1.setHp(hazardT1.getHp() + 50);
		// hazardW1.setHp(hazardW1.getHp() + 50);
		// hazardW2.setHp(hazardW2.getHp() + 50);

		// P520

		Slime s = new Slime("スライム");
		Goblin g = new Goblin();

		h.attack(s);
		h.attack(g);
		System.out.println(s.getHp());

		Character[] hazard = new Character[5];
		hazard[0] = new Hero2();
		hazard[1] = new Hero2();
		hazard[2] = new Thief();
		hazard[3] = new Wizard();
		hazard[4] = new Wizard();

		for (Character temporaryVariable : hazard) {
			temporaryVariable.setHp(temporaryVariable.getHp() + 50);
		}

		System.out.println(hazard[0].getHp());
		System.out.println(hazard[1].getHp());
		System.out.println(hazard[2].getHp());
		System.out.println(hazard[3].getHp());
		System.out.println(hazard[4].getHp());

		X obj = new A();

		// 練習 13-3
		A obj1 = new A();
		B obj2 = new B();

		Y[] objj = new Y[2];
		objj[0] = new A();
		objj[1] = new B();

		for (Y temporaryVariable : objj) {
			temporaryVariable.b();
		}

		// long start = System.currentTimeMillis();
		//
		// long end = System.currentTimeMillis();
		// System.out.println("処理にかかった時間は・・・"
		// + (end -start) + "ミリ秒でした" );

		Date now = new Date();
		Calendar c = Calendar.getInstance();
		c.setTime(now);
		int y = c.get(Calendar.YEAR);
		System.out.println("今年は" + y + "年です");
		int month = c.get(Calendar.MONTH);
		System.out.println("今月は" + month + "月です");
		// 指定した日のDate型の値を得る
		c.set(2015, 11, 10, 18, 14, 45);
		c.set(Calendar.YEAR, 2011);
		Date past = c.getTime();

		System.out.println("");
		System.out.println(now);
		// 1970/1/1/0:00からの経過時間(ミリ秒)をミリ秒で返します
		System.out.println(now.getTime());
		Date past1 = new Date(1316622225935L);
		System.out.println(past1);

		// 現在日時
		Date now2 = new Date();
		System.out.println("現在日時は" + now2 + "です。");

		// P541
		Empty e = new Empty();
		String ss = e.toString();
		System.out.println(ss);

		Object o1 = new Empty();
		Object o2 = new Hero2();
		Object o3 = "こんにちは";
		printAnything(o3);
		printAnything(h2);
		printAnything(now2);
		printAnything(month);
		printAnything(s);
		printAnything(past1);

	}

	public static void printAnything(Object o) {
		System.out.println(o.toString());
	}
}
```

■実行結果
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
ねこ7は、眠って回復した！
ねこ7は、4秒座った！
HPが4ポイント回復した.
ねこ
ねこ7
ねこ８
0
0
0
0
ダミー２
30
ねこ３
10
Hero2のコンストラクタが動作
ダンサーの攻撃
敵に3ポイントのダメージ
ダンサー
7
ダンサーは読んだ
9
ねこ13
ねこ13
ねこ13のヒーローポイントは104です
1234番の本Harry Potterは980円です
パソコンは45000円です
PoisonMatangoRはMatango2の一種です
魔女5のヒーローポイントは4です
魔女7は火の玉を放った!
敵に20ポイントのダメージ
魔女7は火の玉を放った!
敵に20ポイントのダメージ
魔女7は火の玉を放った!
敵に20ポイントのダメージ
Hero2のコンストラクタが動作
ダンサー5は読んだ
ダンサー5は読んだ
Monsterのコンストラクターが動作
ねこ８は攻撃した！
敵に5ポイントのダメージを与えた！
ねこ８は攻撃した！
敵に5ポイントのダメージを与えた！
4990
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
150
150
50
50
50
AbBb今年は2015年です
今月は10月です

Wed Nov 11 17:55:52 JST 2015
1447232152368
Thu Sep 22 01:23:45 JST 2011
現在日時はWed Nov 11 17:55:52 JST 2015です。
Empty@75b84c92
Hero2のコンストラクタが動作
Hero2のコンストラクタが動作
こんにちは
Hero2@6bc7c054
Wed Nov 11 17:55:52 JST 2015
10
Slime@232204a1
Thu Sep 22 01:23:45 JST 2011