繁体   English   中英

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

[英]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()方法AinitStaticMembers()和丢弃的方法参数,因为在我们的情况下是不需要的。 为了使用B的字段A.stuff ,首先需要调用方法A.initStaticMembers()

当然,有一些方法可以改进此程序,但是我认为您应该一次学习Java。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM