当前位置: 首页 > 知识库问答 >
问题:

Java帐户应用程序的奇数输出

曹浩
2023-03-14

所以我有一个Java编程II类的作业,要求我创建一个名为Account的类,它要执行以下操作:

设计一个名为Account的类,该类包含:

数据成员:

帐户的一个名为id的类型为int的私有数据文件;

帐户的double named balance类型的专用数据字段;

double类型、名为annualInterestRate的私有数据字段,存储当前利率(假设所有帐户的利率相同);

名为dateCreated的Date类型的专用数据字段,用于存储创建帐户的日期;

方法创建默认帐户并将下列数据成员设置为0(零)的无参数构造函数:id、balance和AnnualInterestRate;

创建具有指定id和初始余额的帐户的构造函数;

id、balance和AnnualInterestRate的访问器和赋值器方法;

dateCreated的访问器方法

一个名为getMonthlyInterestRate()的方法,它返回月利率;

一个名为getMonthlyInterest()的方法,它返回每月利息;

一种名为“提取”的方法,从帐户中提取指定的金额;

一种名为存款的方法,将指定的金额存入帐户。

编写一个测试程序,创建一个帐户ID为1122、余额为20,000美元、年利率为4.5%的帐户对象。使用提取方法提取2,500美元,使用存款方法存款3,000美元,并打印余额、月息和创建此帐户的日期。

测试器应用程序已经给了我们的教授,我将在下面链接。所需要的只是创建Account类,我已经创建了它。所有的编译都是正确的,但是当我运行tester应用程序时,我得到的输出非常奇怪:

----jGRASP exec: java AccountTest


Current account values: 
Account@208e2fb5

Current account values: 
Account@208e2fb5

Current account values: 
Account@208e2fb5

我现在不知所措,我不知道该做什么,也不知道从这里到哪里去。

测试程序:

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;
   }    
}

为我的格式提前道歉。

共有1个答案

汝楷
2023-03-14

您正在打印对象的字符串表示,您不能期望Java自己知道您想要打印的内容。

我建议您在打印当前对象字段的详细信息/值的对象帐户中重写toString方法。

您可以在这里检查如何重写toString方法

如果只想打印一个值(例如

  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);
    }
 类似资料:
  • 嗨,这是我正在做的课程上的一个问题。。。 > 程序打印“键入数字”,直到用户键入数字-1。当用户键入数字1时,程序打印“谢谢,稍后再见!”!“并结束 程序应该打印用户输入的数字的总和(不带数字-1) 程序应该打印用户键入的数字(没有数字-1) 程序应该打印用户键入的数字的平均值(没有数字-1)。 5.程序应该打印用户键入的偶数和奇数的数量(没有数字-1)。 我已经完成了1-4,但完全停留在5。我确

  • 这个问题是由打字错误或无法再复制的问题引起的。虽然这里可能有类似的问题,但这个问题的解决方式不太可能对未来的读者有所帮助。 我已经一遍又一遍地写这个程序了,有人能告诉我我遗漏了什么吗,看起来这是个小错误,我没有抓住。 以下是我正在努力实现的目标: 设计一个名为Account的类,该类包含: 帐户名为id的私有int数据字段(默认值为0) 帐户名为balance的专用双精度数据字段(默认值为0) 名

  • 我正在使用outlook Mail REST API(https://docs.microsoft.com/en-us/previous-versions/office/office-365-api/API/version-2.0/mail-rest-operations)编写一个守护程序应用程序来管理我的个人microsoft outlook帐户。为此,我必须生成适当的授权令牌,以便与API调用

  • 我在Google Play Alpha上发布了我的应用程序。我通过在“选择测试方法”下选择“Closed Alpha testing”,通过电子邮件地址列表添加测试人员。所以说清楚一点,这不是这个问题的重复,因为我没有使用Google Groups。 目前,这是大约2个小时以来,我发布的应用程序到阿尔法轨道,没有任何改变。 如何在封闭的阿尔法轨道上测试app?

  • 产出: 因此上传的文件自动具有两个权限:1。服务帐户是“所有者”2。我的主要帐户是“作家” 的确,我可以在web界面上看到文件,编辑文件,删除文件等,但是,由于服务帐户是所有者,文件是在服务帐户存储配额中计算的,所以这并不能解决我的问题,即我的备份应用程序仍然不能使用超过15GB的文件。 顺便说一句,在谷歌帮助转移文件所有权中,他们说“如果你是谷歌应用程序的用户,你不能将所有权转移给你域外的其他人

  • 问题内容: 每次开设银行帐户,帐户ID都应加1,但是每次我尝试拉出ID时,我只会得到帐户ID为0,这是任何建议,因为我完全按照从书中学习的方式进行学习而且仍然没有更新。 帐户构造函数: 银行账户主程序: 问题答案: 您可以采用一种杂乱的方式构造BankAccount对象,其中是否分配ID取决于您使用的构造函数。如果您重写构造函数以便将它们链接在一起,而主要构造函数负责所有核心职责,而次要构造函数将