【分からないこと】
以下のソースコードでなぜ処理した後の戻り値が反映されないのか、またどのように修正すれば戻り値が反映されるようになるか
【内容】
以下ソースコードはJava Silver SE11の紫本の模試に出てくる問題です。解説を見た限りだと「戻り値を変数に代入していないため戻り値が反映されない」とありましたが、その真意がつかめなかったため質問いたしました。
Java
1public class Main { 2 public static void main(String[] args) throws Exception { 3 4 Person p1 = null; 5 method(p1); 6 System.out.println(p1); 7 Person p2 = new Person("suzuki"); 8 method(p2); 9 System.out.println(p2); 10 11 } 12 static Person method(Person obj){ 13 if(obj == null){ 14 return new Person("tanaka"); 15 }else{ 16 return null; 17 } 18 } 19} 20 21class Person{ 22 private String name; 23 Person(String name){ 24 this.name = name; 25 } 26 public String toString(){ 27 return name; 28 } 29} 30
答えについては納得しているのですが(null,suzukiとなる)、解説の意味と、returnの戻り値を出力させるにはどのようにソースコードを修正すればよいのか?という部分がわかりませんでした。
ご回答いただけると嬉しいです。
回答2件
あなたの回答
tips
プレビュー