2013-08-03 96 views
0

我很好奇公共变量实际上做了什么。我认为他们在一个软件包内部的所有类中工作,但显然情况并非如此。我想知道如何将ADD和MULT变量从第一类传递到第二类。这是我的第一类代码:Java公共变量多类

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

你可以随时编辑你的问题,所以不需要抱歉,去编辑它 – Piro

+0

我不明白你的问题。你在问如何访问不同类中的公共变量? –

+0

好吧我修好了。 –

回答

1

必须使用其他类公共静态字段是这样的:

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

你的意思是'public static'字段。 –

+0

是的,你是对的 –

+0

好吧有道理。 –

2

与往常一样,你可以做的最好的事情是指docs

有时候,你想拥有所有对象通用的变量。 这是用静态修饰符完成的。在其声明中使用了静态修饰符的字段称为静态字段或类 变量。他们与班级相关联,而不是与任何 对象关联。每个类的实例在内存中的一个固定位置共享一个类变量,即 。任何对象都可以更改 类变量的值,但也可以在不使用 创建类的实例的情况下操作类变量。

类变量是由类名本身

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

也请按照Java Naming Convention并用First替换first。在你情况下,将first.ADD或者你甚至可以使用实例变量来访问它们

Classname.variableName 

+0

当OP一起使用时,看起来像OP会混淆“public”可见性和“static”修饰符。 –

0

您可以使用像这样访问公共静态字段。 但它通常是一个糟糕的编程习惯。就像这样:

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

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