2016-06-24 13 views
0
public class HelloWorld{ 

    static class Sample { 
     private String n; 

     public Sample(String n){ 
      this.n = n; 
     } 

     public String toString(){ 
      return n; 
     } 
    } 
    public static void main(String []args){ 
     Sample k = new Sample("A"); 
     System.out.println(k); 
     stuff(k); 
     System.out.println(k); 
    } 

    public static void stuff(Sample k){ 
     k = new Sample("B"); 
    } 
} 

なぜABの代わりにAAが印刷されるのですか?私はC#に関するビデオからこれを見つけましたが、apparantly javaにもそれがあります。Javaメソッドは決して到達していませんでしたか?

答えて

1

あなたは静的な方法としてstuffメソッドを作成しているので、そのことが起こります。他の賢明なそれは動作します。

このコードを印刷ABに使用してください。

public class HelloWorld{ 

    static class Sample { 
     private String n; 

     public Sample(String n){ 
      this.n = n; 
     } 

     public String toString(){ 
      return n; 
     } 
    } 
    public static void main(String []args){ 
     Sample k = new Sample("A"); 
     System.out.println(k); 
     k=stuff(k); 
     System.out.println(k); 
    } 

    public static Sample stuff(Sample k){ 
     return new Sample("B"); 
    } 
} 
関連する問題