我很好奇公共变量到底是做什么的。我假设它们可以跨包中的所有类工作,但显然情况并非如此。我想知道如何将第一个类中的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);
}
}发布于 2013-08-04 04:35:46
一如既往,您能做的最好的事情就是引用docs
有时,您希望拥有对所有对象通用的变量。这是通过static修饰符完成的。声明中带有static修饰符的字段称为静态字段或类变量。它们与类相关联,而不是与任何对象相关联。类的每个实例共享一个类变量,该变量位于内存中的一个固定位置。任何对象都可以更改类变量的值,但也可以在不创建类的实例的情况下操作类变量。
类变量由类名称本身引用
这里有一个很好的例子,遵循它,你就会知道你应该写first.ADD。
另外,请关注Java Naming Convention并将first替换为First。
发布于 2013-08-04 04:30:17
您必须在其他类中使用公共静态字段,如下所示:
int y = first.derp(6,10,first.ADD);发布于 2013-08-04 04:38:24
您可以使用如下代码访问公共静态字段:
Classname.variableName在本例中,它应该是first.ADD,或者您甚至可以使用实例变量来访问它们。但这通常是一种糟糕的编程实践。如下所示:
first obj = new first();
obj.ADD;但是,使用对象引用访问静态变量是一种糟糕的编程实践。此外,您还必须考虑是否可以将静态公共变量设为常量,方法是将它们设为final。这将确保访问变量的其他类不会意外或有意地修改它们。
https://stackoverflow.com/questions/18036958
复制相似问题