【发布时间】:2015-02-26 14:13:05
【问题描述】:
我正在寻找静态变量的含义 我找到了这个网站
http://java-questions.com/keywords-interview-questions.html
及其关于静态变量的声明 当我使用他的例子时,我发现了不同的结果
静态关键字可以与变量和方法一起使用,但不能与类一起使用。任何声明为静态的东西都与类相关,而不是对象。
静态变量:一个类的多个对象共享一个静态变量的同一个实例。考虑这个例子:
public class Counter{
private static int count=0;
private int nonStaticcount=0;
public void incrementCounter(){
count++;
nonStaticcount++;
}
public int getCount(){
return count;
}
public int getNonStaticcount(){
return nonStaticcount;
}
public static void main(String args[]){
Counter countObj1 = new Counter();
Counter countObj2 = new Counter();
countObj1.incrementCounter();
countObj1.incrementCounter();
System.out.println("Static count for Obj1: "+countObj1.getCount());
System.out.println("NonStatic count for Obj1: "+countObj1.getNonStaticcount());
System.out.println("Static count for Obj2: "+countObj2.getCount())
System.out.println("NonStatic count for Obj2: "+countObj2.getNonStaticcount())
}
输出
Static count for Obj1: 2
NonStatic count for Obj1: 1
Static count for Obj2: 2
NonStatic count for Obj2 :1
当我使用这个示例时,我得到了
Static count for Obj1: 2
NonStatic count for Obj1: 2 // instead of 1
Static count for Obj2: 2
NonStatic count for Obj2 :0 // instead of 1
谁能告诉我静态变量的含义和示例声明如何在我的方法中使用它
谢谢你
【问题讨论】:
-
第二个
countObj1.incrementCounter();应该是countObj2.incrementCounter();,你会在示例中得到结果。