2016-06-24 1 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"); 
    } 
} 
관련 문제