[英]How do I accept user input with a instance variable of another class?
我有一个大学的任务,我们必须序列化一个名为Current的子类。 我们必须要求用户输入新的当前帐户的详细信息,以便可以序列化。
我有一个类层次结构,其中Account类是超类。 应该可以添加,查看,列出,编辑和删除当前对象。 我们不能要求用户添加他们的帐号,因为这是通过静态变量完成的。 例如: **accountNo** = **nextAvailableNumber++**
;
我必须接受用户名和dateOpened的详细信息,我已经编写了一个Name类,但Name类有一个名为name的Name类型的变量,所以我不能将它用作子类中的String。 它给了我一个不匹配的异常,无法将String转换为Name和mismatch异常,无法将date转换为Date为DateOpened 。
我的问题是。 如果我必须接受用户输入。 我应该在Name类中使用Type Name的name变量来获取输入,我应该对Date
类型的**dateOpened**
变量做同样的**dateOpened**
吗? 我应该铸造吗? 这是我的代码,它是一个基于菜单的系统,允许用户设置帐户。
//名称类名称变量类型Name
&& Date
变量**dateOpened**
类型为Date。
package ie.lyit.bank;
public abstract class Account
{
protected Name name; // COMPOSITION - Account HAS-A name (object of class Name)
protected String address;
protected double balance;
protected Date dateOpened; // COMPOSITION - Account HAS-A dateOpened (object of class Date)
protected int accountNo;
private static int nextUniqueNumber = 1; // Next available unique Account number
// Default Constructor - set Instance Variables to null
public Account()
{
name = new Name();
address= new String(); // OR address = ""; OR address = null;
balance = 0.0;
dateOpened = new Date();
// Set accountNo to static nextUniqueNumber & increment it for next accountNo
accountNo = nextUniqueNumber++;
}
// Current class with read() method
// Read method to read in the account details from the user
public void read()
{
Scanner keyboardIn = new Scanner(System.in);
System.out.println("ENTER ACCOUNT DETAILS ==>");
System.out.print("ACCOUNT NAME : ");
name = keyboardIn.nextLine();
System.out.print("ACCOUNT ADDRESS : ");
address = keyboardIn.nextLine();
System.out.print("ACCOUNT BALANCE : ");
balance = keyboardIn.nextDouble();
System.out.print("ACCOUNT DATE OPENED : ");
dateOpened = keyboardIn.nextInt();
}
}
您不需要使用Name类型,您可以简单地将其声明为String并将其作为类变量访问。
如果你有一个派生类,说xyz谁需要访问超类的名称变量说Account。
你可以像Account.Name一样访问它,说你已经定义如下。
class Account
{
protected String Name;
}
class xyz extends Account
{
// here u can access using Account.Name;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.