²é¿´: 692  |  »Ø¸´: 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

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

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

·¢×ÔСľ³æAndroid¿Í»§¶Ë
4Â¥2015-11-14 15:35:35
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢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µÄ»ØÌû

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µÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 328Çóµ÷¼Á£¬Ó¢ÓïÁù¼¶551£¬ÓпÆÑо­Àú +3 ÉúÎ﹤³Ìµ÷¼Á 2026-03-16 10/500 2026-03-18 20:41 by Wangjingyue
[¿¼ÑÐ] 085601ר˶£¬×Ü·Ö342Çóµ÷¼Á£¬µØÇø²»ÏÞ +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[¿¼ÑÐ] ²ÄÁÏר˶306Ó¢Ò»Êý¶þ +10 z1z2z3879 2026-03-16 13/650 2026-03-18 14:20 by 007_lilei
[¿¼ÑÐ] ²ÄÁÏר˶274Ò»Ö¾Ô¸ÉÂÎ÷ʦ·¶´óѧÇóµ÷¼Á +6 Ñ¦ÔÆÅô 2026-03-13 6/300 2026-03-18 14:14 by ÍÑÓ±¶ø³ö
[¿¼ÑÐ] 280Çóµ÷¼Á +6 ¹¾ààÏþÏþ 2026-03-18 7/350 2026-03-18 11:25 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 301Çóµ÷¼Á +9 yyÒªÉϰ¶Ñ½ 2026-03-17 9/450 2026-03-18 08:58 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 334Çóµ÷¼Á +3 Ö¾´æ¸ßÔ¶ÒâÔÚ»úÐ 2026-03-16 3/150 2026-03-18 08:34 by lm4875102
[»ù½ðÉêÇë] ±»ÎÒÑÔÖУºÐÂÄ£°å²»Ç¿µ÷¸ñʽÁË£¬¼Ùר¼Ò¿ªÊ¼¹Ü¸ñʽÁË +4 beefly 2026-03-14 4/200 2026-03-17 22:04 by »ÆÄñÓÚ·ÉChao
[¿¼ÑÐ] 268Çóµ÷¼Á +7 ºÃÔËÁ¬Ã಻¾ø 2026-03-12 8/400 2026-03-17 20:28 by xilongliang
[¿¼ÑÐ] 268Çóµ÷¼Á +8 Ò»¶¨ÓÐѧÉÏ- 2026-03-14 9/450 2026-03-17 17:47 by laoshidan
[¿¼ÑÐ] 285»¯¹¤Ñ§Ë¶Çóµ÷¼Á£¨081700£© +9 ²ñ¿¤Ã¨_ 2026-03-12 9/450 2026-03-17 10:18 by Sammy2
[¿¼ÑÐ] 304Çóµ÷¼Á +4 ahbd 2026-03-14 4/200 2026-03-16 16:48 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] 0856Çóµ÷¼Á +3 ÁõÃÎ΢ 2026-03-15 3/150 2026-03-16 10:00 by houyaoxu
[¿¼ÑÐ] 085601²ÄÁϹ¤³Ì315·ÖÇóµ÷¼Á +3 yang_0104 2026-03-15 3/150 2026-03-15 10:58 by peike
[¿¼ÑÐ] 266Çóµ÷¼Á +4 ѧԱ97LZgn 2026-03-13 4/200 2026-03-14 08:37 by zhukairuo
[¿¼ÑÐ] 304Çóµ÷¼Á +7 7712b 2026-03-13 7/350 2026-03-13 21:42 by peike
[¿¼ÑÐ] ²ÄÁÏר˶350 Çóµ÷¼Á +4 Íõ½ð¿Æ 2026-03-12 4/200 2026-03-13 16:02 by ruiyingmiao
[¿¼ÑÐ] ¹¤¿Æ²ÄÁÏ085601 279Çóµ÷¼Á +8 À§ÓÚÐdz¿ 2026-03-12 10/500 2026-03-13 15:42 by ms629
[¿¼ÑÐ] 274Çóµ÷¼Á +3 S.H1 2026-03-12 3/150 2026-03-13 15:15 by JourneyLucky
[¿¼ÑÐ] 321Çóµ÷¼Á£¨Ê³Æ·/ר˶£© +3 xc321 2026-03-12 6/300 2026-03-13 08:45 by xc321
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û