[英]How do you transfer a variable defined in the main method of one class to another?
我已经在许多程序中看到了这一点,但是我似乎无法遵循编程逻辑。
可以说您有一个简单的类ClassB。 然后在ClassB的main方法中定义一个整数变量:
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个小时,无法绕过它。
您不应该有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
中实例化第二个class
,然后被授予访问其公共成员变量的权限。
public static void main(String[] args)
旨在用作Java程序的起点。 最好将其中一种方法重命名为其他方法。
您看到的问题是, int stuff
变量的范围仅限于B
类的main()
方法,因为它是在main()
方法的主体内声明的。 为了使其可见,您需要将其声明为公共字段(在您的情况下可以是静态的)。
我建议您按以下方式更改程序:
public class A {
public static int stuff;
public static void initStaticMembers() {
stuff = 333;
}
}
public class B {
public static void main(String[] args) {
A.initStaticMembers();
System.out.println(A.stuff);
}
}
我改名main()
方法A
到initStaticMembers()
和丢弃的方法参数,因为在我们的情况下是不需要的。 为了使用B
的字段A.stuff
,首先需要调用方法A.initStaticMembers()
。
当然,有一些方法可以改进此程序,但是我认为您应该一次学习Java。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.