📄 tij_c.html
字号:
<html><body>
<table width="100%"><tr>
<td>
<a href="http://www.bruceeckel.com/javabook.html">Bruce Eckel's Thinking in Java</a>
</td>
<td align="right">
<a href="tij_c.html">Contents</a> | <a href="tij.html">Prev</a> | <a href="tij_t.html">Next</a>
</td>
</tr></table>
<hr>
<H1>Title Pages - Contents </H1>
<H2><A HREF="tij_t.html">Title Pages - Title Page </A></H2>
<UL>
<A HREF="tij0001.html"> </A><P>
<b><A HREF="tij0002.html">Foreword</A></b><P>
<br><b><A HREF="tij0003.html">Introduction</A></b><P>
<UL>
<A HREF="tij0004.html">Prerequisites</A><P>
<A HREF="tij0005.html">Learning Java</A><P>
<A HREF="tij0006.html">Goals</A><P>
<A HREF="tij0007.html">Online documentation</A><P>
<A HREF="tij0008.html">Chapters</A><P>
<A HREF="tij0009.html">Exercises</A><P>
<A HREF="tij0010.html">Multimedia CD ROM</A><P>
<A HREF="tij0011.html">Source code</A><P>
<UL>
<A HREF="tij0011.html#Heading12">Coding standards</A><P>
</UL>
<A HREF="tij0012.html">Java versions</A><P>
<A HREF="tij0013.html">Seminars and mentoring</A><P>
<A HREF="tij0014.html">Errors</A><P>
<A HREF="tij0015.html">Note on the cover design</A><P>
<A HREF="tij0016.html">Acknowledgements</A><P>
</UL>
<br><b><A HREF="tij0017.html">1: Introduction to objects</A></b><P>
<UL>
<A HREF="tij0018.html">The progress of abstraction</A><P>
<A HREF="tij0019.html">An object has an interface</A><P>
<A HREF="tij0020.html">The hidden implementation</A><P>
<A HREF="tij0021.html">Reusing the implementation</A><P>
<A HREF="tij0022.html">Inheritance: reusing the interface</A><P>
<UL>
<A HREF="tij0022.html#Heading24">Overriding base-class functionality</A><P>
<A HREF="tij0022.html#Heading25">Is-a vs. is-like-a relationships</A><P>
</UL>
<A HREF="tij0023.html">Interchangeable objects with polymorphism</A><P>
<UL>
<A HREF="tij0023.html#Heading27">Dynamic binding</A><P>
<A HREF="tij0023.html#Heading28">Abstract base classes and interfaces</A><P>
</UL>
<A HREF="tij0024.html">Object landscapes and lifetimes</A><P>
<UL>
<A HREF="tij0024.html#Heading30">Collections and iterators</A><P>
<A HREF="tij0024.html#Heading31">The singly-rooted hierarchy</A><P>
<A HREF="tij0024.html#Heading32">Collection libraries and support for easy collection use</A><P>
<UL>
<A HREF="tij0024.html#Heading33">Downcasting vs. templates/generics</A><P>
</UL>
<A HREF="tij0024.html#Heading34">The housekeeping dilemma: who should clean up?</A><P>
<UL>
<A HREF="tij0024.html#Heading35">Garbage collectors vs. efficiency and flexibility</A><P>
</UL>
</UL>
<A HREF="tij0025.html">Exception handling: dealing with errors</A><P>
<A HREF="tij0026.html">Multithreading</A><P>
<A HREF="tij0027.html">Persistence</A><P>
<A HREF="tij0028.html">Java and the Internet</A><P>
<UL>
<A HREF="tij0028.html#Heading40">What is the Web?</A><P>
<UL>
<A HREF="tij0028.html#Heading41">Client/Server computing</A><P>
<A HREF="tij0028.html#Heading42">The Web as a giant server</A><P>
</UL>
<A HREF="tij0028.html#Heading43">Client-side programming</A><P>
<UL>
<A HREF="tij0028.html#Heading44">Plug-ins</A><P>
<A HREF="tij0028.html#Heading45">Scripting languages</A><P>
<A HREF="tij0028.html#Heading46">Java</A><P>
<A HREF="tij0028.html#Heading47">ActiveX</A><P>
<A HREF="tij0028.html#Heading48">Security</A><P>
<A HREF="tij0028.html#Heading49">Internet vs. Intranet</A><P>
</UL>
<A HREF="tij0028.html#Heading50">Server-side programming</A><P>
<A HREF="tij0028.html#Heading51">A separate arena: applications</A><P>
</UL>
<A HREF="tij0029.html">Analysis and Design</A><P>
<UL>
<A HREF="tij0029.html#Heading53">Staying on course</A><P>
<A HREF="tij0029.html#Heading54">Phase 0: Let’s make a plan</A><P>
<A HREF="tij0029.html#Heading55">Phase 1: What are we making?</A><P>
<A HREF="tij0029.html#Heading56">Phase 2: How will we build it?</A><P>
<A HREF="tij0029.html#Heading57">Phase 3: Let’s build it!</A><P>
<A HREF="tij0029.html#Heading58">Phase 4: Iteration</A><P>
<A HREF="tij0029.html#Heading59">Plans pay off</A><P>
</UL>
<A HREF="tij0030.html">Java vs. C++?</A><P>
</UL>
<br><b><A HREF="tij0031.html">2: Everything is an object</A></b><P>
<UL>
<A HREF="tij0032.html">You manipulate objects with handles </A><P>
<A HREF="tij0033.html">You must create all the objects</A><P>
<UL>
<A HREF="tij0033.html#Heading64">Where storage lives</A><P>
<A HREF="tij0033.html#Heading65">Special case: primitive types</A><P>
<UL>
<A HREF="tij0033.html#Heading66">High-precision numbers</A><P>
</UL>
<A HREF="tij0033.html#Heading67">Arrays in Java</A><P>
</UL>
<A HREF="tij0034.html">You never need to destroy an object</A><P>
<UL>
<A HREF="tij0034.html#Heading69">Scoping</A><P>
<A HREF="tij0034.html#Heading70">Scope of objects</A><P>
</UL>
<A HREF="tij0035.html">Creating new data types: class</A><P>
<UL>
<A HREF="tij0035.html#Heading72">Fields and methods</A><P>
<UL>
<A HREF="tij0035.html#Heading73">Default values for primitive members</A><P>
</UL>
</UL>
<A HREF="tij0036.html">Methods, arguments and return values</A><P>
<UL>
<A HREF="tij0036.html#Heading75">The argument list</A><P>
</UL>
<A HREF="tij0037.html">Building a Java program</A><P>
<UL>
<A HREF="tij0037.html#Heading77">Name visibility</A><P>
<A HREF="tij0037.html#Heading78">Using other components</A><P>
<A HREF="tij0037.html#Heading79">The static keyword</A><P>
</UL>
<A HREF="tij0038.html">Your first Java program</A><P>
<A HREF="tij0039.html">Comments and embedded documentation</A><P>
<UL>
<A HREF="tij0039.html#Heading82">Comment documentation</A><P>
<A HREF="tij0039.html#Heading83">Syntax</A><P>
<A HREF="tij0039.html#Heading84">Embedded HTML</A><P>
<A HREF="tij0039.html#Heading85">@see: referring to other classes</A><P>
<A HREF="tij0039.html#Heading86">Class documentation tags</A><P>
<UL>
<A HREF="tij0039.html#Heading87">@version</A><P>
<A HREF="tij0039.html#Heading88">@author</A><P>
</UL>
<A HREF="tij0039.html#Heading89">Variable documentation tags</A><P>
<A HREF="tij0039.html#Heading90">Method documentation tags</A><P>
<UL>
<A HREF="tij0039.html#Heading91">@param</A><P>
<A HREF="tij0039.html#Heading92">@return</A><P>
<A HREF="tij0039.html#Heading93">@exception</A><P>
<A HREF="tij0039.html#Heading94">@deprecated</A><P>
</UL>
<A HREF="tij0039.html#Heading95">Documentation example</A><P>
</UL>
<A HREF="tij0040.html">Coding style</A><P>
<A HREF="tij0041.html">Summary</A><P>
<A HREF="tij0042.html">Exercises</A><P>
</UL>
<br><b><A HREF="tij0043.html">3: Controlling program flow</A></b><P>
<UL>
<A HREF="tij0044.html">Using Java operators</A><P>
<UL>
<A HREF="tij0044.html#Heading101">Precedence</A><P>
<A HREF="tij0044.html#Heading102">Assignment</A><P>
<UL>
<A HREF="tij0044.html#Heading103">Aliasing during method calls</A><P>
</UL>
<A HREF="tij0044.html#Heading104">Mathematical operators</A><P>
<UL>
<A HREF="tij0044.html#Heading105">Unary minus and plus operators</A><P>
</UL>
<A HREF="tij0044.html#Heading106">Auto increment and decrement</A><P>
<A HREF="tij0044.html#Heading107">Relational operators</A><P>
<UL>
<A HREF="tij0044.html#Heading108">Testing object equivalence</A><P>
</UL>
<A HREF="tij0044.html#Heading109">Logical operators</A><P>
<UL>
<A HREF="tij0044.html#Heading110">Short-circuiting</A><P>
</UL>
<A HREF="tij0044.html#Heading111">Bitwise operators</A><P>
<A HREF="tij0044.html#Heading112">Shift operators</A><P>
<A HREF="tij0044.html#Heading113">Ternary if-else operator</A><P>
<A HREF="tij0044.html#Heading114">The comma operator</A><P>
<A HREF="tij0044.html#Heading115">String operator +</A><P>
<A HREF="tij0044.html#Heading116">Common pitfalls when using operators</A><P>
<A HREF="tij0044.html#Heading117">Casting operators</A><P>
<UL>
<A HREF="tij0044.html#Heading118">Literals</A><P>
<A HREF="tij0044.html#Heading119">Promotion</A><P>
</UL>
<A HREF="tij0044.html#Heading120">Java has no “sizeof” </A><P>
<A HREF="tij0044.html#Heading121">Precedence revisited</A><P>
<A HREF="tij0044.html#Heading122">A compendium of operators</A><P>
</UL>
<A HREF="tij0045.html">Execution control</A><P>
<UL>
<A HREF="tij0045.html#Heading124">true and false</A><P>
<A HREF="tij0045.html#Heading125">if-else</A><P>
<UL>
<A HREF="tij0045.html#Heading126">return</A><P>
</UL>
<A HREF="tij0045.html#Heading127">Iteration </A><P>
<A HREF="tij0045.html#Heading128">do-while</A><P>
<A HREF="tij0045.html#Heading129">for</A><P>
<UL>
<A HREF="tij0045.html#Heading130">The comma operator</A><P>
</UL>
<A HREF="tij0045.html#Heading131">break and continue</A><P>
<UL>
<A HREF="tij0045.html#Heading132">The infamous “goto”</A><P>
</UL>
<A HREF="tij0045.html#Heading133">switch</A><P>
<UL>
<A HREF="tij0045.html#Heading134">Calculation details</A><P>
</UL>
</UL>
<A HREF="tij0046.html">Summary</A><P>
<A HREF="tij0047.html">Exercises</A><P>
</UL>
<br><b><A HREF="tij0048.html">4: Initialization and cleanup</A></b><P>
<UL>
<A HREF="tij0049.html">Guaranteed initialization with the constructor</A><P>
<A HREF="tij0050.html">Method overloading</A><P>
<UL>
<A HREF="tij0050.html#Heading140">Distinguishing overloaded methods</A><P>
<A HREF="tij0050.html#Heading141">Overloading with primitives</A><P>
<A HREF="tij0050.html#Heading142">Overloading on return values</A><P>
<A HREF="tij0050.html#Heading143">Default constructors</A><P>
<A HREF="tij0050.html#Heading144">The this keyword</A><P>
<UL>
<A HREF="tij0050.html#Heading145">Calling constructors from constructors</A><P>
<A HREF="tij0050.html#Heading146">The meaning of static</A><P>
</UL>
</UL>
<A HREF="tij0051.html">Cleanup: finalization and garbage collection</A><P>
<UL>
<A HREF="tij0051.html#Heading148">What is finalize( ) for?</A><P>
<A HREF="tij0051.html#Heading149">You must perform cleanup</A><P>
</UL>
<A HREF="tij0052.html">Member initialization</A><P>
<UL>
<A HREF="tij0052.html#Heading151">Specifying initialization</A><P>
<A HREF="tij0052.html#Heading152">Constructor initialization</A><P>
<UL>
<A HREF="tij0052.html#Heading153">Order of initialization</A><P>
<A HREF="tij0052.html#Heading154">Static data initialization</A><P>
<A HREF="tij0052.html#Heading155">Explicit static initialization</A><P>
<A HREF="tij0052.html#Heading156">Non-static instance initialization</A><P>
</UL>
</UL>
<A HREF="tij0053.html">Array initialization</A><P>
<UL>
<A HREF="tij0053.html#Heading158">Multidimensional arrays</A><P>
</UL>
<A HREF="tij0054.html">Summary</A><P>
<A HREF="tij0055.html">Exercises</A><P>
</UL>
<br><b><A HREF="tij0056.html">5: Hiding the implementation</A></b><P>
<UL>
<A HREF="tij0057.html">package: the library unit</A><P>
<UL>
<A HREF="tij0057.html#Heading163">Creating unique package names</A><P>
<UL>
<A HREF="tij0057.html#Heading164">Automatic compilation</A><P>
<A HREF="tij0057.html#Heading165">Collisions</A><P>
</UL>
<A HREF="tij0057.html#Heading166">A custom tool library</A><P>
<UL>
<A HREF="tij0057.html#Heading167">Classpath pitfall</A><P>
</UL>
<A HREF="tij0057.html#Heading168">Using imports to change behavior</A><P>
<A HREF="tij0057.html#Heading169">Package caveat</A><P>
</UL>
<A HREF="tij0058.html">Java access specifiers</A><P>
<UL>
<A HREF="tij0058.html#Heading171">“Friendly”</A><P>
<A HREF="tij0058.html#Heading172">public: interface access</A><P>
<UL>
<A HREF="tij0058.html#Heading173">The default package</A><P>
</UL>
<A HREF="tij0058.html#Heading174">private: you can’t touch that!</A><P>
<A HREF="tij0058.html#Heading175">protected: “sort of friendly”</A><P>
</UL>
<A HREF="tij0059.html">Interface and implementation</A><P>
<A HREF="tij0060.html">Class access</A><P>
<A HREF="tij0061.html">Summary</A><P>
<A HREF="tij0062.html">Exercises</A><P>
</UL>
<br><b><A HREF="tij0063.html">6: Reusing classes</A></b><P>
<UL>
<A HREF="tij0064.html">Composition syntax</A><P>
<A HREF="tij0065.html">Inheritance syntax</A><P>
<UL>
<A HREF="tij0065.html#Heading183">Initializing the base class</A><P>
<UL>
<A HREF="tij0065.html#Heading184">Constructors with arguments</A><P>
<A HREF="tij0065.html#Heading185">Catching base constructor exceptions</A><P>
</UL>
</UL>
<A HREF="tij0066.html">Combining composition and inheritance</A><P>
<UL>
<A HREF="tij0066.html#Heading187">Guaranteeing proper cleanup</A><P>
<UL>
<A HREF="tij0066.html#Heading188">Order of garbage collection</A><P>
</UL>
<A HREF="tij0066.html#Heading189">Name hiding</A><P>
</UL>
<A HREF="tij0067.html">Choosing composition vs. inheritance</A><P>
<A HREF="tij0068.html">protected</A><P>
<A HREF="tij0069.html">Incremental development</A><P>
<A HREF="tij0070.html">Upcasting</A><P>
<UL>
<A HREF="tij0070.html#Heading194">Why “upcasting”?</A><P>
<UL>
<A HREF="tij0070.html#Heading195">Composition vs. inheritance revisited</A><P>
</UL>
</UL>
<A HREF="tij0071.html">The final keyword</A><P>
<UL>
<A HREF="tij0071.html#Heading197">Final data</A><P>
<UL>
<A HREF="tij0071.html#Heading198">Blank finals</A><P>
<A HREF="tij0071.html#Heading199">Final arguments</A><P>
</UL>
<A HREF="tij0071.html#Heading200">Final methods</A><P>
<A HREF="tij0071.html#Heading201">Final classes</A><P>
<A HREF="tij0071.html#Heading202">Final caution</A><P>
</UL>
<A HREF="tij0072.html">Initialization and class loading</A><P>
<UL>
<A HREF="tij0072.html#Heading204">Initialization with inheritance</A><P>
</UL>
<A HREF="tij0073.html">Summary</A><P>
<A HREF="tij0074.html">Exercises</A><P>
</UL>
<br><b><A HREF="tij0075.html">7: Polymorphism</A></b><P>
<UL>
<A HREF="tij0076.html">Upcasting</A><P>
<UL>
<A HREF="tij0076.html#Heading209">Why upcast?</A><P>
</UL>
<A HREF="tij0077.html">The twist</A><P>
<UL>
<A HREF="tij0077.html#Heading211">Method call binding</A><P>
<A HREF="tij0077.html#Heading212">Producing the right behavior</A><P>
<A HREF="tij0077.html#Heading213">Extensibility</A><P>
</UL>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -