Java公共变量多个类

时间:2013-08-03 20:24:54

标签: java class parameters public

我很好奇公共变量究竟在做什么。我认为它们可以在包中的所有类中工作,但显然情况并非如此。我想知道如何将ADD和MULT变量从第一个类传递到第二个类。这是我在第一堂课上的代码:

    public class first {
    public static int ADD = 0;
    public static int MULT = 1;
    public static int derp(int x, int x2, int a){
        int septor = 0;
        if(a == 0){
            septor = x + x2;
        }
        if(a == 1 ){
            septor = x * x2;
        }
        return septor;
    }
}

第二节课:

public class second {
    public static void main(String args[]){
        int y = first.derp(6,10,ADD);
        System.out.println(y);
    }
}

3 个答案:

答案 0 :(得分:2)

与往常一样,您可以做的最好的事情是参考docs

  

有时,您希望拥有所有对象共有的变量。   这是通过静态修改器完成的。有的领域   声明中的static修饰符称为静态字段或类   变量。他们与班级有关,而不是与班级有关   宾语。该类的每个实例都共享一个类变量,即   在内存中的一个固定位置。任何对象都可以更改a的值   类变量,但类变量也可以在没有的情况下进行操作   创建一个类的实例。

     

类变量由类名本身引用

有一个很好的例子,按照它,你就会知道你应该写first.ADD

另请关注Java Naming Convention并将first替换为First

答案 1 :(得分:1)

您必须在其他类中使用公共静态字段,如下所示:

int y = first.derp(6,10,first.ADD);

答案 2 :(得分:0)

您可以使用以下内容访问公共静态字段:

Classname.variableName

在你的情况下,它将是first.ADD,或者你甚至可以使用实例变量来访问它们。 但这通常是一个糟糕的编程习惯。像这样:

first obj = new first();
obj.ADD;

但这是使用对象引用访问静态变量的糟糕编程习惯。此外,您必须考虑是否可以通过将静态公共变量设为最终来使其成为常量。这将确保访问变量的其他类不会意外或故意修改它们。