Head First Java, 2nd edition (O'Reilly, 2009, 0596009208).pdf

(33886 KB) Pobierz
:PVS#SBJOPO+BWB"-FBSOFST(VJEF
ND%DITION#OVERS*AVA
)FBE'JSTU
-FBSOIPXUISFBET
DBODIBOHFZPVSMJGF
+BWB
.BLF+BWBDPODFQUT
TUJDLUPZPVSCSBJO
'PPMBSPVOEJO
UIF+BWB-JCSBSZ
"WPJEFNCBSBTTJOH
00NJTUBLFT
#FOEZPVSNJOE
BSPVOE
+BWBQV[[MFT
.BLFBUUSBDUJWF
BOEVTFGVM(6*T
,BUIZ4JFSSB#FSU#BUFT
782258790.450.png 782258790.461.png 782258790.472.png 782258790.483.png 782258790.001.png 782258790.012.png 782258790.023.png 782258790.034.png 782258790.045.png 782258790.056.png 782258790.067.png 782258790.078.png 782258790.089.png 782258790.100.png 782258790.111.png 782258790.122.png 782258790.133.png 782258790.144.png 782258790.155.png 782258790.166.png 782258790.177.png 782258790.188.png 782258790.199.png 782258790.210.png 782258790.221.png 782258790.232.png 782258790.243.png 782258790.254.png 782258790.264.png 782258790.275.png 782258790.285.png 782258790.296.png 782258790.307.png 782258790.317.png 782258790.328.png 782258790.338.png 782258790.349.png 782258790.360.png 782258790.371.png 782258790.382.png 782258790.393.png 782258790.404.png 782258790.415.png 782258790.426.png 782258790.437.png 782258790.441.png 782258790.442.png 782258790.443.png 782258790.444.png 782258790.445.png 782258790.446.png 782258790.447.png 782258790.448.png 782258790.449.png 782258790.451.png 782258790.452.png 782258790.453.png 782258790.454.png 782258790.455.png 782258790.456.png 782258790.457.png 782258790.458.png 782258790.459.png 782258790.460.png 782258790.462.png 782258790.463.png 782258790.464.png 782258790.465.png 782258790.466.png 782258790.467.png 782258790.468.png 782258790.469.png 782258790.470.png 782258790.471.png 782258790.473.png 782258790.474.png 782258790.475.png 782258790.476.png 782258790.477.png 782258790.478.png 782258790.479.png 782258790.480.png 782258790.481.png 782258790.482.png 782258790.484.png 782258790.485.png 782258790.486.png 782258790.487.png 782258790.488.png 782258790.489.png 782258790.490.png 782258790.491.png 782258790.492.png 782258790.493.png 782258790.002.png 782258790.003.png 782258790.004.png 782258790.005.png 782258790.006.png 782258790.007.png 782258790.008.png 782258790.009.png 782258790.010.png 782258790.011.png 782258790.013.png 782258790.014.png 782258790.015.png 782258790.016.png 782258790.017.png 782258790.018.png 782258790.019.png 782258790.020.png 782258790.021.png 782258790.022.png 782258790.024.png 782258790.025.png 782258790.026.png 782258790.027.png 782258790.028.png 782258790.029.png 782258790.030.png 782258790.031.png 782258790.032.png 782258790.033.png 782258790.035.png 782258790.036.png 782258790.037.png 782258790.038.png 782258790.039.png 782258790.040.png 782258790.041.png 782258790.042.png 782258790.043.png 782258790.044.png 782258790.046.png 782258790.047.png 782258790.048.png 782258790.049.png 782258790.050.png 782258790.051.png 782258790.052.png 782258790.053.png 782258790.054.png 782258790.055.png 782258790.057.png 782258790.058.png 782258790.059.png 782258790.060.png 782258790.061.png 782258790.062.png 782258790.063.png 782258790.064.png 782258790.065.png 782258790.066.png 782258790.068.png 782258790.069.png 782258790.070.png 782258790.071.png 782258790.072.png 782258790.073.png 782258790.074.png 782258790.075.png 782258790.076.png 782258790.077.png 782258790.079.png 782258790.080.png 782258790.081.png 782258790.082.png 782258790.083.png 782258790.084.png 782258790.085.png 782258790.086.png 782258790.087.png 782258790.088.png 782258790.090.png 782258790.091.png 782258790.092.png 782258790.093.png 782258790.094.png 782258790.095.png 782258790.096.png 782258790.097.png 782258790.098.png 782258790.099.png 782258790.101.png 782258790.102.png 782258790.103.png 782258790.104.png 782258790.105.png 782258790.106.png 782258790.107.png 782258790.108.png 782258790.109.png 782258790.110.png 782258790.112.png 782258790.113.png 782258790.114.png 782258790.115.png 782258790.116.png 782258790.117.png 782258790.118.png 782258790.119.png 782258790.120.png 782258790.121.png 782258790.123.png 782258790.124.png 782258790.125.png 782258790.126.png 782258790.127.png 782258790.128.png 782258790.129.png 782258790.130.png 782258790.131.png 782258790.132.png 782258790.134.png 782258790.135.png 782258790.136.png 782258790.137.png 782258790.138.png 782258790.139.png 782258790.140.png 782258790.141.png 782258790.142.png 782258790.143.png 782258790.145.png 782258790.146.png 782258790.147.png 782258790.148.png 782258790.149.png 782258790.150.png 782258790.151.png 782258790.152.png 782258790.153.png 782258790.154.png 782258790.156.png 782258790.157.png 782258790.158.png 782258790.159.png 782258790.160.png 782258790.161.png 782258790.162.png 782258790.163.png 782258790.164.png 782258790.165.png 782258790.167.png 782258790.168.png 782258790.169.png 782258790.170.png 782258790.171.png 782258790.172.png 782258790.173.png 782258790.174.png 782258790.175.png 782258790.176.png 782258790.178.png 782258790.179.png 782258790.180.png 782258790.181.png 782258790.182.png 782258790.183.png 782258790.184.png 782258790.185.png 782258790.186.png 782258790.187.png 782258790.189.png 782258790.190.png 782258790.191.png 782258790.192.png 782258790.193.png 782258790.194.png 782258790.195.png 782258790.196.png 782258790.197.png 782258790.198.png 782258790.200.png 782258790.201.png 782258790.202.png 782258790.203.png 782258790.204.png 782258790.205.png 782258790.206.png 782258790.207.png 782258790.208.png 782258790.209.png 782258790.211.png 782258790.212.png 782258790.213.png 782258790.214.png 782258790.215.png 782258790.216.png 782258790.217.png 782258790.218.png 782258790.219.png 782258790.220.png 782258790.222.png 782258790.223.png 782258790.224.png 782258790.225.png 782258790.226.png 782258790.227.png 782258790.228.png 782258790.229.png 782258790.230.png 782258790.231.png 782258790.233.png 782258790.234.png 782258790.235.png 782258790.236.png 782258790.237.png 782258790.238.png 782258790.239.png 782258790.240.png 782258790.241.png 782258790.242.png 782258790.244.png 782258790.245.png 782258790.246.png 782258790.247.png 782258790.248.png 782258790.249.png 782258790.250.png 782258790.251.png 782258790.252.png 782258790.253.png 782258790.255.png 782258790.256.png 782258790.257.png 782258790.258.png 782258790.259.png 782258790.260.png 782258790.261.png 782258790.262.png
 
Table of Contents (summary)
Intro
xxi
1
Breaking the Surface: a quick dip
1
2
A Trip to Objectville: yes, there will be objects
27
3
Know Your Variables: primitives and references
49
4
How Objects Behave: object state affects method behavior
71
5
Extra-Strength Methods: flow control, operations, and more
95
6
Using the Java Library: so you don’t have to write it all yourself
125
7
Better Living in Objectville: planning for the future
165
8
Serious Polymorphism: exploiting abstract classes and interfaces
197
9
Life and Death of an Object: constructors and memory management
235
10
Numbers Matter: math, formatting, wrappers, and statics
273
11
Risky Behavior: exception handling
315
12
A Very Graphic Story: intro to GUI, event handling, and inner classes
353
13
Work on Your Swing: layout managers and components
399
14
Saving Objects: serialization and I/O
429
15
Make a Connection: networking sockets and multithreading
471
16
Data Structures: collections and generics
529
17
Release Your Code: packaging and deployment
581
18
Distributed Computing: RMI with a dash of servlets, EJB, and Jini
607
A
Appendix A: Final code kitchen
649
B
Appendix B: Top Ten Things that didn’t make it into the rest of the book
659
Index
677
Table of Contents (the full version)
i Intro
Your brain on Java. (ERE YOU ARETRYINGTO LEARN SOMETHINGWHILEHEREYOUR BRAIN
ISDOINGYOUAFAVORBYMAKINGSURETHELEARNINGDOESNT STICK 9OURBRAINSTHINKINGh"ETTER
LEAVEROOMFORMOREIMPORTANTTHINGSLIKEWHICHWILDANIMALSTOAVOIDANDWHETHERNAKED
SNOWBOARDINGISABADIDEAv3OHOW DO YOUTRICKYOURBRAININTOTHINKINGTHATYOURLIFE
DEPENDSONKNOWING*AVA
Who is this book for?
xxii
What your brain is thinking
xxiii
Metacognition
xxv
Bend your brain into submission
xxvii
What you need for this book
xxviii
Technical editors
xxx
Acknowledgements
xxxi
ix
782258790.263.png 782258790.265.png 782258790.266.png 782258790.267.png 782258790.268.png 782258790.269.png 782258790.270.png 782258790.271.png 782258790.272.png 782258790.273.png 782258790.274.png 782258790.276.png 782258790.277.png 782258790.278.png 782258790.279.png 782258790.280.png
 
1 Breaking the Surface
Java takes you to new places. &ROMITSHUMBLERELEASETOTHEPUBLICASTHE
WIMPYVERSION*AVASEDUCEDPROGRAMMERSWITHITSFRIENDLYSYNTAXOBJECTORIENTED
FEATURESMEMORYMANAGEMENTANDBESTOFALLTHEPROMISEOFPORTABILITY7ELLTAKEAQUICK
DIPANDWRITESOMECODECOMPILEITANDRUNIT7ERETALKINGSYNTAXLOOPSBRANCHINGANDWHAT
MAKES*AVASOCOOL$IVEIN
The way Java works
2
Virtual
Machines
Code structure in Java
7
Anatomy of a class
8
The main() method
9
Method Party()
0 aload_0
1 invokespe-
cial #1 <Method
java.lang.Object()>
4 return
Looping
11
Conditional branching ( if tests)
13
Coding the “99 bottles of beer” app
14
Phrase-o-matic
16
Fireside chat: compiler vs. JVM
18
Compiled
bytecode
Exercises and puzzles
20
2 A Trip to Objectville
I was told there would be objects. )N#HAPTERWEPUTALLOFOURCODE
INTHEMAINMETHOD4HATSNOTEXACTLYOBJECTORIENTED3ONOWWEVEGOTTOLEAVETHAT
PROCEDURALWORLDBEHINDANDSTARTMAKINGSOMEOBJECTSOFOUROWN7ELLLOOKATWHAT
MAKESOBJECTORIENTED//DEVELOPMENTIN*AVASOMUCHFUN7ELLLOOKATTHEDIFFERENCE
BETWEENACLASSANDANOBJECT7ELLLOOKATHOWOBJECTSCANIMPROVEYOURLIFE
Chair Wars (Brad the OO guy vs. Larry the procedural guy)
28
Inheritance (an introduction)
31
Overriding methods (an introduction)
32
What’s in a class? (methods, instance variables)
34
Making your fi rst object
36
Using main()
38
Guessing Game code
39
Exercises and puzzles
42
x
782258790.281.png 782258790.282.png 782258790.283.png 782258790.284.png 782258790.286.png 782258790.287.png 782258790.288.png 782258790.289.png 782258790.290.png 782258790.291.png 782258790.292.png 782258790.293.png 782258790.294.png 782258790.295.png 782258790.297.png 782258790.298.png 782258790.299.png 782258790.300.png 782258790.301.png 782258790.302.png 782258790.303.png 782258790.304.png 782258790.305.png 782258790.306.png 782258790.308.png 782258790.309.png 782258790.310.png
 
3 Know Your Variables
Variables come in two flavors: primitive and reference .
4HERESGOTTABEMORETOLIFETHANINTEGERS3TRINGSANDARRAYS7HATIFYOUHAVEA0ET/WNER
OBJECTWITHA$OGINSTANCEVARIABLE/RA#ARWITHAN%NGINE)NTHISCHAPTERWELLUNWRAP
THEMYSTERIESOF*AVATYPESANDLOOKATWHATYOUCAN DECLARE ASAVARIABLEWHATYOUCAN PUT
INAVARIABLEANDWHATYOUCAN DO WITHAVARIABLE!NDWELLFINALLYSEEWHATLIFEISTRULYLIKE
ONTHEGARBAGECOLLECTIBLEHEAP
Declaring a variable (Java cares about type )
50
24
Primitive types (“I’d like a double with extra foam, please”)
51
size
Java keywords
53
int
Reference variables (remote control to an object)
54
Object declaration and assignment
55
Objects on the garbage-collectible heap
57
Arrays (a fi rst look)
59
fido
Exercises and puzzles
63
Dog reference
4 How Objects Behave
State affects behavior, behavior affects state . 7EKNOWTHATOBJECTS
HAVE STATE AND BEHAVIOR REPRESENTEDBY INSTANCEVARIABLES AND METHODS .OWWELLLOOK
ATHOWSTATEANDBEHAVIORARE RELATED !NOBJECTSBEHAVIORUSESANOBJECTSUNIQUESTATE
)NOTHERWORDS METHODSUSEINSTANCEVARIABLEVALUES ,IKEhIFDOGWEIGHTISLESSTHAN
POUNDSMAKEYIPPYSOUNDELSEv ,ETSGOCHANGESOMESTATE
Methods use object state (bark different)
73
pass-by-value me ans
pass-by-copy
Method arguments and return types
74
Pass-by-value (the variable is always copied)
77
Getters and Setters
79
Encapsulation (do it or risk humiliation)
80
Using references in an array
83
Exercises and puzzles
88
Z
X
int
int
foo.go(x);
void go(int z){ }
xi
782258790.311.png 782258790.312.png 782258790.313.png 782258790.314.png 782258790.315.png 782258790.316.png 782258790.318.png 782258790.319.png 782258790.320.png 782258790.321.png 782258790.322.png 782258790.323.png 782258790.324.png 782258790.325.png 782258790.326.png 782258790.327.png 782258790.329.png 782258790.330.png 782258790.331.png 782258790.332.png 782258790.333.png 782258790.334.png 782258790.335.png 782258790.336.png 782258790.337.png
 
5 Extra-Strength Methods
Let’s put some muscle in our methods . 9OUDABBLEDWITHVARIABLES
PLAYEDWITHAFEWOBJECTSANDWROTEALITTLECODE"UTYOUNEEDMORETOOLS,IKE
OPERATORS !ND LOOPS -IGHTBEUSEFULTO GENERATERANDOMNUMBERS !ND TURN
A3TRINGINTOANINT YEAHTHATWOULDBECOOL!NDWHYDONTWELEARNITALLBY BUILDING
SOMETHINGREALTOSEEWHATITSLIKETOWRITEANDTESTAPROGRAMFROMSCRATCH -AYBEA
GAME LIKE3INKA$OT#OMSIMILARTO"ATTLESHIP
Building the Sink a Dot Com game
96
Starting with the Simple Dot Com game (a simpler version)
98
!
Writing prepcode (pseudocode for the game)
100
"
#
Test code for Simple Dot Com
102
Coding the Simple Dot Com game
103
0ETSCOM
$
Final code for Simple Dot Com
106
%
Generating random numbers with Math.random()
111
&
Ready-bake code for getting user input from the command-line
112
'
!SK-ECOM
Looping with for loops
114
Casting primitives from a large size to a smaller size
117
Converting a String to an int with Integer.parseInt()
117
Exercises and puzzles
118
6 Using the Java Library
Java ships with hundreds of pre-built classes. 9OUDONTHAVETO
REINVENTTHEWHEELIFYOUKNOWHOWTOFINDWHATYOUNEEDFROMTHE*AVALIBRARYCOMMONLY
KNOWNASTHE *AVA!0) 9OUVEGOTBETTERTHINGSTODO )FYOUREGOINGTOWRITECODEYOU
MIGHTASWELLWRITE ONLY THEPARTSTHATARECUSTOMFORYOURAPPLICATION4HECORE*AVALIBRARY
ISAGIANTPILEOFCLASSESJUSTWAITINGFORYOUTOUSELIKEBUILDINGBLOCKS
Analying the bug in the Simple Dot Com Game
126
h'OODTOKNOWTHERESAN!RRAY,ISTIN
THEJAVAUTILPACKAGE"UTBYMYSELFHOW
WOULD ) HAVElGUREDTHATOUTv
ArrayList (taking advantage of the Java API)
132
Fixing the DotCom class code
138
Building the real game (Sink a Dot Com)
140
- Julia, 31, hand model
Prepcode for the real game
144
Code for the real game
146
boolean expressions
151
Using the library (Java API)
154
Using packages (import statements, fully-qualifi ed names)
155
Using the HTML API docs and reference books
158
Exercises and puzzles
161
xii
782258790.339.png 782258790.340.png 782258790.341.png 782258790.342.png 782258790.343.png 782258790.344.png 782258790.345.png 782258790.346.png 782258790.347.png 782258790.348.png 782258790.350.png 782258790.351.png 782258790.352.png 782258790.353.png 782258790.354.png 782258790.355.png 782258790.356.png 782258790.357.png 782258790.358.png 782258790.359.png 782258790.361.png 782258790.362.png 782258790.363.png 782258790.364.png 782258790.365.png 782258790.366.png 782258790.367.png 782258790.368.png 782258790.369.png 782258790.370.png 782258790.372.png 782258790.373.png 782258790.374.png 782258790.375.png 782258790.376.png 782258790.377.png 782258790.378.png 782258790.379.png 782258790.380.png 782258790.381.png 782258790.383.png 782258790.384.png 782258790.385.png 782258790.386.png 782258790.387.png 782258790.388.png 782258790.389.png 782258790.390.png 782258790.391.png 782258790.392.png 782258790.394.png 782258790.395.png 782258790.396.png 782258790.397.png 782258790.398.png 782258790.399.png 782258790.400.png 782258790.401.png 782258790.402.png 782258790.403.png 782258790.405.png 782258790.406.png 782258790.407.png 782258790.408.png 782258790.409.png 782258790.410.png 782258790.411.png 782258790.412.png 782258790.413.png 782258790.414.png 782258790.416.png 782258790.417.png 782258790.418.png 782258790.419.png 782258790.420.png 782258790.421.png 782258790.422.png 782258790.423.png 782258790.424.png 782258790.425.png 782258790.427.png 782258790.428.png 782258790.429.png 782258790.430.png 782258790.431.png 782258790.432.png 782258790.433.png 782258790.434.png 782258790.435.png 782258790.436.png 782258790.438.png 782258790.439.png 782258790.440.png
Zgłoś jeśli naruszono regulamin