所以我有一个java编程II类的作业,要求我创建一个名为Account的类来执行以下操作:
设计一个名为Account的类,其中包含:
数据成员:
类型为int的私有数据字段,该帐户名为id;
类型为double的私有数据字段,名为帐户余额;
double类型的私有数据字段,名为annualInterestRate 存储当前利率(假设所有账户都相同) 利率);
Date类型的私有数据字段,名为dateCreated,用于存储 帐户创建日期;
方法用于创建默认帐户和集合的无参数构造函数 以下数据成员为0(零):id,balance和 annualInterestRate;
创建具有指定id和的帐户的构造函数 初始余额;
id,balance和的accessor和mutator方法 annualInterestRate;
dateCreated的访问器方法
一个名为getMonthlyInterestRate()的方法,它返回每月一次 利率;
一个名为getMonthlyInterest()的方法,它返回每月一次 息;
一个名为withdraw的方法,从中提取指定的金额 帐户;
一种名为deposit的方法,它将指定的金额存入 帐户。
编写一个测试程序,创建一个带有帐户ID的Account对象 1122年,余额20,000美元,年利率4.5%。 使用withdraw方法提取2,500美元,使用存款方式 存入3,000美元,并打印余额,每月利息和 创建此帐户的日期。
测试者应用程序已由教授提供给我们,我将在下面链接。所需要的只是创建我所拥有的Account类。一切都正确编译,但是当我运行测试器应用程序时,我得到的输出非常奇怪:
----jGRASP exec: java AccountTest
Current account values:
Account@208e2fb5
Current account values:
Account@208e2fb5
Current account values:
Account@208e2fb5
我现在不知所措,我不知道该做什么或从哪里去。
Tester App:
public class AccountTest
{
public static void main(String [] args)
{
Account a = new Account(1122, 20000.00);
a.setAnnualInterestRate(4.5);
System.out.println("\nCurrent account values: \n" + a);
a.withdraw(2500.00);
System.out.println("\nCurrent account values: \n" + a);
a.deposit(3000.00);
System.out.println("\nCurrent account values: \n" + a);
}
}
我创建的帐户类:
import java.util.Date;
public class Account
{
private int id;
private double balance;
private double annualInterestRate;
private Date date = new Date();
Account()
{
id = 0;
balance = 0.0;
annualInterestRate = 0.0;
}
Account(int newId, double bal)
{
id = newId;
balance = bal;
}
public void setId(int newId)
{
id = newId;
}
public void setBalance( double bal)
{
balance = bal;
}
public void setAnnualInterestRate(double annualRate)
{
annualInterestRate = annualRate;
}
public int getId()
{
return id;
}
public double getBalance()
{
return balance;
}
public double getAnnualInterestRate()
{
return annualInterestRate;
}
/*public void setDate(Date n)
{
dateCreated = n;
}*/
public java.util.Date getDate()
{
return date;
}
double getMonthlyInterestRate()
{
return annualInterestRate/12;
}
double withdraw(double amount)
{
return balance -= amount;
}
double deposit(double amount)
{
return balance += amount;
}
}
为我的格式提前道歉。
答案 0 :(得分:0)
您正在打印对象的字符串表示。您不能期望java自己知道您要打印的内容。
我建议您在对象帐户中覆盖toString方法,以打印当前对象字段的详细信息/值。
您可以检查如何覆盖toString方法here
如果您只想打印一个值,请发芽 例如
System.out.println("\nCurrent account interest rate :" + a.getAnnualInterestRate());
更新您的评论.-:
@Override
public String toString() {
return String.format("Here is detail of my object name : %s value : %d",stringValue,doubleValue);
}