Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在类之间传递字符串_Java_String - Fatal编程技术网

Java 在类之间传递字符串

Java 在类之间传递字符串,java,string,Java,String,对java来说是个新鲜事物。阅读其他一些问题,但尚未找到解决方案。我想把acname、dob和balance1(全部由用户输入)传递给另一个类。目前它会导致null。请帮助: 头等舱: public static String acname; public static String dob; public static String balance1; public static void main(String[] args) { switch (menu) {

对java来说是个新鲜事物。阅读其他一些问题,但尚未找到解决方案。我想把acname、dob和balance1(全部由用户输入)传递给另一个类。目前它会导致null。请帮助:

头等舱:

public static String acname;
public static String dob;
public static String balance1;

public static void main(String[] args) {

            switch (menu) {

            case 1: Scanner sc=new Scanner(System.in);

                System.out.println("Please enter account holders name:");

                    String acname = sc.nextLine();

                    Scanner sc2=new Scanner(System.in);

                System.out.println("Please enter account holders date of birth:");

                    String dob = sc2.nextLine();

                    BankAccount balance1 = new BankAccount(0, 0.10);
                    balance1.getBalance();

                    System.out.println("Account Created. Overview and Balance: " + "\n" + acname + "\n" + dob + "\n" + "£" + balance1.getBalance() + "\n");
二等舱:

public class MainMenu {

public static void main(String[] args) {

    System.out.println("--WELCOME TO BEAN BANKING LTD--");
    System.out.println("");
    System.out.println("1. Create new account");
    System.out.println("2. View account details and balance");
    System.out.println("3. Deactivate account");
    System.out.println("4. Exit System");

    Scanner scanner = new Scanner(System.in);
    int menu = scanner.nextInt();

    switch (menu) {
        case 1: AccountCreator.main(null);
        case 2: System.out.println(AccountCreator.acname + AccountCreator.dob + AccountCreator.balance1);

您正在使用与类变量相同的名称声明局部变量。除非您限定对局部变量的引用,否则将假定局部变量

而不是:

String acname = sc.nextLine();
只要做:

acname = sc.nextLine();

请出示一张能实际说明问题的照片。您没有显示足够的代码。这是两个独立的应用程序,它们不共享内存。当在JVM中实例化MainMenu时,第一个类中的静态字符串被实例化为null。您正在另一个应用程序中扫描这些字符串的值。如果您想共享它,您必须将第一类的扫描程序代码添加到案例2:of MainMenuIt可能有助于运行其中一些。具体来说,这将帮助您在类之间传递信息。这可能不是答案,但在每个case语句之后首先使用break语句,否则将执行后续的case。例如,如果用户选择了菜单1,则菜单2、3、4的所有其他代码。。。之后将执行。@MrRho实际上,MainMenu正在调用AccountCreator的main方法。这不是一个很好的方法,但是你必须从某个地方开始。而且,如果你在MainMenu类中不在2之前按1,这仍然没有帮助。也许可以添加一个初始化标志,这样,如果您按2,而1未被选中,则会显示一条错误消息,例如:“未找到任何现有帐户”