在另一个类中调用一个Class的变量

时间:2013-10-15 20:55:54

标签: java class variables

我通过在另一个.java类中调用一个单独的.java类的变量来解决一些问题。

我尝试在Variables.java文件中声明Variables,并在另一个.java文件中使用相同的两个变量。但它不起作用。

Variables.java:

package de.cfe.base;

public class Variables {
    public static int int1;
    public static int int2;

}

CallingTheVariables.java:

package de.cfe.base;

public class CallingTheVariables {
    public static void main(String[] args) {
        int1 = 1;
        int2 = 10;
    }
}

5 个答案:

答案 0 :(得分:3)

当您只说int1int2时,Java假定它们已经在类中定义并且在范围内。但它们没有在CallingTheVariables中定义。您必须使用定义它们的类来限定您的引用:

Variables.int1 = 1;
Variables.int2 = 10;

高级替代方案是static import(在该页面中向下滚动)。在类中引用变量,将它放在类上面:

import static de.cfe.base.Variables.*;

然后你可以用它们的简单名称来引用变量:

int1 = 1;
int2 = 10;

答案 1 :(得分:2)

试试这个:

Variables.int1 = 1;
Variables.int2 = 10;

int1int2“属于”Variables,因此您只能通过Variables访问它们。

答案 2 :(得分:0)

public class CallingTheVariables {
    public static void main(String[] args) {
        Variables.int1 = 1;
        Variables.int2 = 10;
    }
}

答案 3 :(得分:0)

尝试以下:

Variables.int1 = 1;
Variables.int2 = 10;

或者您可以执行static import.

import static de.cfe.base.Variables.*;

静态导入构造允许对静态成员进行非限定访问,而不从包含静态成员的类型继承。相反,程序会单独导入成员:

import static java.lang.Math.PI;

或集体:

import static java.lang.Math.*;
  

何时应该使用静态导入?

     

非常谨慎!只有在你想要宣布的时候才使用它   常量的本地副本,或滥用继承(常量   接口反模式)。换句话说,在需要时使用它   频繁访问一个或两个类的静态成员。如果你   过度使用静态导入功能,它可以使您的程序不可读   并且不可维护,用所有静态污染其命名空间   您导入的成员。您的代码的读者(包括您,几个月   在你写完之后)将不知道静态成员来自哪个类   从。从类中导入所有静态成员即可   对可读性特别有害;

     

如果您只需要一个或两个成员,请单独导入它们。如果使用得当,静态导入可以使您的程序更具可读性   删除重复类名的样板。

答案 4 :(得分:0)

您必须正确引用变量。使用

Variables.int1 = 1;
Variables.int2 = 10;

因为它们是静态的,或者如果你想创建它们的实例,删除它们的静态修饰符,然后使用;

Variables v = new Variables();
v.int1 = 1;
v.int2 = 10;