亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? chap04.htm

?? Thinking in Java, 2nd edition
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<!--
This document was converted from RTF source: 
By rtftohtml 4.19
See http://www.sunpack.com/RTF
Filename:TIJ2.rtf
Application Directory:C:\TOOLS\RTF2HTML\
Subject:
Author:Bruce Eckel
Operator:Bruce Eckel
Document Comments:
Version Comments:
Comments:
Keywords:
Translation Date:05/21/2001
Translation Time:10:39:07
Translation Platform:Win32
Number of Output files:23
This File:Chap04.htm
SplitDepth=1
SkipNavPanel=1
SkipLeadingToc=1
SkipTrailingToc=1
GenContents=1
GenFrames=1
GenIndex=1
-->
<HEAD lang="en"><META http-equiv="Content-Type" content="text/html">
<TITLE>4: Initialization  &amp; Cleanup</TITLE>
</HEAD>

<BODY  BGCOLOR="#FFFFFF"><DIV ALIGN="CENTER">
  <a href="http://www.MindView.net">
  <img src="mindview.gif" alt="MindView Inc." BORDER = "0"></a>
  <CENTER>
    <FONT FACE="Verdana" size = "-1">
    [ <a href="README.txt">Viewing Hints</a> ]
    [ <a href="RevHist.htm">Revision History</a> ]
    [ <a href="http://www.mindview.net/Books/TIJ/">Book Home Page</a> ]
    [ <a href="http://www.mindview.net/Etc/MailingList.html">Free Newsletter</a> ] <br>
    [ <a href="http://www.mindview.net/Seminars">Seminars</a> ]
    [ <a href="http://www.mindview.net/CDs">Seminars on CD ROM</a> ]
    [ <a href="http://www.mindview.net/Services">Consulting</a> ]
    </FONT>
  <H2><FONT FACE="Verdana">
  Thinking in Java, 2nd edition, Revision 12</FONT></H2>
  <H3><FONT FACE="Verdana">&copy;2000 by Bruce Eckel</FONT></H3>
  
    <FONT FACE="Verdana" size = "-1">
     [ <a href="Chap03.htm">Previous Chapter</a> ] 
    [ <a href="SimpCont.htm">Short TOC</a> ] 
    [ <a href="Contents.htm">Table of Contents</a> ] 
    [ <a href="DocIdx.htm">Index</a> ]
     [ <a href="Chap05.htm">Next Chapter</a> ] 
    </FONT>
    
  </CENTER>
  </P></DIV><A NAME="Chapter_4"></A><A NAME="_Toc375545274"></A><A NAME="_Toc477690724"></A><A NAME="_Toc481064568"></A><A NAME="Heading163"></A><FONT FACE = "Verdana"><H1 ALIGN="LEFT">
4: Initialization <BR>&amp; Cleanup</H1></FONT>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia" SIZE=4><backtalk:display ID=TIJ3_CHAPTER4_I0>
As the
computer revolution progresses, &#8220;unsafe&#8221; programming has become one
of the major culprits that makes programming expensive.</FONT><BR></P></DIV>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">Two of these safety issues are
<I>initialization</I> and <I>cleanup</I>. Many C bugs occur when the programmer
forgets to initialize a variable. This is especially true with libraries when
users don&#8217;t know how to initialize a library component, or even that they
must. Cleanup is a special problem because it&#8217;s easy to forget about an
element when you&#8217;re done with it, since it no longer concerns you. Thus,
the resources used by that element are retained and you can easily end up
running out of resources (most notably, memory). 

</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I0' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I1>
</FONT><BR></P></DIV>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">C++ introduced the concept of a
<I>constructor</I>, a special method automatically called when an object is
created. Java also adopted the constructor, and in addition has a garbage
collector that automatically releases memory resources when they&#8217;re no
longer being used. This chapter examines the issues of initialization and
cleanup, and their support in Java.

</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I1' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I2>
</FONT><A NAME="_Toc312373853"></A><A NAME="_Toc375545275"></A><A NAME="_Toc481064569"></A><BR></P></DIV>
<A NAME="Heading164"></A><FONT FACE = "Verdana"><H2 ALIGN="LEFT">
Guaranteed initialization <BR>with the constructor</H2></FONT>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">You can imagine creating a method called
<B>initialize(&#160;)</B> for every class you write. The name is a hint that it
should be called before using the object. Unfortunately, this means the user
must remember to call the method. In Java, the class designer can guarantee
initialization of every object by providing a special method called a
<I>constructor<A NAME="Index380"></A><A NAME="Index381"></A></I>. If a class has
a constructor, Java automatically calls that constructor when an object is
created, before users can even get their hands on it. So initialization is
guaranteed. 
</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I2' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I3>
</FONT><BR></P></DIV>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">The next challenge is what to name this
method. There are two issues. The first is that any name you use could clash
with a name you might like to use as a member in the class. The second is that
because the compiler is responsible for calling the constructor, it must always
know which method to call. The C++ solution seems the easiest and most logical,
so it&#8217;s also used in Java: the name of the constructor
<A NAME="Index382"></A>is the same as the name of the class. It makes sense that
such a method will be called automatically on initialization.

</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I3' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I4>
</FONT><BR></P></DIV>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">Here&#8217;s a simple class with a
constructor:</FONT><BR></P></DIV>

<BLOCKQUOTE><FONT SIZE = "+1"><PRE><font color=#009900>//: c04:SimpleConstructor.java</font>
<font color=#009900>// Demonstration of a simple constructor.</font>

<font color=#0000ff>class</font> Rock {
  Rock() { <font color=#009900>// This is the constructor</font>
    System.out.println(<font color=#004488>"Creating Rock"</font>);
  }
}

<font color=#0000ff>public</font> <font color=#0000ff>class</font> SimpleConstructor {
  <font color=#0000ff>public</font> <font color=#0000ff>static</font> <font color=#0000ff>void</font> main(String[] args) {
    <font color=#0000ff>for</font>(<font color=#0000ff>int</font> i = 0; i &lt; 10; i++)
      <font color=#0000ff>new</font> Rock();
  }
} <font color=#009900>///:~</font></PRE></FONT></BLOCKQUOTE>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">Now, when an
<A NAME="Index383"></A>object is created:

</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I4' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I5>
</FONT><BR></P></DIV>

<BLOCKQUOTE><FONT SIZE = "+1"><PRE><font color=#0000ff>new</font> Rock();</PRE></FONT></BLOCKQUOTE>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">storage is allocated and the constructor
is called. It is guaranteed that the object will be properly initialized before
you can get your hands on it.

</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I5' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I6>
</FONT><BR></P></DIV>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">Note that the coding style of making the
first letter of all methods lowercase does not apply to constructors, since the
name of the constructor must match the name of the class <I>exactly</I>.

</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I6' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I7>
</FONT><BR></P></DIV>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">Like any method, the constructor can have
arguments<A NAME="Index384"></A><A NAME="Index385"></A> to allow you to specify
<I>how</I> an object is created. The above example can easily be changed so the
constructor takes an argument:</FONT><BR></P></DIV>

<BLOCKQUOTE><FONT SIZE = "+1"><PRE><font color=#009900>//: c04:SimpleConstructor2.java</font>
<font color=#009900>// Constructors can have arguments.</font>

<font color=#0000ff>class</font> Rock2 {
  Rock2(<font color=#0000ff>int</font> i) {
    System.out.println(
      <font color=#004488>"Creating Rock number "</font> + i);
  }
}

<font color=#0000ff>public</font> <font color=#0000ff>class</font> SimpleConstructor2 {
  <font color=#0000ff>public</font> <font color=#0000ff>static</font> <font color=#0000ff>void</font> main(String[] args) {
    <font color=#0000ff>for</font>(<font color=#0000ff>int</font> i = 0; i &lt; 10; i++)
      <font color=#0000ff>new</font> Rock2(i);
  }
} <font color=#009900>///:~</font></PRE></FONT></BLOCKQUOTE>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">Constructor arguments provide you with a
way to provide parameters for the initialization of an object. For example, if
the class <B>Tree</B> has a constructor that takes a single integer argument
denoting the height of the tree, you would create a <B>Tree</B> object like
this: 
</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I7' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I8>
</FONT><BR></P></DIV>

<BLOCKQUOTE><FONT SIZE = "+1"><PRE>Tree t = <font color=#0000ff>new</font> Tree(12);  <font color=#009900>// 12-foot tree</font></PRE></FONT></BLOCKQUOTE>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">If <B>Tree(int)</B> is your only
constructor, then the compiler won&#8217;t let you create a <B>Tree</B> object
any other way.  
</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I8' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I9>
</FONT><BR></P></DIV>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">Constructors eliminate a large class of
problems and make the code easier to read. In the preceding code fragment, for
example, you don&#8217;t see an explicit call to some <B>initialize(&#160;)</B>
method that is conceptually separate from definition. In Java, definition and
initialization are unified concepts&#8212;you can&#8217;t have one without the
other. 
</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I9' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I10>
</FONT><BR></P></DIV>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">The constructor is an unusual type of
method because it has no return
value<A NAME="Index386"></A><A NAME="Index387"></A>. This is distinctly
different from a <B>void</B> return value, in which the method returns nothing
but you still have the option to make it return something else. Constructors
return nothing and you don&#8217;t have an option. If there was a return value,
and if you could select your own, the compiler would somehow need to know what
to do with that return value.

</backtalk:display>
[&nbsp;<a href='http://www.mindview.net/backtalk/CommentServlet?ID=TIJ3_CHAPTER4_I10' 
  target="_blank">Add&nbsp;Comment</a>&nbsp;]

<backtalk:display ID=TIJ3_CHAPTER4_I11>
</FONT><A NAME="_Toc375545276"></A><A NAME="_Toc481064570"></A><BR></P></DIV>
<A NAME="Heading165"></A><FONT FACE = "Verdana"><H2 ALIGN="LEFT">
Method overloading<BR><A NAME="Index388"></A><A NAME="Index389"></A></H2></FONT>
<DIV ALIGN="LEFT"><P><FONT FACE="Georgia">One of the important features in any
programming language is the use of names. When you create an object, you give a

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久精品一区二区三| 亚洲一区二区三区国产| 精品亚洲porn| 久久久亚洲精华液精华液精华液| 日本sm残虐另类| 91精品麻豆日日躁夜夜躁| 青娱乐精品视频在线| 精品久久国产老人久久综合| 国产精品一区专区| 国产精品久久久久久久久搜平片| 99re热视频精品| 亚洲国产婷婷综合在线精品| 欧美日韩国产乱码电影| 另类小说一区二区三区| 国产日韩欧美在线一区| 波多野结衣在线一区| 亚洲综合精品久久| 日韩欧美国产成人一区二区| 国产毛片一区二区| 一区在线观看免费| 欧美日韩国产123区| 国产在线日韩欧美| 亚洲人成影院在线观看| 欧美一区二区三区小说| 成人永久aaa| 三级精品在线观看| 欧美国产精品v| 欧美男女性生活在线直播观看| 狠狠色丁香久久婷婷综| 亚洲女厕所小便bbb| 精品国产免费久久| 色一情一伦一子一伦一区| 青青草精品视频| 综合久久久久久| 日韩精品一区二区三区在线观看| 91麻豆国产在线观看| 欧美aⅴ一区二区三区视频| 日韩理论在线观看| 久久一日本道色综合| 欧美中文字幕一区二区三区亚洲| 国产福利91精品一区| 日韩精品乱码免费| 亚洲色图欧洲色图| 久久一区二区三区四区| 制服.丝袜.亚洲.中文.综合| 99v久久综合狠狠综合久久| 蜜臀va亚洲va欧美va天堂| 亚洲视频资源在线| 亚洲国产成人私人影院tom| 91麻豆精品国产91| 在线观看亚洲专区| 99久久久久免费精品国产 | 亚洲欧洲精品成人久久奇米网| 欧美精品在线一区二区| 91啪九色porn原创视频在线观看| 国内精品国产三级国产a久久| 亚洲午夜久久久久中文字幕久| 欧美国产乱子伦 | 欧美亚洲图片小说| 高清shemale亚洲人妖| 日本伊人色综合网| 无吗不卡中文字幕| 亚洲一二三区在线观看| 亚洲欧美在线另类| 国产视频911| 久久久影院官网| 日韩欧美国产电影| 欧美电影免费观看高清完整版在线| 欧美日韩一区二区在线视频| 色激情天天射综合网| 91色婷婷久久久久合中文| www.亚洲精品| 91麻豆免费看| 欧美在线观看视频一区二区| 色婷婷精品久久二区二区蜜臂av| 91丨九色porny丨蝌蚪| 懂色av一区二区在线播放| 国产高清久久久久| 国产91清纯白嫩初高中在线观看 | 色哟哟一区二区三区| 成人蜜臀av电影| 波多野结衣中文字幕一区二区三区| 丰满亚洲少妇av| 99国产精品一区| 欧美性猛交xxxx乱大交退制版| 欧美亚洲一区三区| 欧美高清一级片在线| 91.麻豆视频| 欧美大尺度电影在线| 久久久亚洲精品石原莉奈| 久久精品亚洲精品国产欧美| 中文字幕精品—区二区四季| 亚洲三级小视频| 午夜精品久久久久久久蜜桃app| 丝袜美腿亚洲色图| 精品制服美女丁香| 粉嫩av一区二区三区粉嫩| 91在线视频播放地址| 欧美在线综合视频| 日韩一区二区在线看| 久久综合久久99| 综合久久久久综合| 天天综合天天综合色| 国产真实乱子伦精品视频| 成人美女视频在线观看| 欧美日韩免费电影| 精品国产一区二区三区久久久蜜月 | 91免费在线视频观看| 在线影院国内精品| 欧美xxxxx裸体时装秀| 中文av一区特黄| 亚洲成人三级小说| 国产精品原创巨作av| 色综合网站在线| 欧美一区二区在线免费播放| 国产欧美一区二区精品忘忧草| 亚洲女子a中天字幕| 老色鬼精品视频在线观看播放| 99精品一区二区三区| 日韩三级免费观看| 亚洲男人的天堂av| 狠狠色综合日日| 精品视频一区二区三区免费| 久久久综合精品| 天天综合日日夜夜精品| 国产成人av在线影院| 欧美丰满少妇xxxxx高潮对白| 久久精品亚洲乱码伦伦中文| 三级精品在线观看| 97se亚洲国产综合自在线 | 成人丝袜视频网| 欧美一区二区三区在线| 最新不卡av在线| 久久国产欧美日韩精品| 欧美伊人精品成人久久综合97| 国产欧美在线观看一区| 日本中文字幕一区二区视频| 色综合久久66| 国产精品天美传媒| 久久激情五月婷婷| 欧美揉bbbbb揉bbbbb| 国产精品精品国产色婷婷| 久久99精品久久久久久国产越南| 在线视频国内一区二区| 国产欧美一二三区| 久久草av在线| 正在播放一区二区| 亚洲一二三区在线观看| 色综合天天在线| 欧美国产激情一区二区三区蜜月| 精品在线亚洲视频| 日韩欧美一区二区视频| 午夜精品国产更新| 欧美色网一区二区| 亚洲成人在线网站| 欧美喷水一区二区| 亚洲成人免费视频| 欧美日韩视频一区二区| 亚洲一区视频在线| 日本乱人伦aⅴ精品| 亚洲欧美电影院| 色婷婷久久久久swag精品| 亚洲男同性视频| 在线一区二区视频| 亚洲影视资源网| 色婷婷亚洲综合| 亚洲国产成人高清精品| 欧美日韩国产影片| 日韩精品亚洲专区| 日韩一级完整毛片| 激情综合网天天干| 久久九九影视网| 成人97人人超碰人人99| 亚洲欧洲一区二区在线播放| www.成人在线| 一区二区三区蜜桃| 在线成人午夜影院| 黑人巨大精品欧美一区| 国产偷国产偷精品高清尤物| 岛国一区二区三区| 亚洲男人的天堂av| 欧美日本视频在线| 青青草91视频| 欧美激情自拍偷拍| 成人99免费视频| 亚洲一区av在线| 日韩精品一区国产麻豆| 国产精品99久久久| 亚洲少妇屁股交4| 欧美综合久久久| 久99久精品视频免费观看| 久久精品网站免费观看| 99国产精品久久久久| 午夜av一区二区三区| 精品国精品自拍自在线| 成人av一区二区三区| 亚洲成人一区二区在线观看| 日韩免费福利电影在线观看| 成人黄色在线看| 亚洲永久免费av|