【问题标题】:what does the static modifier do in javajava中的static修饰符有什么作用
【发布时间】:2013-08-10 18:21:55
【问题描述】:

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

病毒:

public class Virus {

static int virusCount = 0;

public Virus() {
    virusCount++;
}

public static int getVirusCount() {
    return virusCount;
}

}

病毒实验室:

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

【问题讨论】:

    标签: java arrays object for-loop static


    【解决方案1】:

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

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

    另外,请参考一本教科书以供您进一步学习,这将有很大帮助。

    【讨论】:

      【解决方案2】:

      我会尽量简短

      如果您希望共享静态变量,则需要静态变量 跨越您班级的所有对象,因此如果其中一个对象 改变它的值,它也会反映在其他对象中,这 就是上面例子中所做的。

      【讨论】:

        【解决方案3】:

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

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

        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;
        

        这对于在设置它们的类之外访问变量很有用。 希望对您有所帮助。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2011-08-13
            • 2015-11-08
            • 2013-05-19
            • 2010-09-13
            • 1970-01-01
            • 2011-02-15
            • 2015-11-26
            • 1970-01-01
            • 2012-11-24
            相关资源
            最近更新 更多