首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java公共变量多类

Java公共变量多类
EN

Stack Overflow用户
提问于 2013-08-04 04:24:54
回答 3查看 10.9K关注 0票数 0

我很好奇公共变量到底是做什么的。我假设它们可以跨包中的所有类工作,但显然情况并非如此。我想知道如何将第一个类中的ADD和MULT变量传递到第二个类中。下面是我在第一个类上的代码:

代码语言:javascript
运行
复制
    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;
    }
}

第二个类:

代码语言:javascript
运行
复制
public class second {
    public static void main(String args[]){
        int y = first.derp(6,10,ADD);
        System.out.println(y);
    }
}
EN

回答 3

Stack Overflow用户

发布于 2013-08-04 04:35:46

一如既往,您能做的最好的事情就是引用docs

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

类变量由类名称本身引用

这里有一个很好的例子,遵循它,你就会知道你应该写first.ADD

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

票数 2
EN

Stack Overflow用户

发布于 2013-08-04 04:30:17

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

代码语言:javascript
运行
复制
int y = first.derp(6,10,first.ADD);
票数 1
EN

Stack Overflow用户

发布于 2013-08-04 04:38:24

您可以使用如下代码访问公共静态字段:

代码语言:javascript
运行
复制
Classname.variableName

在本例中,它应该是first.ADD,或者您甚至可以使用实例变量来访问它们。但这通常是一种糟糕的编程实践。如下所示:

代码语言:javascript
运行
复制
first obj = new first();
obj.ADD;

但是,使用对象引用访问静态变量是一种糟糕的编程实践。此外,您还必须考虑是否可以将静态公共变量设为常量,方法是将它们设为final。这将确保访问变量的其他类不会意外或有意地修改它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18036958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档