如何将一个类的main方法中定义的变量传递给另一个类?

时间:2015-11-29 17:39:20

标签: java class

我已经在许多程序中看到了这一点,但我似乎无法遵循编程逻辑。

假设您有一个简单的类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个小时而且无法绕过它。

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。