Think in java 答案_Chapter 4_Exercise 18

來源:互聯網
上載者:User

閱前聲明: http://blog.csdn.net/heimaoxiaozi/archive/2007/01/19/1487884.aspx

/****************** Exercise 18 *****************
* Create a class with a String that is
* initialized using "instance initialization."
* Describe a use for this feature (other than
* the one specified in this book).
***********************************************/
public class E18_StringInstanceInitialization {
  String s;
  {
    s = "'instance initialization'";
  }
  public E18_StringInstanceInitialization() {
    System.out.println(
      "Default constructor; s = " + s);
  }
  public E18_StringInstanceInitialization(int i) {
    System.out.println(
      "int constructor; s = " + s);
  }
  public static void main(String args[]) {
    new E18_StringInstanceInitialization();
    new E18_StringInstanceInitialization(1);
  }
} //+M java E18_StringInstanceInitialization

**The book states that the reason for instance initialization is to provide basic constructor activites for anonymous inner classes (which you haven’t learned about yet), because these cannot have constructor methods (constructors require names, and an anonymous inner class is anonymous – it has no name).

**The reason that you might use instance initialization in an ordinary class is to perform common activities before any constructor is called, especially those that are too complex to perform during initialization at the point of definition (an expression involving a for loop, for example, or one that involves opening and reading a file). Note that in the above example there are two constructors, and when you run the program you’ll see that instance initialization occurs before either constructor runs.
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.