我已经在许多程序中看到了这一点,但我似乎无法遵循编程逻辑。
假设您有一个简单的类ClassB。在ClassB的主要方法中,您可以定义一个整数变量:
public class B {
public static void main(String[] args) {
int stuff = 333;
}
}
如何将变量转移到另一个类,比如ClassA,以便使用。
public class A {
public static void main(String[] args) {
System.out.println(stuff);
}
}
有人可以用简单的语言向我解释。我一直在努力学习这个2个小时而且无法绕过它。
答案 0 :(得分:1)
您不应该有2个main
方法。应该(通常)只有一个class
:
<强> ClassA.java 强>
public class A {
public static void main(String[] args) {
ClassB b = new ClassB();
System.out.println(b.stuff);
}
}
<强> ClassB.java 强>
public class B {
public int stuff = 333; // member variable
}
您实例化第一个class
,然后您被授予访问其公共成员变量的权限。
答案 1 :(得分:1)
"ip1_b"
旨在用作Java程序的起点。将你的一种方法重命名为其他方法可能会更好。
您看到的问题是变量public static void main(String[] args)
的范围仅限于类int stuff
的{{1}}方法,因为它是在{{main()
的主体内声明的1}}方法。为了使其可见,您需要将其声明为公共字段(在您的情况下可以是静态的)。
我建议你改变你的程序如下:
B
main()
我将public class A {
public static int stuff;
public static void initStaticMembers() {
stuff = 333;
}
}
的{{1}}方法重命名为public class B {
public static void main(String[] args) {
A.initStaticMembers();
System.out.println(A.stuff);
}
}
并删除了方法参数,因为在我们的案例中不需要它们。要使用main()
中的字段A
,需要首先调用方法initStaticMembers()
。
当然有很多方法可以改进这个程序,但我认为你应该一步一步地学习Java。