Znn3bq.jpeg
²é¿´: 718  |  »Ø¸´: 5
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

2012200838

гæ (ÕýʽдÊÖ)

[ÇóÖú] È¥µôÀàÖеÄÉèÖ÷½·¨£¬ÀàÊÇ¿ÉÒÔ²»¿É¸Ä±äµÄÂð£¿

ÎÊÌ⣺Èç¹ûÖØÐ¶¨Òå³ÌÐòÇåµ¥µÄLoanÀ࣬ȥµôÆäÖеÄÉèÖ÷½·¨£¬Õâ¸öÀàÊDz»¿É¸Ä±äµÄÂð£¿
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µÄ»ØÌû

mfkkgriu

½ð³æ (СÓÐÃûÆø)

java°¡£¬Ó¦¸Ã²î²»¶àûÓÐsetÉèÖ÷½·¨ºÃÏñÊDz»Äܸıä°É¡£¼¼Êõ²»¾«Ëµ´íÎð¹Ö¡£

·¢×ÔСľ³æAndroid¿Í»§¶Ë
3Â¥2015-11-14 15:33:53
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 6 ¸ö»Ø´ð

2012200838

гæ (ÕýʽдÊÖ)

ÉúÃü¾ÍÊÇÒ»³¡ÂÃÐУ¬²»Òª´í¹ýÁË·±ßµÄ·ç¾°£¡
2Â¥2015-11-14 14:42:29
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

mfkkgriu

½ð³æ (СÓÐÃûÆø)

º¹£¬Íü¼ÇÁ˺¯Êý·µ»ØÖµ¿ÉÒԸı䡣>_<

·¢×ÔСľ³æAndroid¿Í»§¶Ë
4Â¥2015-11-14 15:35:35
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

2012200838

гæ (ÕýʽдÊÖ)

ÒýÓûØÌû:
3Â¥: Originally posted by mfkkgriu at 2015-11-14 15:33:53
java°¡£¬Ó¦¸Ã²î²»¶àûÓÐsetÉèÖ÷½·¨ºÃÏñÊDz»Äܸıä°É¡£¼¼Êõ²»¾«Ëµ´íÎð¹Ö¡£

ÆäʵÕâ¸ö´ð°¸Ìù´íÁË£¬²»¹ýÕâ¸ö´ð°¸Ò²Ö¸³öÎÊÌâËùÔÚ¡£

Èç¹ûAÀà˽ÓÐÊý¾ÝÓòdata Êý¾ÝÀàÐÍΪBÀàµÄ¶ÔÏóµÄÒýÓã¬ÄѵÀ¿ÉÒÔÔÚAÀàÍâͨ¹ýAÀàÖÐget·½·¨µ÷ÓÃdataÓÃBÀàÖÐset·½·¨¸Ä±ädata.

²»ÖªµÀÎÒ±í´ïÇå³þûÓС£

ÊéÉϹØÓÚÀ಻¿É¸Ä±äµÄÌõ¼þÊÇÕâÑù˵µÄ:
For a class to be immutable, it must meet the following requirements:
1.All data fields must be private.
2.There cant be any mutator methods for data fields.
3.No accessor methods can return a reference to a data field that is mutable.

You should take the 3rd requirement seriously.

·¢×ÔСľ³æAndroid¿Í»§¶Ë
ÉúÃü¾ÍÊÇÒ»³¡ÂÃÐУ¬²»Òª´í¹ýÁË·±ßµÄ·ç¾°£¡
5Â¥2015-11-14 18:01:42
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] »¯Ñ§308·ÖÇóµ÷¼Á +21 ÄãºÃÃ÷ÌìÄãºÃ 2026-04-07 23/1150 2026-04-08 22:32 by ¿­¿­Òª±ä˧
[¿¼ÑÐ] 070300»¯Ñ§279Çóµ÷¼Á +13 ¹þ¹þ¹þ^_^ 2026-04-08 13/650 2026-04-08 22:29 by belle15
[¿¼ÑÐ] Çóµ÷¼ÁÇóµ÷¼Á +13 121. 2026-04-02 13/650 2026-04-08 21:36 by zhouxiaoyu
[¿¼ÑÐ] 293·ÖÇóµ÷¼Á£¬ÍâÓïΪ¶íÓï +7 ¼ÓÒ»Ò»¾Å 2026-04-07 10/500 2026-04-08 20:14 by yutian743
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£©×ö¹ý·Ö×ÓʵÑé +6 ÏàÐűػá¹ââÍòÕ 2026-04-07 7/350 2026-04-08 16:49 by tjzhao
[¿¼ÑÐ] 274Çóµ÷¼ÁÇóµ÷¼Á +10 Jachenbingoo 2026-04-06 13/650 2026-04-08 14:25 by zhq0425
[¿¼ÑÐ] 281Çóµ÷¼Á +10 Ò¬×ÓÄ¢¹½ 2026-04-06 10/500 2026-04-08 11:43 by zzucheup
[¿¼ÑÐ] 274Çóµ÷¼Á +4 ɽ°¢Âû 2026-04-07 4/200 2026-04-08 09:49 by eyeliyang
[¿¼ÑÐ] 298Çóµ÷¼Á +4 ²ÐºÉÐÂÁø 2026-04-07 4/200 2026-04-07 23:02 by lbsjt
[¿¼ÑÐ] »úеµ÷¼Á +3 zzzbcb 2026-04-07 3/150 2026-04-07 22:19 by hemengdong
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +11 Ò»ÑùYWY 2026-04-07 11/550 2026-04-07 15:13 by shdgaomin
[¿¼ÑÐ] 0703µ÷¼Á +16 ʰ¾ÁÒ¼ 2026-04-04 18/900 2026-04-07 12:49 by flydream1314
[¿¼ÑÐ] 312Çóµ÷¼Á +4 LR6 2026-04-06 4/200 2026-04-07 08:42 by jp9609
[¿¼ÑÐ] ÉúÎïѧµ÷¼Á ¿Éµ÷¼Áµ½ÉúÎïÓëÒ½Ò© +3 ÀîÕþÓ¨ 2026-04-06 3/150 2026-04-06 19:02 by macy2011
[¿¼ÑÐ] Ò»Ö¾Ô¸211£¬»¯Ñ§Ñ§Ë¶£¬310·Ö£¬±¾¿ÆÖصãË«·Ç£¬Çóµ÷¼Á +13 ŬÁ¦·Ü¶·112 2026-04-04 13/650 2026-04-06 07:13 by jj987
[¿¼ÑÐ] 272·ÖÇóµ÷¼Á +4 wangyile2233 2026-04-02 4/200 2026-04-05 22:21 by 286640313
[¿¼ÑÐ] 22408 ×Ü·Ö320£¬Ò»ÆªÂÛÎĶþ×÷£¬Á½¸ö¹úÈý£¬Çóµ÷¼Á +3 Leomulufu 2026-04-04 5/250 2026-04-05 19:04 by chongya
[¿¼ÑÐ] 286Çóµ÷¼Á +3 ²Ýľ²»ÑÔ 2026-04-04 3/150 2026-04-04 22:40 by lbsjt
[¿¼ÑÐ] ¿¼Ñе÷¼Á +5 СsunÒªºÃÔË 2026-04-03 5/250 2026-04-03 21:43 by à£à£à£0119
[¿¼ÑÐ] ¿¼Ñе÷¼Á +3 Àîľ×Ó0120 2026-04-02 5/250 2026-04-02 21:45 by dongzh2009
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û