Java 在类之间传递字符串
对java来说是个新鲜事物。阅读其他一些问题,但尚未找到解决方案。我想把acname、dob和balance1(全部由用户输入)传递给另一个类。目前它会导致null。请帮助: 头等舱: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) {
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未被选中,则会显示一条错误消息,例如:“未找到任何现有帐户”