Znn3bq.jpeg
±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 714  |  »Ø¸´: 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

гæ (ÕýʽдÊÖ)

ÉúÃü¾ÍÊÇÒ»³¡ÂÃÐУ¬²»Òª´í¹ýÁË·±ßµÄ·ç¾°£¡
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µÄ»ØÌû

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µÄ»ØÌû

2012200838

гæ (ÕýʽдÊÖ)

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

ÆäÖÐloanDate ¿ÉÒԸı䡣

·¢×ÔСľ³æAndroid¿Í»§¶Ë
ÉúÃü¾ÍÊÇÒ»³¡ÂÃÐУ¬²»Òª´í¹ýÁË·±ßµÄ·ç¾°£¡
6Â¥2015-11-14 18:03:42
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ 2012200838 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸Éî´ó085601²ÄÁϹ¤³Ìרҵ£¨×¨Ë¶£©300·Ö¿ÉÒÔµ÷¼ÁÈ¥ÄÄ +16 10160315 2026-04-02 16/800 2026-04-08 19:45 by syjjj0321
[¿¼ÑÐ] ²ÄÁÏ¿¼ÑÐÇóµ÷¼Á×Ü·Ö280 +27 mkjlz1 2026-04-06 31/1550 2026-04-08 19:22 by ruoyu867
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£©×ö¹ý·Ö×ÓʵÑé +6 ÏàÐűػá¹ââÍòÕ 2026-04-07 7/350 2026-04-08 16:49 by tjzhao
[¿¼ÑÐ] 327Çóµ÷¼Á +12 Xxjc1107. 2026-04-06 12/600 2026-04-08 16:46 by luoyongfeng
[¿¼ÑÐ] ²ÄÁÏר˶(0856) 339·ÖÇóµ÷¼Á +16 ¹þ¹þ¹þ¶ì¹þ¹þ¹þ 2026-04-05 16/800 2026-04-08 16:02 by luoyongfeng
[¿¼ÑÐ] 0703»¯Ñ§ +27 ÄÝÄÝninicgb 2026-04-04 30/1500 2026-04-08 15:18 by audery861007
[¿¼ÑÐ] 301Çóµ÷¼Á +10 ϸ°ûÏà¹Øµ°°× 2026-04-03 10/500 2026-04-08 10:36 by tjzhao
[¿¼ÑÐ] ¼ÆËã»ú408£üÔÚУ¶à´Î¹ú¼Ò¼¶¾ºÈü»ñ½±£üÉêÇëµ÷¼Á +4 ¶«É½´ó°×¶ì 2026-04-05 4/200 2026-04-08 00:18 by chongya
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +13 ºº123456 2026-04-07 14/700 2026-04-07 22:53 by À´¿´Á÷ÐÇÓê10
[¿¼ÑÐ] 307Çóµ÷¼Á +3 Youth@@ 2026-04-07 3/150 2026-04-07 09:25 by СºÚ²»ÅÂÄÑ
[¿¼ÑÐ] Ò»Ö¾Ô¸»ªÖÐũҵ´óѧ0710£¨A£©³õÊÔ329·Ö Çóµ÷¼Á +5 Ò»Ãû26¿¼ÑÐÉú 2026-04-04 5/250 2026-04-07 08:54 by 18828373951
[¿¼ÑÐ] Ò»Ö¾Ô¸°²»Õij211 0703»¯Ñ§×Ü·Ö339Çóµ÷¼Á +7 Íí·ç²»Íí 2026-04-04 7/350 2026-04-06 14:06 by houyaoxu
[¿¼ÑÐ] Ò»Ö¾Ô¸ºÓ±±¹¤Òµ´óѧ²ÄÁϹ¤³Ì£¬³õÊÔ344Çóר˶µ÷¼Á +6 15933906766 2026-04-05 6/300 2026-04-06 13:21 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] »¯Ñ§357·Ö£¬¿¼Ñе÷¼Á +11 .Starry. 2026-04-04 12/600 2026-04-06 06:28 by houyaoxu
[¿¼ÑÐ] 301Çóµ÷¼Á +3 XYPLR 2026-04-05 4/200 2026-04-05 19:07 by XYPLR
[¿¼ÑÐ] 329Çóµ÷¼Á +17 miaodesi 2026-04-02 20/1000 2026-04-05 18:33 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉϺ£´óѧÉúÎïѧ346 +3 ÉϺ£´óѧ346µ÷¼Á 2026-04-03 3/150 2026-04-04 20:20 by dongzh2009
[¿¼ÑÐ] 368Çóµ÷¼Á +5 ½ñ»ªÏ° 2026-04-03 7/350 2026-04-04 18:47 by imissbao
[¿¼ÑÐ] 283Çóµ÷¼Á +3 jiouuu 2026-04-03 4/200 2026-04-03 13:28 by jiouuu
[¿¼ÑÐ] 298ÇóBÇøµ÷¼Á +4 zzz£¬£¬r 2026-04-02 5/250 2026-04-02 12:17 by ÍÁľ˶ʿÕÐÉú
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û