关于Java赋值和实例常量

时间:2015-04-07 01:15:30

标签: java

我不希望代码回答这个问题,我想自己解决这个问题。我对这项任务的措辞有疑问,并希望澄清一下。赋值要求创建一个名为ACCOUNT_NUMBER的实例常量,该常量将在类SavingsAccount构造函数中创建。我的问题是,如果假设SavingsAccountDriver类用于输入有关帐户的数据(帐号10002和10003),如何更改已设置为final的变量并需要不同的数字?或者我看错了吗?

  

编写一个程序,建立两个储蓄帐户,其中saver1的帐号为10002,初始余额为$ 2,000,saver2的帐户为10003,初始余额为$ 3,000。将共同利率设定为每年5%。在每个月末,通过向余额添加一个月的利息来更新余额,以便每月平衡化合物。打印输出,显示两个帐户中每个帐户的月份编号和帐号以及余额。使用月份0显示初始余额,使用月份1显示第一个月兴趣后的余额,依此类推。在年底,显示两个帐户的总余额,如下所示:

     

输出:

     

一年的每月余额,年利率为0.05:

Month Account #   Balance Account #   Balance
----- ---------   ------- ---------   -------
    0     10002   2000.00     10003   3000.00
    1     10002   2008.33     10003   3012.50
    2     10002   2016.70     10003   3025.05
    3     10002   2025.10     10003   3037.66
    4     10002   2033.54     10003   3050.31
    5     10002   2042.02     10003   3063.02
    6     10002   2050.52     10003   3075.79
    7     10002   2059.07     10003   3088.60
    8     10002   2067.65     10003   3101.47
    9     10002   2076.26     10003   3114.39
   10     10002   2084.91     10003   3127.37
   11     10002   2093.60     10003   3140.40
   12     10002   2102.32     10003   3153.49

Final balance of both accounts combined: 5255.81
     

使用两个类,一个SavingsAccount类和一个SavingsAccountDriver类。

     

在SavingsAccount类中,声明一个名为annualInterestRate的类变量,一个名为ACCOUNT_NUMBER的实例常量,以及一个名为balance的实例变量。提供一个双参数构造函数来初始化实例常量和实例变量,并为实例常量和实例变量提供访问器。通过向当前余额添加(balance * annualInterestRate / 12)来提供addMonthlyInterest方法来更新余额。还提供了一种设定年利率的分类方法。

     

在SavingsAccountDriver类中,实例化saver1和saver2对象。将年利率设定为0.05。打印表标题行。使用for循环打印初始帐号和余额以及在该月的兴趣添加后每个月的帐号和余额。在上个月的打印输出之后,计算并显示两个余额的总和。

     

确保添加适当的程序文档,其中包括

     
      
  • 项目名称
  •   
  • 您小组中的程序员姓名
  •   
  • 日期
  •   
  • 描述
  •   

2 个答案:

答案 0 :(得分:0)

成员字段声明为final,但在调用构造函数之前不会初始化。 final关键字表示在设置后无法更改,在实例字段的情况下,只能通过静态初始化或构造函数设置。

答案 1 :(得分:0)

它是一个必须为final的实例字段,可以在构造函数中设置。例如,

class Example {
  final String str;
  public Example(String str) {
    this.str = str; // <-- allowed. the constructor assigns a value. 
  }
}