Java All-in-One Desk Reference For Dummies doc - Pdf 10


01_58961X ffirs.qxd 3/29/05 3:24 PM Page iv
by Doug Lowe
Java

ALL-IN-ONE DESK REFERENCE
FOR
DUMmIES

01_58961X ffirs.qxd 3/29/05 3:24 PM Page i
Java

All-in-One Desk Reference For Dummies
®
Published by
Wiley Publishing, Inc.
111 River Street
Hoboken, NJ 07030-5774
www.wiley.com
Copyright © 2005 by Wiley Publishing, Inc., Indianapolis, Indiana
Published by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or
by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permit-
ted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written
permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the
Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600.
Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing,
Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at http://
www.wiley.com/go/permissions.
Trademarks: Wiley, the Wiley Publishing logo, For Dummies, the Dummies Man logo, A Reference for the

About the Author
Doug Lowe has been writing computer programming books since the guys who
invented Java were still in high school. He’s written books on COBOL, Fortran,
Visual Basic, for IBM mainframe computers, mid-range systems, PCs, Web pro-
gramming, and probably a few he’s forgotten about. He’s the author of more
than 30 For Dummies books, such as Networking For Dummies (7th Edition),
Networking For Dummies All-in-One Desk Reference, PowerPoint 2003 For
Dummies, and Internet Explorer 6 For Dummies. He lives in that sunny All-
American City Fresno, California, where the motto is, “It’s a sunny, All-American
City,” with his wife and the youngest of his three daughters. He’s also one of
those obsessive-compulsive decorating nuts who puts up tens of thousands of
lights at Christmas and creates computer-controlled Halloween decorations
that rival Disney’s Haunted Mansion. Maybe his next book should be Tacky
Holiday Decorations For Dummies.
01_58961X ffirs.qxd 3/29/05 3:24 PM Page iii
01_58961X ffirs.qxd 3/29/05 3:24 PM Page iv
Dedication
To Debbie, Rebecca, Sarah, and Bethany.
Author’s Acknowledgments
I’d like to thank project editor Kim Darosett, who did a great job of managing
all the editorial work that was required to put this book together in spite of a
short schedule and oft-missed deadlines, and acquisitions editor Katie Feltman
who made the whole project possible. I’d also like to thank John Purdum who
gave the entire manuscript a thorough technical review, tested every line of
code, and offered many excellent suggestions, as well as copy editor Rebecca
Senninger who made sure the i’s were crossed and the t’s were dotted (oops,
reverse that!). And, as always, thanks to all the behind-the-scenes people who
chipped in with help I’m not even aware of.
01_58961X ffirs.qxd 3/29/05 3:24 PM Page v
Publisher’s Acknowledgments

Andy Cummings, Vice President and Publisher
Mary Bednarek, Executive Acquisitions Director
Mary C. Corder, Editorial Director
Publishing for Consumer Dummies
Diane Graves Steele, Vice President and Publisher
Joyce Pepple, Acquisitions Director
Composition Services
Gerry Fahey, Vice President of Production Services
Debbie Stailey, Director of Composition Services
01_58961X ffirs.qxd 3/29/05 3:24 PM Page vi
Contents at a Glance
Introduction 1
Book I: Java Basics 7
Chapter 1: Welcome to Java 9
Chapter 2: Installing and Using Java Tools 21
Chapter 3: Working with TextPad 35
Chapter 4: Using Eclipse 43
Book II: Programming Basics 63
Chapter 1: Java Programming Basics 65
Chapter 2: Working with Variables and Data Types 83
Chapter 3: Working with Numbers and Expressions 113
Chapter 4: Making Choices 141
Chapter 5: Going Around in Circles (Or, Using Loops) 161
Chapter 6: Pulling a Switcheroo 187
Chapter 7: Adding Some Methods to Your Madness 199
Chapter 8: Handling Exceptions 217
Book III: Object-Oriented Programming 235
Chapter 1: Understanding Object-Oriented Programming 237
Chapter 2: Making Your Own Classes 249
Chapter 3: Working with Statics 265

Chapter 2: Using File Streams 679
Chapter 3: Database for $100, Please 703
Chapter 4: Using JDBC to Connect to a Database 717
Chapter 5: Working with XML 733
Book IX: Fun and Games 751
Chapter 1: Fun with Fonts and Colors 753
Chapter 2: Drawing Shapes 767
Chapter 3: Using Images and Sound 789
Chapter 4: Animation and Game Programming 803
Index 821
02_58961X ftoc.qxd 3/29/05 3:24 PM Page viii
Table of Contents
Introduction 1
About This Book 2
How to Use This Book 3
How This Book Is Organized 3
Book I: Java Basics 3
Book II: Programming Basics 3
Book III: Object-Oriented Programming 4
Book IV: Strings, Arrays, and Collections 4
Book V: Programming Techniques 4
Book VI: Swing 4
Book VII: Web Programming 4
Book VIII: File and Database Programming 4
Book IX: Fun and Games 5
This book’s Web site 5
Icons Used in This Book 5
Where to Go from Here 6
Book I: Java Basics 7
Chapter 1: Welcome to Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

JS2E API Docs 33
Java Language Specification 34
Chapter 3: Working with TextPad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Downloading and Installing TextPad 35
Editing Source Files 36
Compiling a Program 38
Running a Java Program 40
Running an Applet 41
Chapter 4: Using Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
Getting Some Perspective on Eclipse 44
Understanding Projects 46
Creating a Simple Project 47
Adding a Class File 52
Running a Program 56
Debugging a Java Program 57
Stepping through your programs 57
Examining variables 59
Setting breakpoints 60
Refactoring Your Code 61
Book II: Programming Basics 63
Chapter 1: Java Programming Basics . . . . . . . . . . . . . . . . . . . . . . . . . . .65
Looking At the Infamous Hello, World! Program 65
Dealing with Keywords 68
Working with Statements 70
Types of statements 71
White space 71
Working with Blocks 72
Creating Identifiers 73
Crafting Comments 74
End-of-line comments 74

Declaring and initializing strings 98
Combining strings 99
Converting primitives to strings 99
Converting strings to primitives 100
Converting and Casting Numeric Data 101
Automatic conversions 101
Type casting 102
Understanding Scope 102
Shadowing Variables 104
Printing Data with System.out 105
Standard input and output streams 105
Using System.out and System.err 107
Getting Input with the Scanner Class 107
Importing the Scanner class 108
Declaring and creating a Scanner object 109
Getting input 109
Getting Input with the JOptionPane Class 111
02_58961X ftoc.qxd 3/29/05 3:24 PM Page xi
Java All-in-One Desk Reference For Dummies
xii
Chapter 3: Working with Numbers and Expressions . . . . . . . . . . . . .113
Working with Arithmetic Operators 113
Dividing Integers 116
Combining Operators 118
Using the Unary Plus and Minus Operators 119
Using Increment and Decrement Operators 120
Using the Assignment Operator 122
Using Compound Assignment Operators 123
Using the Math Class 124
Constants of the Math class 125

Another way to let the user decide 166
Using the continue Statement 167
do-while Loops 168
Validating Input from the User 170
02_58961X ftoc.qxd 3/29/05 3:24 PM Page xii
Table of Contents
xiii
The Famous for Loop 173
The formal format of the for loop 173
Scoping out the counter variable 176
Counting even numbers 177
Counting backwards 177
for loops without bodies 178
Ganging up your expressions 179
Omitting expressions 181
Breaking and continuing your for loops 181
Nesting Your Loops 182
A simple nested for loop 182
A guessing game 183
Chapter 6: Pulling a Switcheroo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
else-if Monstrosities 187
A Better Version of the Voter Machine Error Decoder Program 189
Using the switch Statement 190
A Boring Business Example Complete with Flowchart 191
Putting if Statements Inside switch Statements 193
Creating Character Cases 194
Falling through the Cracks 195
Chapter 7: Adding Some Methods to Your Madness . . . . . . . . . . . . . .199
The Joy of Methods 199
The Basics of Making Methods 200

Throwing the FileNotFoundException 231
Throwing an exception from main 232
Swallowing exceptions 232
Throwing Your Own Exceptions 233
Book III: Object-Oriented Programming 235
Chapter 1: Understanding Object-Oriented Programming . . . . . . . . .237
What Is Object-Oriented Programming? 237
Understanding Objects 238
Objects have identity 239
Objects have type 240
Objects have state 240
Objects have behavior 241
The Life Cycle of an Object 242
Working with Related Classes 243
Inheritance 243
Interfaces 244
Designing a Program with Objects 244
Diagramming Classes with UML 245
Drawing classes 246
Drawing arrows 248
Chapter 2: Making Your Own Classes . . . . . . . . . . . . . . . . . . . . . . . . . .249
Declaring a Class 249
Picking class names 250
What goes in the class body 250
Where classes go 251
Working with Members 253
Fields 253
Methods 253
Understanding visibility 254
Getters and Setters 254

Final classes 283
Casting Up and Down 284
Determining an Object’s Type 286
Poly What? 287
Creating Custom Exceptions 289
The Throwable hierarchy 289
Creating an exception class 290
Throwing a custom exception 291
Chapter 5: Using Abstract Classes and Interfaces . . . . . . . . . . . . . . .293
Using Abstract Classes 293
Using Interfaces 296
Creating a basic interface 296
Implementing an interface 297
Using an interface as a type 298
More Things You Can Do with Interfaces 299
Adding fields to an interface 299
Extending interfaces 299
Using interfaces for callbacks 300
Chapter 6: Using the Object and Class Classes . . . . . . . . . . . . . . . . . .305
The Mother of All Classes: Object 305
Every object is an Object 305
Using Object as a type 306
Methods of the Object class 307
Primitives aren’t objects 308
02_58961X ftoc.qxd 3/29/05 3:24 PM Page xv
Java All-in-One Desk Reference For Dummies
xvi
The toString Method 309
Using toString 309
Overriding toString 310

Book IV: Strings, Arrays, and Collections 353
Chapter 1: Working with Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355
Reviewing Strings 355
Using the String Class 357
Finding the length of a string 359
Making simple string modifications 360
Extracting characters from a string 360
Extracting substrings from a string 361
02_58961X ftoc.qxd 3/29/05 3:24 PM Page xvi
Table of Contents
xvii
Splitting up a string 363
Replacing parts of a string 365
Using the StringBuilder and StringBuffer Classes 365
Creating a StringBuilder object 366
Using StringBuilder methods 367
A StringBuilder example 369
Using the CharSequence Interface 369
Chapter 2: Using Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371
Understanding Arrays 371
Creating Arrays 372
Initializing an Array 373
Using for Loops with Arrays 374
Solving Homework Problems with Arrays 375
Using the Enhanced for Loop 377
Using Arrays with Methods 378
Using Two-Dimensional Arrays 379
Creating a two-dimensional array 380
Accessing two-dimensional array elements 381
Initializing a two-dimensional array 382

Creating a Generic Class 421
A Generic Stack Class 422
Using Wildcard Type Parameters 426
A Generic Queue Class 427
Book V: Programming Techniques 431
Chapter 1: Programming Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .433
Understanding Threads 433
Creating a Thread 434
Understanding the Thread class 435
Extending the Thread class 436
Creating and starting a thread 437
Implementing the Runnable Interface 438
Using the Runnable interface 438
Creating a class that implements Runnable 439
Using the CountDownApp class 440
Creating Threads That Work Together 442
Synchronizing Methods 446
Threadus Interruptus 447
Finding out if you’ve been interrupted 447
Aborting the countdown 449
Chapter 2: Network Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . .453
Understanding Network Programming 453
IP addresses and ports 454
Host names, DNS, and URLs 455
Telnet 455
Getting Information about Internet Hosts 456
The InetAddress class 456
A program that looks up host names 458
Creating Network Server Applications 460
The Socket class 461

Writing Your Own Sorting Routine 497
Understanding how Quicksort works 498
The sort method 499
The partition method 500
Putting it all together 502
Book VI: Swing 505
Chapter 1: Swinging into Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .507
Some Important Swing Concepts You Need to Know 507
Understanding what Swing does 507
The Swing class hierarchy 508
I’ve Been Framed! 510
Hello, World! in Swing 511
Positioning the Frame On-Screen 513
Using the JPanel Class 514
Using Labels 516
Creating Buttons 518
A Word about the Layout of Components 520
02_58961X ftoc.qxd 3/29/05 3:24 PM Page xix
Java All-in-One Desk Reference For Dummies
xx
Chapter 2: Handling Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .521
Examining Events 521
Handling Events 524
The ClickMe Program 526
Using Inner Classes to Listen for Events 528
Adding an Exit Button 530
Catching the WindowClosing Event 532
The ClickMe Program Revisited 534
Chapter 3: Getting Input from the User . . . . . . . . . . . . . . . . . . . . . . . . .537
Using Text Fields 537

02_58961X ftoc.qxd 3/29/05 3:24 PM Page xx
Table of Contents
xxi
Using Box Layout 590
Using Grid Layout 592
Using GridBag Layout 593
Sketching out a plan 594
Adding components to a GridBag 595
Working with GridBagConstraints 597
A GridBag layout example 598
Book VII: Web Programming 603
Chapter 1: Creating Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .605
Understanding Applets 605
The JApplet Class 606
Looking At a Sample Applet 607
Creating an HTML Page for an Applet 611
Testing an Applet 611
Chapter 2: Creating Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .613
Understanding Servlets 613
Using Tomcat 614
Installing and configuring Tomcat 615
Starting and stopping Tomcat 617
Testing Tomcat 618
Creating a Simple Servlet 619
Importing the servlet packages 619
Extending the HttpServlet class 619
Printing to a Web page 620
Responding with HTML 620
Running a Servlet 623
An Improved HelloWorld Servlet 623

Creating a file 668
Getting information about a file 668
Getting the contents of a directory 669
Renaming files 670
Deleting a file 670
Using Command-Line Parameters 671
Choosing Files in a Swing Application 672
Creating an Open dialog box 674
Getting the selected file 675
Using file filters 676
Chapter 2: Using File Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .679
Understanding Streams 679
Reading Character Streams 680
Creating a BufferedReader 682
Reading from a character stream 682
Reading the movies.txt file 683
Writing Character Streams 686
Connecting a PrintWriter to a text file 687
Writing to a character stream 688
Writing the movies.txt file 689
Reading Binary Streams 692
Creating a DataInputStream 693
Reading from a data input stream 694
Reading the movies.dat file 695
02_58961X ftoc.qxd 3/29/05 3:24 PM Page xxii
Table of Contents
xxiii
Writing Binary Streams 698
Creating a DataOutputStream 699
Writing to a binary stream 700

Deleting a row 730
Updating the value of a row column 731
Inserting a row 732
Chapter 5: Working with XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .733
What Exactly Is XML, Anyway? 733
Tags 734
Attributes 735
The movies.xml file 735
Using a DTD 736
02_58961X ftoc.qxd 3/29/05 3:24 PM Page xxiii


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status