static修饰符在java中做了什么

时间:2013-08-10 18:21:55

标签: java arrays object for-loop static

在本书中,有一个如何使用静态变量和方法的例子。我不明白发生了什么。解释为什么在方法和变量面前必须有静态。有两个单独的类叫做Virus和VirusLab。 VirusLab.java接受命令行参数并生成Virus对象的数量,然后吐出Virus对象的数量。感谢

病毒:

public class Virus {

static int virusCount = 0;

public Virus() {
    virusCount++;
}

public static int getVirusCount() {
    return virusCount;
}

}

VirusLab:

public class VirusLab {
public static void main(String[] args) {
    int numViruses = Integer.parseInt(args[0]);
    if (numViruses > 0) {
        Virus[] virii = new Virus[numViruses];
        for (int i = 0; i < numViruses; i++) {
            virii[i] = new Virus();
        }
        System.out.println("There are " + Virus.getVirusCount()
                + " viruses.");
    }
}
}

4 个答案:

答案 0 :(得分:2)

网络搜索会为您提供数百个链接来解释Java中的“静态”关键字。

请参阅以下文档:http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

此外,请参阅教科书以便进一步学习,这将有很大帮助。

答案 1 :(得分:0)

我会保持很短的时间

  

如果希望共享该变量,则需要静态变量   跨越所有类的对象,以便如果其中一个对象   改变它的价值,它也将反映在其他物体中   就是上面例子中完成的事情。

答案 2 :(得分:0)

静态变量是与类的实例无关的变量。

这意味着您不必创建类的新实例来从另一个类访问该变量。考虑一下:

public class Login {
public static String loggedInUser 

public void setLoggedInUser(String name){
    this.loggedInUser = name;
}
}

要访问另一个类中的String loggedInUser,您不必说

Login login = new Login();
String username = login.loggedInUser;

你只需要说

String username = Login.loggedInUser;

这对于访问设置类之外的变量非常有用。 希望有所帮助。

答案 3 :(得分:0)

尝试阅读我在上一个问题中给出的答案:
Accessing Static variables
并使谷歌和维基百科成为你的朋友他们将节省你的时间来这里发布问题,等待和刷新你的页面,以检查是否有任何答案。