Znn3bq.jpeg
²é¿´: 721  |  »Ø¸´: 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µÄ»ØÌû

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µÄ»ØÌû
²é¿´È«²¿ 6 ¸ö»Ø´ð

2012200838

гæ (ÕýʽдÊÖ)

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

mfkkgriu

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

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

·¢×ÔСľ³æ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µÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ¿¼ÑжþÂÖµ÷¼Á +7 ¹ÊÈË?? 2026-04-09 7/350 2026-04-10 07:49 by 314126402
[¿¼ÑÐ] ²ÄÁϸ´ÊÔÇóµ÷¼Á +17 xhhdjdjsjks 2026-04-09 17/850 2026-04-10 05:20 by chenzhimin
[¿¼ÑÐ] µ÷¼Á +19 2261744733 2026-04-08 19/950 2026-04-09 19:11 by vgtyfty
[¿¼ÑÐ] 083200 ³õÊÔ305·Ö Çóµ÷¼Á Ôݲ»¿¼ÂÇ¿çרҵ +15 Claireyyyy 2026-04-09 15/750 2026-04-09 16:11 by zhuimr
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£© +13 ÏàÐűػá¹ââÍòÕ 2026-04-06 16/800 2026-04-09 13:54 by ÐìÁ¼°×ü´óÏÀ
[¿¼ÑÐ] 070300»¯Ñ§279Çóµ÷¼Á +17 ¹þ¹þ¹þ^_^ 2026-04-08 18/900 2026-04-09 10:49 by ÈýÆßÆßÏëÉϰ¶
[¿¼ÑÐ] 334Çóµ÷¼Á +16 Riot2025 2026-04-08 17/850 2026-04-09 09:28 by wdyheheeh
[¿¼ÑÐ] 308Çóµ÷¼Á +17 īīĮ 2026-04-06 17/850 2026-04-09 09:25 by Ò¼ÍùŸoǰ
[¿¼ÑÐ] Çóµ÷¼Á£¬ÏÖÔÚ»¹ÄÜÌîµÄ +3 Éϰ¶Ð¡Ó¨¼ÓÓÍ 2026-04-08 3/150 2026-04-08 14:30 by zhq0425
[¿¼ÑÐ] 312Çóµ÷¼Á +4 Say Never 2026-04-04 4/200 2026-04-08 08:41 by barlinike
[¿¼ÑÐ] 0854Çóµ÷¼Á +9 ºàÊÏ·¬ÇÑɳ˾ 2026-04-06 10/500 2026-04-07 14:37 by shdgaomin
[¿¼ÑÐ] 285Çóµ÷¼Á +15 ŶßϺôo 2026-04-04 17/850 2026-04-06 23:02 by chenzhimin
[¿¼ÑÐ] 324Çóµ÷¼Á +3 k¿ÉÀÖ 2026-04-05 4/200 2026-04-06 09:54 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 322Çóµ÷¼Á +3 àźߺߺã 2026-04-05 3/150 2026-04-05 19:52 by nepu_uu
[¿¼ÑÐ] 22408 ×Ü·Ö320£¬Ò»ÆªÂÛÎĶþ×÷£¬Á½¸ö¹úÈý£¬Çóµ÷¼Á +3 Leomulufu 2026-04-04 5/250 2026-04-05 19:04 by chongya
[¿¼ÑÐ] Çó +5 »¯¹¤×¨Ë¶323·Ö 2026-04-04 5/250 2026-04-05 08:02 by 544594351
[¿¼ÑÐ] ¿¼Ñе÷¼Á +11 СsunÒªºÃÔË 2026-04-04 11/550 2026-04-05 08:02 by qlm5820
[¿¼ÑÐ] 368Çóµ÷¼Á +5 ½ñ»ªÏ° 2026-04-03 7/350 2026-04-04 18:47 by imissbao
[¿¼ÑÐ] 268Çóµ÷¼Á +8 ÄãºÃtg 2026-04-03 9/450 2026-04-04 05:08 by gswylq
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖйúʯÓÍ´óѧ»¯Ñ§¹¤³Ì323·ÖÇóµ÷¼Á +4 »¯¹¤×¨Ë¶323·Ö 2026-04-03 6/300 2026-04-03 22:12 by dongzh2009
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û