来自一个非常简单的高中Java学生的一个非常简单的问题。
我收集了用户输入并创建了一个对象“ AccountOne”。我必须将AccountOne传递到类printcode中,并使用printaccount方法来打印“ myaccount.name,myaccount.address,myaccount.type,myaccount.balance”。我的老师一直在试图解释继承问题,而她却每天都在失去我。据我了解,类型为AccountOne的对象myaccount现在应该在自身内部“具有” myaccount.name,myaccount.address,myaccount.type,myaccount.balance。由于将对象传递给方法,因此该方法继承了其中的任何内容。 ergo,方法printaccount应该能够找到符号“ myaccount,myaccount.name,myaccount.address,myaccount.type,myaccount.balance”。我已经研究过了,对我来说一切都没有意义似乎与我尚未开始掌握的更高级的东西有关。如果有重复的问题,请指出。
编译时出现10多个错误,提示“不是语句”或“找不到符号myaccount”。在这一点上,我只取零,我感到无比沮丧。我一直在瞥一眼这很简单的事情。
我试过在main语句之前在printcode中定义变量。 AccountOne中的已定义变量。尝试研究不同的方法定义方法,但找不到对我有意义的任何东西。
import java.util.Scanner;
public class AccountOne
{
public String name;
public String address;
public String type;
public double balance;
public static void main(String args[])
{
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter Name ");
String name=keyboard.nextLine();
System.out.println();
System.out.print("Enter Address ");
String address=keyboard.nextLine();
System.out.println();
System.out.print("Enter type ");
String type=keyboard.nextLine();
System.out.println();
System.out.print("Enter Balance ");
double balance=keyboard.nextDouble();
System.out.println();
AccountOne myaccount=new AccountOne();
myaccount.name=name;
myaccount.address=address;
myaccount.type=type;
myaccount.balance=balance;
printcode.printaccount(myaccount);
}
}
第二类-打印代码:
public class printcode
{
public static void main(String args[])
{
public static printaccount(AccountOne myaccount)
{
System.out.println("My Account = " + myaccount.name + " " + myaccount.address + " " + myaccount.type + " $" + myaccount.balance);
}
}
}
最佳答案
首先,当我们说-myaccount.name
时,它表示myaccount
是MyAccount
类的实例,并且定义了一个成员变量,并且该成员变量是name
例如 -
class MyAccount {
String name;
public static void main (String...a) {
//here am allowed to say myaccount.name
MyAccount myaccount = new MyAccount();
}
}
二,声明
System.out.println("My Account = " + myaccount.name " " + myaccount.address " " + myaccount.type " $" + myaccount.balance);
都是错的修改为
System.out.println("My Account = " + myaccount.name + " " + myaccount.address + " " + myaccount.type + " \\$" + myaccount.balance);
现在,您应该获得另一个异常,该异常会告诉您
non-static variable address cannot be referenced from a static context
。这意味着如果要在静态的name
上下文中访问main
-您需要将name
的声明更改为static String name;
第三,文件中只能有一个
public
类。将public class printcode
更改为class printcode
。如果两个类都在不同文件中,则无需考虑这一点。希望这可以帮助。我将两个类都复制粘贴到一个文件中。