±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 706  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 292Çóµ÷¼Á +11 ÊÇåû×ÓÒ²ÊÇÑÐ×Ó 2026-03-30 11/550 2026-03-30 15:36 by ѧԱ8dgXkO
[¿¼ÑÐ] 300Çóµ÷¼Á£¬²ÄÁÏ¿ÆÑ§Ó¢Ò»Êý¶þ +17 leaflight 2026-03-24 17/850 2026-03-30 15:20 by gzy091
[¿¼ÑÐ] 0703±¾¿ÆÖ£ÖÝ´óѧÇóµ÷¼Á +7 nhj_ 2026-03-25 7/350 2026-03-30 12:44 by fangnagu
[¿¼ÑÐ] 0703»¯Ñ§/290Çóµ÷¼Á/±¾¿Æ¾­Àú·á¸»/¹¤¿ÆÒ²¿É +13 µ¤ÇàÄÌ¸Ç 2026-03-26 15/750 2026-03-30 12:35 by fangnagu
[˶²©¼ÒÔ°] Çóµ÷¼Á Óлú»¯Ñ§¿¼ÑÐ356·Ö +10 Nadiums 2026-03-25 11/550 2026-03-30 11:56 by yjolah
[¿¼ÑÐ] »·¾³¿ÆÑ§Ó빤³Ì334·ÖÇóµ÷¼Á +6 ÍõÒ»Ò»ÒÀÒÀ 2026-03-30 8/400 2026-03-30 11:52 by yjolah
[¿¼ÑÐ] 334·Ö Ò»Ö¾Ô¸ÎäÀí ²ÄÁÏÇóµ÷¼Á +12 ÀîÀî²»·þÊä 2026-03-26 12/600 2026-03-30 10:33 by ÎÒÊÇС¿µ
[¿¼ÑÐ] 356Çóµ÷¼Á +4 gysy?s?a 2026-03-28 4/200 2026-03-29 10:32 by ÌÆãå¶ù
[¿¼ÑÐ] 279Çóµ÷¼Á +4 µûÎèÇáÈÆ 2026-03-29 4/200 2026-03-29 09:45 by laoshidan
[¿¼ÑÐ] ²ÄÁÏѧ˶333Çóµ÷¼Á +11 ±±µÀÏï 2026-03-24 11/550 2026-03-29 08:31 by fmesaito
[¿¼ÑÐ] 295²ÄÁϹ¤³Ìר˶Çóµ÷¼Á +7 1428151015 2026-03-27 7/350 2026-03-28 19:58 by S240
[¿¼ÑÐ] 299Çóµ÷¼Á +7 àÅàÅàÅàÅ2 2026-03-27 7/350 2026-03-28 13:09 by ÌÆãå¶ù
[¿¼ÑÐ] Ò»Ö¾Ô¸ÄϾ©º½¿Õº½Ìì´óѧ²ÄÁÏѧ˶Çóµ÷¼Á +3 @taotao 2026-03-28 3/150 2026-03-28 10:26 by JourneyLucky
[¿¼ÑÐ] ²ÄÁÏ292µ÷¼Á +12 éÙËÌ˼ÃÀÈË 2026-03-23 12/600 2026-03-27 15:44 by caszguilin
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤µ÷¼Á +10 A-¶ßÀ²ZÃÎ 2026-03-23 16/800 2026-03-27 15:13 by caszguilin
[¿¼ÑÐ] 305Çóµ÷¼Á +5 ÍÛ¬¿¨¿â 2026-03-26 5/250 2026-03-27 14:01 by laoshidan
[¿¼ÑÐ] Ò»Ö¾Ô¸Ö£´ó085600£¬310·ÖÇóµ÷¼Á +5 Àîäì¿É 2026-03-26 5/250 2026-03-27 11:14 by ²»³Ôô~µÄ؈
[¿¼ÑÐ] 085601Çóµ÷¼Á×Ü·Ö293Ó¢Ò»Êý¶þ +4 ¸ÖÌú´óÅÚ 2026-03-24 4/200 2026-03-26 16:28 by dick_runner
[¿¼ÑÐ] 318Çóµ÷¼Á +3 plumÀî×Ó 2026-03-23 3/150 2026-03-25 09:42 by ÎíÉ¢ºóÏàÓölc
[¿¼ÑÐ] 292Çóµ÷¼Á +4 ¶ì¶ì¶ì¶î¶î¶î¶î¶ 2026-03-24 4/200 2026-03-24 16:41 by peike
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û