public class TestThis { private static int i; public static void main(String[] args) { TestThis t = new TestThis(); t.get();
t.set(1);
t.get(); TestThis c = new TestThis(); c.get();
c.set(5);
c.get();
} public TestThis() { } public static void get() { System.out.println("i的初始值---" + i); System.out.println("隐示调用i的值 ---" + set(i)); System.out.println("显示调用this i的值--" + set(i)); } public static int set(int i) { return i++;
}
}
为啥输出的结果是0000000呢???????javastatic

解决方案 »

  1.   

    public static int set(int i) { return i++;
    }
    你调用的i只不过是函数里面的i而已,返回之后没有赋值给全局变量i(方法里面的i和全局的i完全没关系),这个问题和静态也没关系,只有一个类而已
      

  2.   

    帮你改了一下。自己再运行一下吧!!package pkg;public class TestThis {  private static int i;  public static void main(String[] args) {  TestThis t = new TestThis();  t.get();
     t.set(1);
     t.get();  TestThis c = new TestThis();  c.get();
     c.set(5);
     c.get();
     }  public TestThis() {  }  public static void get() {  System.out.println("i的初始值---" + i);  System.out.println("隐示调用i的值 ---" + set(i));  System.out.println("显示调用this i的值--" + set(i));  }  public static int set(int j) {//这里的i换成j 因为在最上面已经定义了一个全局的静态变量i
     
     i=j;//把j赋值给上文中定义的全局变量i
     
     return i++;
     }
     }
      

  3.   

    return i++;貌似没什么意义,要么return i; 要么return ++i;
      

  4.   

    我想你是被i这个变量给搞糊涂了,你set方法中参数i和你成员变量i不是一回事,这个你要知道。
    分析代码:
    首先你调用get,那么get方法输出的都是0,这个没问题。
    在调用set方法,你传了个参数1,在set方法中放回1后再+1,这个方法是有返回值的,但是你t.set后并没有接受返回来的值,也就是你调用这个方法没有任何意义。
    然后你在调用t.get方法,其实和第一部调用get是一回事,你的成员变量i并没有因为你调用set方法而改变。
    t.get();
    t.set(1);
    t.get();画图说明:
    下面这段代码,不知道是不是你想要的结果。
    package com.test;import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;public class Test {
    private static int i; public static void main(String[] args) { Test t = new Test(); t.get();
    i = t.set(1);
    t.get(); Test c = new Test(); c.get();
    i = c.set(5);
    c.get();
    } public Test() { } public static void get() { System.out.println("i的初始值---" + i); System.out.println("隐示调用i的值 ---" + set(i)); System.out.println("显示调用this i的值--" + set(i)); } public static int set(int i) {
    return i++;
    }
    }