教えてもらいたい事
Javaを勉強中なのですが、インスタンスを生成した際の引数に、別のインスタンスが与えられていた時は何が渡されるのか、どんな挙動をしているのかが分かりません。
説明
一例として以下のコードを書いてみました
Owner
1package practice; 2 3public class Owner { 4 5 public static void main(String[] args) { 6 7 Dog dog = new Dog("太朗",10); 8 House house = new House(dog); 9 10 dog.call(); 11 dog.status(); 12 house.dog_room(); //("太郎",10)などの引数を渡すと実行できます 13 } 14} 15
Dog
1package practice; 2 3public class Dog { 4 5 String name; 6 int older; 7 8 public Dog(String name,int older) { 9 this.name = name; 10 this.older = older; 11 } 12 13 void call() { 14 System.out.println("ワンワン"); 15 } 16 17 void status() { 18 System.out.println("この犬は"+this.name+"と言います"); 19 System.out.println("年齢は"+this.older+"歳です"); 20 } 21 22}
House
1package practice; 2 3public class House { 4 5 String h_name; 6 int h_year; 7 8 public House(String name,int year) { 9 this.h_name = name; 10 this.h_year = year; 11 } 12 13 public House(Dog inu) { 14 } 15 16 void dog_room(String name,int year) { 17 System.out.println(name + "の犬小屋は、作られた年は"+ year + "年前になります"); 18 } 19 20 public Dog getBreed() { 21 return null; 22 } 23} 24
私が分からないのは以下のような部分です。
Owner
1 2 Dog dog = new Dog("太朗",10); 3 House house = new House(dog); 4
このコードでは
最初にdogインスタンスを生成、引数には("太郎",10)を渡しています。
その次に、houseインスタンスを生成、引数にはインスタンスを示すdogインスタンスを渡している
という解釈をしています。
上記を踏まえて、私はhouseインスタンスに、別のインスタンスを引数として渡す事がどんな挙動をしているのか分かりません。
(言い換えればオブジェクトにオブジェクトを渡す事でどんな挙動をすることが出来るのか分かりません)
dogクラスに渡された引数がhouseクラスにも渡される、またhouseクラスなどでdogクラスのメソッドが実行できる。など自分でも考えましたがどれも違うと思っています。
質問文が非常に分かりにくい文になっているという自覚はあります。申し訳ありません。
それでも回答をしてくださる方で私のコードでは説明がしずらいなどありましたら、以下のJavaのドキュメントにある
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
のコードで説明してくださると理解しやすくなります。
ご回答の方、どなたか宜しくお願いします。
補足情報
IDEはeclipseを使用しています。
回答4件
あなたの回答
tips
プレビュー