0

我很好奇公共变量实际上做了什么。我假设它们适用于包内的所有类,但显然情况并非如此。我想知道如何将 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);
    }
}
4

3 回答 3

2

与往常一样,您能做的最好的事情就是参考文档

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

类变量由类名本身引用

那里有一个很好的例子,跟着它,你就会知道你应该写first.ADD.

另请遵循Java 命名约定并替换firstFirst.

于 2013-08-03T20:35:46.473 回答
1

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

int y = first.derp(6,10,first.ADD);
于 2013-08-03T20:30:16.823 回答
0

您可以使用以下方式访问公共静态字段:

Classname.variableName

在您的情况下,first.ADD您甚至可以使用实例变量来访问它们。但这通常是一种不好的编程习惯。像这样的东西:

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

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

于 2013-08-03T20:38:24.483 回答