我很好奇公共变量究竟在做什么。我认为它们可以在包中的所有类中工作,但显然情况并非如此。我想知道如何将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);
}
}
答案 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;
但这是使用对象引用访问静态变量的糟糕编程习惯。此外,您必须考虑是否可以通过将静态公共变量设为最终来使其成为常量。这将确保访问变量的其他类不会意外或故意修改它们。