ocj-pの勉強しています。 下記に記載したソース中の★部分について、 なぜこう記載すると、Colorクラスに定義したtoString()メソッドが呼び出されるのでしょうか? 勉強しているテキストには初めは☆で記載してあり、 「★のように直すと、Colorクラスに定義したtoString()メソッドが呼び出される」 と書いてあったのですが、その辺の解説がなかった為です。 初歩的なことなのでしょうが、どなかたか教えていただけませんでしょうか。 ================================================================== 1: public class Sample01{ 2: 3: public static void main(String[] args){ 4: Dog[] dogs = new Dog[3]; 5: 6: dogs = new Dog[]{ 7: new Dog(Color.BLACK), 8: new Dog(Color.WHITE), 9: new Dog(Color.GRAY) 10: }; 11: for(Dog dog:dogs){ 12: System.out.println(dog); 13: } 14: } 15: } 16: 17: enum Color{ 18: WHITE("Shiro"),BLACK("Kuro"),GRAY("Teru"); 19: String name; 20: Color(String s){ 21: name = s; 22: } 23: public String toString(){ 24: return name; 25: } 26: } 27: 28: class Dog{ 29: Color color; 30: Dog(Color color){ 31: this.color = color; 32: } 33: public String toString(){ 34: // return "(" + color.name() + ")"; ☆☆☆☆☆☆ 35: return "(" + color + ")"; ★★★★★★ 36: } 37: } 38:
↧