1. Trang chủ
  2. » Giáo án - Bài giảng

head first java second edition

722 3,5K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Head First Java Second Edition
Trường học Harvard University
Chuyên ngành Computer Science
Thể loại Sách hướng dẫn học lập trình
Năm xuất bản 2012
Thành phố Cambridge
Định dạng
Số trang 722
Dung lượng 41,44 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

xxiiWhat your brain is thinking xxiiiMetacognition xxvBend your brain into submission xxviiWhat you need for this book xxviii Acknowledgements xxxi Table of Contents summary 1 Breaking t

Trang 2

1  ! "  2334

Trang 3

  2

 27 &

Praise for Head First Java

Trang 4

    #"

 6    !1 1ABB

1  ! "  233;

Trang 5

Other Java books from O’Reilly

Head First Design Patterns

Head First Servlets

Head First EJB™

Ant: The Defi nitive Guide™

Better, Faster, Lighter Java™

Enterprise JavaBeans™

Hibernate: A Developer’s Notebook

Java™ 1.5 Tiger: A Developer’s Notebook

Java™ Cookbook

Java™ in a Nutshell

Java™ Network Programming

Java™ Servlet & JSP Cookbook

Java™ Swing

JavaServer Faces™

JavaServer Pages™

Programming Jakarta Struts

Tomcat: the Defi nitive Guide

Be watching for more books in the Head First series

Trang 6

Head First Java ™

Second Edition

Beijing • Cambridge • Köln • Paris • Sebastopol • Taipei • Tokyo

Wouldn’t it be dreamy

if there was a Java book

that was more stimulating

than waiting in line at the

DMV to renew your driver’s

license? It’s probably just a

fantasy

Kathy Sierra Bert Bates

Trang 7

Head First Java™

Trang 9

Creators of the Head First series

Although Kathy and Bert try to answer as much email as they can, the volume of mail and their travel schedule makes that

difficult The best (quickest) way to get technical help with the book is at the very active Java beginners forum at javaranch.com.

Trang 10

i Intro

Your brain on Java

Who is this book for? xxiiWhat your brain is thinking xxiiiMetacognition xxvBend your brain into submission xxviiWhat you need for this book xxviii

Acknowledgements xxxi

Table of Contents (summary)

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

Table of Contents (the full version)

Trang 11

You Bet

Shoot Me

I was told there would be objects # $ %       

Java takes you to new places.

Code structure in Java 7

Exercises and puzzles 42

Trang 12

pass-by-value means

pass-by-copy

Variables come in two flavors: primitive and reference

             6          

Dog reference

Dog obje ct

size 24

int

fido

State affects behavior, behavior affects state ,    *

foo.go(x); void go(int z){ }

Declaring a variable (Java cares about type) 50

Primitive types (“I’d like a double with extra foam, please”) 51

Reference variables (remote control to an object) 54Object declaration and assignment 55Objects on the garbage-collectible heap 57Arrays (a fi rst look) 59Exercises and puzzles 63

Methods use object state (bark different) 73Method arguments and return types 74

Pass-by-value (the variable is always copied) 77

Encapsulation (do it or risk humiliation) 80Using references in an array 83Exercises and puzzles 88

Trang 13

Java ships with hundreds of pre-built classes      

We’re gonna build the

Sink a Dot Com game

- Julia, 31, hand model

Building the Sink a Dot Com game 96Starting with the Simple Dot Com game (a simpler version) 98Writing prepcode (pseudocode for the game) 100Test code for Simple Dot Com 102Coding the Simple Dot Com game 103Final code for Simple Dot Com 106Generating random numbers with Math.random() 111Ready-bake code for getting user input from the command-line 112

Looping with for loops 114

Casting primitives from a large size to a smaller size 117Converting a String to an int with Integer.parseInt() 117Exercises and puzzles 118

Analying the bug in the Simple Dot Com Game 126ArrayList (taking advantage of the Java API) 132Fixing the DotCom class code 138

Building the real game (Sink a Dot Com) 140

Prepcode for the real game 144 Code for the real game 146

boolean expressions 151

Using the library (Java API) 154Using packages (import statements, fully-qualifi ed names) 155Using the HTML API docs and reference books 158Exercises and puzzles 161

Trang 14

Some classes just should not be instantiated 200

Abstract classes (can’t be instantiated) 201Abstract methods (must be implemented) 203Polymorphism in action 206

Class Object (the ultimate superclass of everything) 208

Taking objects out of an ArrayList (they come out as type Object) 211Compiler checks the reference type (before letting you call a method) 213Get in touch with your inner object 214Polymorphic references 215Casting an object reference (moving lower on the inheritance tree) 216Deadly Diamond of Death (multiple inheritance problem) 223Using interfaces (the best solution!) 224Exercises and puzzles 230

Plan your programs with the future in mind ,      

Object

Understanding inheritance (superclass and subclass relationships) 168Designing an inheritance tree (the Animal simulation) 170Avoiding duplicate code (using inheritance) 171

IS-A and HAS-A (bathtub girl) 177What do you inherit from your superclass? 180

What does inheritance really buy you? 182

Polymorphism (using a supertype reference to a subclass object) 183Rules for overriding (don’t touch those arguments and return types!) 190Method overloading (nothing more than method name re-use) 191Exercises and puzzles 192

Trang 15

9 Life and Death of an Object

Objects are born and objects die

Do the Math.

‘d’ is assigned a new Duck object, leaving the

original (first) Duck object abandoned That

first Duck is toast

kid instance one kid instance two

one per class

The stack and the heap, where objects and variables live 236Methods on the stack 237

Where local variables live 238

Where instance variables live 239The miracle of object creation 240

Constructors (the code that runs when you say new) 241

Initializing the state of a new Duck 243Overloaded constructors 247Superclass constructors (constructor chaining) 250

Invoking overloaded constructors using this() 256

Trang 16

11 Risky Behavior

Stuff happens

Face it, you need to make GUIs 5             

     +                  

class with a risky method

class Cow { void moo() {

if (serverDown){

explode();

} } }

The outer and inner objects

are now intimately linked

These two objects on the

heap have a special bond The

inner can use the outer’s

variables (and vice-versa).

Making a music machine (the BeatBox) 316What if you need to call risky code? 319Exceptions say “something bad may have happened ” 320

The compiler guarantees (it checks) that you’re aware of the risks 321

Catching exceptions using a try/catch (skateboarder) 322 Flow control in try/catch blocks 326

The fi nally block (no matter what happens, turn off the oven!) 327Catching multiple exceptions (the order matters) 329Declaring an exception (just duck it) 335Handle or declare law 337Code Kitchen (making sounds) 339Exercises and puzzles 348

Trang 17

13 Work on your Swing

the east and

west get their

Writing a serialized object to a file 432Java input and output streams (connections and chains) 433Object serialization 434Implementing the Serializable interface 437Using transient variables 439Deserializing an object 441Writing to a text file 447java.io.File 452Reading from a text file 454Splitting a String into tokens with split() 458CodeKitchen 462Exercises and puzzles 466

serialized

deserialized Any questions ?

Trang 18

Chat program overview 473Connecting, sending, and receiving 474

Reading data from a socket (using BufferedReader) 478Writing data to a socket (using PrintWriter) 479Writing the Daily Advice Client program 480Writing a simple server 483Daily Advice Server code 484Writing a chat client 486Multiple call stacks 490Launching a new thread (make it, start it) 492The Runnable interface (the thread’s job) 494Three states of a new Thread object (new, runnable, running) 495The runnable-running loop 496Thread scheduler (it’s his decision, not yours) 497Putting a thread to sleep 501Making and starting two threads 503Concurrency issues: can this couple be saved? 505The Ryan and Monica concurrency problem, in code 506Locking to make things atomic 510Every object has a lock 511The dreaded “Lost Update” problem 512Synchronized methods (using a lock) 514Deadlock! 516Multithreaded ChatClient code 518Ready-bake SimpleChatServer 520Exercises and puzzles 524

Trang 19

17 Release Your Code

It’s time to let go            ... data-page="5">

Other Java books from O’Reilly

Head First Design Patterns

Head First Servlets

Head First EJB™

Ant: The Defi nitive Guide™

Better, Faster, Lighter Java? ??...

Enterprise JavaBeans™

Hibernate: A Developer’s Notebook

Java? ?? 1.5 Tiger: A Developer’s Notebook

Java? ?? Cookbook

Java? ?? in a Nutshell

Java? ?? Network Programming

Java? ??... data-page="6">

Head First Java ™

Second Edition< /h3>

Beijing • Cambridge • Köln • Paris • Sebastopol • Taipei • Tokyo

Wouldn’t it be dreamy

if there was a Java

Ngày đăng: 28/04/2014, 15:43

TỪ KHÓA LIÊN QUAN