日期:2014-05-20  浏览次数:20741 次

超级新手问一个超级菜鸟的问题,莫见怪~
class StaticTest {
static int i = 47;
}
class Incrementable {
static void increment() { StaticTest.i++; }
}
public class cc {
public static void main(String[] args) {
System.out.println("StaticTest.i= " + StaticTest.i);
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
System.out.println("st1.i= " + st1.i);
System.out.println("st2.i= " + st2.i);
Incrementable sf = new Incrementable();
sf.increment();
System.out.println("After sf.increment() called: ");
System.out.println("st1.i = " + st1.i);
System.out.println("st2.i = " + st2.i);
Incrementable.increment(); //这个是什么情况?和上面的sf.increment()有什么区别?
System.out.println("After Incrementable.increment() called: ");
System.out.println("st1.i = " + st1.i);
System.out.println("st2.i = " + st2.i);
}
}

还有什么时候用static?static就不用写在class cc里了吗?
求教

------解决方案--------------------
class StaticTest {
static int i = 47;
}
class Incrementable {
static void increment() { StaticTest.i++; }
}
 
这个里面有一个静态方法,使用静态方法,直接是类名.方法
不需要new 一个Incrementable 


------解决方案--------------------
个人觉得没有什么区别,不过静态方法最好直接是类名.方法!
------解决方案--------------------
因为increment是个静态方法,可以直接调用!