Java方法从未在main中达到(?)

时间:2016-06-24 09:26:45

标签: java

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");
     }
}

为什么打印AA而不是AB?我从一个关于C#的视频中看到了这个,但是显然java也有它。

1 个答案:

答案 0 :(得分: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");
     }
}