【问题标题】:Java public variable multiple classesJava公共变量多个类
【发布时间】:2013-08-03 20:24:54
【问题描述】:

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

【问题讨论】:

  • 你可以随时编辑你的问题,所以不用抱歉,去编辑它
  • 我没有收到你的问题。您是在问如何访问不同类中的公共变量?
  • 尝试使用first.ADDfirst.MULT
  • 是的,我认为这就是 public 首先要做的。这是我的困惑。
  • public 表示该字段/方法将在每个包上可用。

标签: java class parameters public


【解决方案1】:

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

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

类变量由类名本身引用

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

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

【讨论】:

  • 看起来 OP 在一起使用时混淆了 public 可见性和 static 修饰符。
【解决方案2】:

您必须像这样在其他类中使用公共静态字段:

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

【讨论】:

  • 你的意思是public static字段。
【解决方案3】:

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

Classname.variableName

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-18
    • 2010-12-31
    • 2014-10-09
    • 2014-02-17
    • 1970-01-01
    • 2014-08-21
    相关资源
    最近更新 更多