📄 tij3fc.htm
字号:
<ul>
<li><a href="TIJ306.htm#Heading4016">Specifying initialization</a></li>
<li><a href="TIJ306.htm#Heading4057">Constructor initialization</a></li>
<ul>
<li><a href="TIJ306.htm#Heading4066">Order of initialization</a></li>
<li><a href="TIJ306.htm#Heading4112">Static data initialization</a></li>
<li><a href="TIJ306.htm#Heading4198">Explicit static initialization</a></li>
<li><a href="TIJ306.htm#Heading4250">Non-static instance initialization</a></li>
</ul>
</ul>
<li><a href="TIJ306.htm#Heading4298">Array initialization</a></li>
<ul>
<li><a href="TIJ306.htm#Heading4458">Multidimensional arrays</a></li>
</ul>
<li><a href="TIJ306.htm#Heading4591">Summary</a></li>
<li><a href="TIJ306.htm#Heading4595">Exercises</a></li>
</ul>
<li><a href="TIJ307.htm">5: Hiding the Implementation</a></li>
<ul>
<li><a href="TIJ307.htm#Heading4625">package: the library unit</a></li>
<ul>
<li><a href="TIJ307.htm#Heading4658">Creating unique package names</a></li>
<ul>
<li><a href="TIJ307.htm#Heading4719">Collisions</a></li>
</ul>
<li><a href="TIJ307.htm#Heading4732">A custom tool library</a></li>
<li><a href="TIJ307.htm#Heading4772">Using imports to change behavior</a></li>
<li><a href="TIJ307.htm#Heading4775">Package caveat</a></li>
</ul>
<li><a href="TIJ307.htm#Heading4777">Java access specifiers</a></li>
<ul>
<li><a href="TIJ307.htm#Heading4780">Package access</a></li>
<li><a href="TIJ307.htm#Heading4788">public: interface access</a></li>
<ul>
<li><a href="TIJ307.htm#Heading4823">The default package</a></li>
</ul>
<li><a href="TIJ307.htm#Heading4849">private: you can’t touch that!</a></li>
<li><a href="TIJ307.htm#Heading4874">protected: inheritance access</a></li>
</ul>
<li><a href="TIJ307.htm#Heading4913">Interface and implementation</a></li>
<li><a href="TIJ307.htm#Heading4934">Class access</a></li>
<li><a href="TIJ307.htm#Heading4996">Summary</a></li>
<li><a href="TIJ307.htm#Heading5006">Exercises</a></li>
</ul>
<li><a href="TIJ308.htm">6: Reusing Classes</a></li>
<ul>
<li><a href="TIJ308.htm#Heading5045">Composition syntax</a></li>
<li><a href="TIJ308.htm#Heading5161">Inheritance syntax</a></li>
<ul>
<li><a href="TIJ308.htm#Heading5220">Initializing the base class</a></li>
<ul>
<li><a href="TIJ308.htm#Heading5255">Constructors with arguments</a></li>
<li><a href="TIJ308.htm#Heading5291">Catching base constructor exceptions</a></li>
</ul>
</ul>
<li><a href="TIJ308.htm#Heading5293">Combining composition and inheritance</a></li>
<ul>
<li><a href="TIJ308.htm#Heading5378">Guaranteeing proper cleanup</a></li>
<li><a href="TIJ308.htm#Heading5504">Name hiding</a></li>
</ul>
<li><a href="TIJ308.htm#Heading5548">Choosing composition vs. inheritance</a></li>
<li><a href="TIJ308.htm#Heading5595">protected</a></li>
<li><a href="TIJ308.htm#Heading5639">Incremental development</a></li>
<li><a href="TIJ308.htm#Heading5644">Upcasting</a></li>
<ul>
<li><a href="TIJ308.htm#Heading5669">Why “upcasting”?</a></li>
<ul>
<li><a href="TIJ308.htm#Heading5674">Composition vs. inheritance revisited</a></li>
</ul>
</ul>
<li><a href="TIJ308.htm#Heading5676">The final keyword</a></li>
<ul>
<li><a href="TIJ308.htm#Heading5679">Final data</a></li>
<ul>
<li><a href="TIJ308.htm#Heading5745">Blank finals</a></li>
<li><a href="TIJ308.htm#Heading5775">Final arguments</a></li>
</ul>
<li><a href="TIJ308.htm#Heading5803">Final methods</a></li>
<ul>
<li><a href="TIJ308.htm#Heading5807">final and private</a></li>
</ul>
<li><a href="TIJ308.htm#Heading5867">Final classes</a></li>
<li><a href="TIJ308.htm#Heading5894">Final caution</a></li>
</ul>
<li><a href="TIJ308.htm#Heading5899">Initialization and class loading</a></li>
<ul>
<li><a href="TIJ308.htm#Heading5903">Initialization with inheritance</a></li>
</ul>
<li><a href="TIJ308.htm#Heading5951">Summary</a></li>
<li><a href="TIJ308.htm#Heading5955">Exercises</a></li>
</ul>
<li><a href="TIJ309.htm">7: Polymorphism</a></li>
<ul>
<li><a href="TIJ309.htm#Heading5987">Upcasting revisited</a></li>
<ul>
<li><a href="TIJ309.htm#Heading6063">Forgetting the object type</a></li>
</ul>
<li><a href="TIJ309.htm#Heading6111">The twist</a></li>
<ul>
<li><a href="TIJ309.htm#Heading6119">Method-call binding</a></li>
<li><a href="TIJ309.htm#Heading6125">Producing the right behavior</a></li>
<li><a href="TIJ309.htm#Heading6212">Extensibility</a></li>
<li><a href="TIJ309.htm#Heading6306">Pitfall: “overriding” private methods</a></li>
</ul>
<li><a href="TIJ309.htm#Heading6334">Abstract classes and methods</a></li>
<li><a href="TIJ309.htm#Heading6439">Constructors and polymorphism</a></li>
<ul>
<li><a href="TIJ309.htm#Heading6441">Order of constructor calls</a></li>
<li><a href="TIJ309.htm#Heading6501">Inheritance and cleanup</a></li>
<li><a href="TIJ309.htm#Heading6623">Behavior of polymorphic methods inside constructors</a></li>
</ul>
<li><a href="TIJ309.htm#Heading6677">Designing with inheritance</a></li>
<ul>
<li><a href="TIJ309.htm#Heading6723">Pure inheritance vs. extension</a></li>
<li><a href="TIJ309.htm#Heading6735">Downcasting and run-time type identification</a></li>
</ul>
<li><a href="TIJ309.htm#Heading6775">Summary</a></li>
<li><a href="TIJ309.htm#Heading6779">Exercises</a></li>
</ul>
<li><a href="TIJ310.htm">8: Interfaces & Inner Classes</a></li>
<ul>
<li><a href="TIJ310.htm#Heading6802">Interfaces</a></li>
<ul>
<li><a href="TIJ310.htm#Heading6899">“Multiple inheritance” in Java</a></li>
<ul>
<li><a href="TIJ310.htm#Heading6946">Name collisions when combining interfaces</a></li>
</ul>
<li><a href="TIJ310.htm#Heading6976">Extending an interface with inheritance</a></li>
<li><a href="TIJ310.htm#Heading7029">Grouping constants</a></li>
<li><a href="TIJ310.htm#Heading7100">Initializing fields in interfaces</a></li>
<li><a href="TIJ310.htm#Heading7136">Nesting interfaces</a></li>
</ul>
<li><a href="TIJ310.htm#Heading7235">Inner classes</a></li>
<ul>
<li><a href="TIJ310.htm#Heading7306">Inner classes and upcasting</a></li>
<li><a href="TIJ310.htm#Heading7358">Inner classes in methods and scopes</a></li>
<li><a href="TIJ310.htm#Heading7428">Anonymous inner classes</a></li>
<li><a href="TIJ310.htm#Heading7573">The link to the outer class</a></li>
<li><a href="TIJ310.htm#Heading7630">Nested classes</a></li>
<li><a href="TIJ310.htm#Heading7701">Referring to the outer class object</a></li>
<li><a href="TIJ310.htm#Heading7730">Reaching outward from a multiply-nested class</a></li>
<li><a href="TIJ310.htm#Heading7760">Inheriting from inner classes</a></li>
<li><a href="TIJ310.htm#Heading7784">Can inner classes be overridden?</a></li>
<li><a href="TIJ310.htm#Heading7855">Local inner classes</a></li>
<li><a href="TIJ310.htm#Heading7924">Inner class identifiers</a></li>
</ul>
<li><a href="TIJ310.htm#Heading7934">Why inner classes?</a></li>
<ul>
<li><a href="TIJ310.htm#Heading8000">Closures & Callbacks</a></li>
<li><a href="TIJ310.htm#Heading8077">Inner classes & control frameworks</a></li>
</ul>
<li><a href="TIJ310.htm#Heading8280">Summary</a></li>
<li><a href="TIJ310.htm#Heading8283">Exercises</a></li>
</ul>
<li><a href="TIJ311.htm">9: Error Handling with Exceptions</a></li>
<ul>
<li><a href="TIJ311.htm#Heading8327">Basic exceptions</a></li>
<ul>
<li><a href="TIJ311.htm#Heading8336">Exception arguments</a></li>
</ul>
<li><a href="TIJ311.htm#Heading8344">Catching an exception</a></li>
<ul>
<li><a href="TIJ311.htm#Heading8347">The try block</a></li>
<li><a href="TIJ311.htm#Heading8354">Exception handlers</a></li>
<ul>
<li><a href="TIJ311.htm#Heading8371">Termination vs. resumption</a></li>
</ul>
</ul>
<li><a href="TIJ311.htm#Heading8375">Creating your own exceptions</a></li>
<li><a href="TIJ311.htm#Heading8521">The exception specification</a></li>
<li><a href="TIJ311.htm#Heading8533">Catching any exception</a></li>
<ul>
<li><a href="TIJ311.htm#Heading8578">Rethrowing an exception</a></li>
<li><a href="TIJ311.htm#Heading8705">Exception chaining</a></li>
</ul>
<li><a href="TIJ311.htm#Heading8840">Standard Java exceptions</a></li>
<ul>
<li><a href="TIJ311.htm#Heading8844">The special case of RuntimeException</a></li>
</ul>
<li><a href="TIJ311.htm#Heading8884">Performing cleanup with finally</a></li>
<ul>
<li><a href="TIJ311.htm#Heading8935">What’s finally for?</a></li>
<li><a href="TIJ311.htm#Heading9033">Pitfall: the lost exception</a></li>
</ul>
<li><a href="TIJ311.htm#Heading9075">Exception restrictions</a></li>
<li><a href="TIJ311.htm#Heading9163">Constructors</a></li>
<li><a href="TIJ311.htm#Heading9240">Exception matching</a></li>
<li><a href="TIJ311.htm#Heading9284">Alternative approaches</a></li>
<ul>
<li><a href="TIJ311.htm#Heading9295">History</a></li>
<li><a href="TIJ311.htm#Heading9307">Perspectives</a></li>
<li><a href="TIJ311.htm#Heading9332">Passing exceptions to the console</a></li>
<li><a href="TIJ311.htm#Heading9350">Converting checked to unchecked exceptions</a></li>
</ul>
<li><a href="TIJ311.htm#Heading9423">Exception guidelines</a></li>
<li><a href="TIJ311.htm#Heading9434">Summary</a></li>
<li><a href="TIJ311.htm#Heading9437">Exercises</a></li>
</ul>
<li><a href="TIJ312.htm">10: Detecting Types</a></li>
<ul>
<li><a href="TIJ312.htm#Heading9465">The need for RTTI</a></li>
<ul>
<li><a href="TIJ312.htm#Heading9516">The Class object</a></li>
<ul>
<li><a href="TIJ312.htm#Heading9575">Class literals</a></li>
</ul>
<li><a href="TIJ312.htm#Heading9601">Checking before a cast</a></li>
<ul>
<li><a href="TIJ312.htm#Heading9795">Using class literals</a></li>
<li><a href="TIJ312.htm#Heading9871">A dynamic instanceof</a></li>
<li><a href="TIJ312.htm#Heading9936">instanceof vs. Class equivalence</a></li>
</ul>
</ul>
<li><a href="TIJ312.htm#Heading9996">RTTI syntax</a></li>
<li><a href="TIJ312.htm#Heading10064">Reflection: run time class information</a></li>
<ul>
<li><a href="TIJ312.htm#Heading10071">A class method extractor</a></li>
</ul>
<li><a href="TIJ312.htm#Heading10149">Summary</a></li>
<li><a href="TIJ312.htm#Heading10154">Exercises</a></li>
</ul>
<li><a href="TIJ313.htm">11: Collections of Objects</a></li>
<ul>
<li><a href="TIJ313.htm#Heading10180">Arrays</a></li>
<ul>
<li><a href="TIJ313.htm#Heading10187">Arrays are first-class objects</a></li>
<ul>
<li><a href="TIJ313.htm#Heading10284">Containers of primitives</a></li>
</ul>
<li><a href="TIJ313.htm#Heading10288">Returning an array</a></li>
<li><a href="TIJ313.htm#Heading10338">The Arrays class</a></li>
<li><a href="TIJ313.htm#Heading10648">Filling an array</a></li>
<li><a href="TIJ313.htm#Heading10709">Copying an array</a></li>
<li><a href="TIJ313.htm#Heading10759">Comparing arrays</a></li>
<li><a href="TIJ313.htm#Heading10789">Array element comparisons</a></li>
<li><a href="TIJ313.htm#Heading10883">Sorting an array</a></li>
<li><a href="TIJ313.htm#Heading10936">Searching a sorted array</a></li>
<li><a href="TIJ313.htm#Heading10994">Array summary</a></li>
</ul>
<li><a href="TIJ313.htm#Heading10997">Introduction to containers</a></li>
<ul>
<li><a href="TIJ313.htm#Heading11005">Printing containers</a></li>
<li><a href="TIJ313.htm#Heading11042">Filling containers</a></li>
</ul>
<li><a href="TIJ313.htm#Heading11323">Container disadvantage: unknown type</a></li>
<ul>
<li><a href="TIJ313.htm#Heading11375">Sometimes it works anyway</a></li>
<li><a href="TIJ313.htm#Heading11436">Making a type-conscious ArrayList</a></li>
<ul>
<li><a href="TIJ313.htm#Heading11478">Parameterized types</a></li>
</ul>
</ul>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -