1

通过在另一个 .java 类中调用单独的 .java 类的变量,我遇到了一些问题。

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

变量.java:

package de.cfe.base;

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

}

调用TheVariables.java:

package de.cfe.base;

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

5 回答 5

4

当你说 just int1andint2时,Java 假定它们已经在类中定义并在范围内。但它们没有在CallingTheVariables. 您必须使用定义它们的类来限定您的参考:

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

一种高级替代方法是静态导入(在该页面中向下滚动)。在要引用变量的类中,将其放在类上方:

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

然后你可以用它们的简单名称来引用变量,因为你已经有了它:

int1 = 1;
int2 = 10;
于 2013-10-15T20:57:37.470 回答
2

尝试这个:

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

int1并且int2“属于” Variables,因此您只能通过 访问它们Variables

于 2013-10-15T20:57:31.520 回答
0

试试下面:

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

或者您可以进行静态导入。

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

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

import static java.lang.Math.PI;

或集体:

import static java.lang.Math.*;

什么时候应该使用静态导入?

非常节俭!仅当您想要声明常量的本地副本或滥用继承(常量接口反模式)时才使用它。换句话说,当您需要频繁访问一个或两个类的静态成员时使用它。如果你过度使用静态导入功能,它会使你的程序不可读和不可维护,你导入的所有静态成员都会污染它的命名空间。您的代码的读者(包括您,在您编写代码几个月后)将不知道静态成员来自哪个类。从一个类中导入所有的静态成员对可读性尤其有害;

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

于 2013-10-15T20:58:38.747 回答
0

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

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

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

Variables v = new Variables();
v.int1 = 1;
v.int2 = 10;
于 2013-10-15T21:00:17.950 回答
0
public class CallingTheVariables {
    public static void main(String[] args) {
        Variables.int1 = 1;
        Variables.int2 = 10;
    }
}
于 2013-10-15T20:58:05.587 回答