24小时热门版块排行榜    

查看: 916  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

2012200838

新虫 (正式写手)

[求助] 去掉类中的设置方法,类是可以不可改变的吗?

问题:如果重新定义程序清单的Loan类,去掉其中的设置方法,这个类是不可改变的吗?
If you redefine the Loan class without setter methods, is the class immutable?
这是原书的标准答案:
No. It must also contain no get methods that would return a reference to a mutable data field object.

不是很理解,get方法不是仅仅是访问吗,而且数据域是私有的,怎么是可以改变的的呢?

代码:
CODE:
public class Loan {
  private double annualInterestRate;
  private int numberOfYears;
  private double loanAmount;
  private java.util.Date loanDate;

  /** Default constructor */
  public Loan() {
    this(2.5, 1, 1000);
  }

  /** Construct a loan with specified annual interest rate,
      number of years and loan amount
    */
  public Loan(double annualInterestRate, int numberOfYears,
      double loanAmount) {
    this.annualInterestRate = annualInterestRate;
    this.numberOfYears = numberOfYears;
    this.loanAmount = loanAmount;
    loanDate = new java.util.Date();
  }

  /** Return annualInterestRate */
  public double getAnnualInterestRate() {
    return annualInterestRate;
  }

  /** Set a new annualInterestRate */
  public void setAnnualInterestRate(double annualInterestRate) {
    this.annualInterestRate = annualInterestRate;
  }

  /** Return numberOfYears */
  public int getNumberOfYears() {
    return numberOfYears;
  }

  /** Set a new numberOfYears */
  public void setNumberOfYears(int numberOfYears) {
    this.numberOfYears = numberOfYears;
  }

  /** Return loanAmount */
  public double getLoanAmount() {
    return loanAmount;
  }

  /** Set a newloanAmount */
  public void setLoanAmount(double loanAmount) {
    this.loanAmount = loanAmount;
  }

  /** Find monthly payment */
  public double getMonthlyPayment() {
    double monthlyInterestRate = annualInterestRate / 1200;
    double monthlyPayment = loanAmount * monthlyInterestRate / (1 -
      (Math.pow(1 / (1 + monthlyInterestRate), numberOfYears * 12)));
    return monthlyPayment;   
  }

  /** Find total payment */
  public double getTotalPayment() {
    double totalPayment = getMonthlyPayment() * numberOfYears * 12;
    return totalPayment;   
  }

  /** Return loan date */
  public java.util.Date getLoanDate() {
    return loanDate;
  }
}

回复此楼
生命就是一场旅行,不要错过了路边的风景!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

2012200838

新虫 (正式写手)

引用回帖:
3楼: Originally posted by mfkkgriu at 2015-11-14 15:33:53
java啊,应该差不多没有set设置方法好像是不能改变吧。技术不精说错勿怪。

其中loanDate 可以改变。

发自小木虫Android客户端
生命就是一场旅行,不要错过了路边的风景!
6楼2015-11-14 18:03:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

2012200838

新虫 (正式写手)

生命就是一场旅行,不要错过了路边的风景!
2楼2015-11-14 14:42:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mfkkgriu

金虫 (小有名气)

java啊,应该差不多没有set设置方法好像是不能改变吧。技术不精说错勿怪。

发自小木虫Android客户端
3楼2015-11-14 15:33:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mfkkgriu

金虫 (小有名气)

汗,忘记了函数返回值可以改变。>_<

发自小木虫Android客户端
4楼2015-11-14 15:35:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 zSbvVX9JFl9J 2026-11-09 3/150 2026-11-10 01:40 by FChKX8meu1ds
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 zSbvVX9JFl9J 2026-11-09 4/200 2026-11-10 01:29 by FChKX8meu1ds
[考博] 27博士申请 +3 白白白ly 2026-11-09 3/150 2026-11-09 21:39 by szq0819
[文学芳草园] 厉娜 +3 张丹枫1991 2026-11-09 5/250 2026-11-09 16:53 by 张丹枫1991
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 kvewwGtKktqB 2026-11-04 12/600 2026-11-09 13:26 by Equinoxhua
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +5 5sJFDKp2kwuI 2026-11-06 16/800 2026-11-09 11:47 by GwrQVVR6Oenx
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 5sJFDKp2kwuI 2026-11-06 15/750 2026-11-09 11:41 by GwrQVVR6Oenx
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 5sJFDKp2kwuI 2026-11-06 10/500 2026-11-09 08:00 by IhnEQauGmT3K
[考研] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 5sJFDKp2kwuI 2026-11-06 12/600 2026-11-09 06:32 by l48hFd8Nwae2
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 5sJFDKp2kwuI 2026-11-06 8/400 2026-11-08 23:01 by l48hFd8Nwae2
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 5sJFDKp2kwuI 2026-11-06 9/450 2026-11-08 22:46 by l48hFd8Nwae2
[教师之家] 延安大学回应“副教授留绝笔信”:确已离世,正核实举报内容 +3 yexuqing 2026-11-04 5/250 2026-11-07 13:22 by 苏东坡二世
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +5 ttH3f1oA6ace 2026-11-04 10/500 2026-11-06 16:12 by 5sJFDKp2kwuI
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +6 ttH3f1oA6ace 2026-11-04 12/600 2026-11-06 16:10 by 5sJFDKp2kwuI
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 kvewwGtKktqB 2026-11-04 14/700 2026-11-06 05:10 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +6 kvewwGtKktqB 2026-11-04 16/800 2026-11-06 05:00 by qL1cU46YIdK0
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ttH3f1oA6ace 2026-11-04 7/350 2026-11-06 02:13 by qL1cU46YIdK0
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 ttH3f1oA6ace 2026-11-04 10/500 2026-11-06 02:04 by qL1cU46YIdK0
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ttH3f1oA6ace 2026-11-04 9/450 2026-11-06 02:02 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 hNpp4Y2CGvSC 2026-11-04 12/600 2026-11-06 01:53 by qL1cU46YIdK0
信息提示
请填处理意见