i
Sams.net
Learning
Center
abcd
P2/V4SQC6 TY Java in 21 Days 030-4 louisa 12.31.95 FM LP#4
W
R
F
S
M
T
W
R
About This Book
This book teaches you all about the Java language and how to use it to create
applets and applications. By the time you get through with this book, you’ll know
enough about Java to do just about anything, inside an applet or out.
Who Should Read This Book
This book is intended for people with at least some basic programming back-
ground, which includes people with years of programming experience or people
with only a small amount of experience. If you understand what variables, loops,
and functions are, you’ll be just fine for this book. The sorts of people who might
want to read this book include you, if
■■ You’re a real whiz at HTML, understand CGI programming (in perl,
AppleScript, Visual Basic, or some other popular CGI language) pretty
well, and want to move on to the next level in Web page design.
■■ You had some Basic or Pascal in school and you have a basic grasp of
what programming is, but you’ve heard Java is easy to learn, really
powerful, and very cool.
■■ You’ve programmed C and C++ for many years, you’ve heard this Java
thing is becoming really popular and you’re wondering what all the fuss
is all about.
■■ You’ve heard that Java is really good for Web-based applets, and you’re
curious about how good it is for creating more general applications.
What if you know programming, but you don’t know object-oriented program-
ming? Fear not. This book assumes no background in object-oriented design. If
you know object-oriented programming, in fact, the first couple of days will be
easy for you.
How This Book Is Structured
This book is intended to be read and absorbed over the course of three weeks.
During each week, you’ll read seven chapters that present concepts related to the
Java language and the creation of applets and applications.
030-4 FM 1/29/96, 8:10 PM1
Teach Yourself JAVA in 21 Days
M
T
W
T
F
S
S
21
ii
P2/V4SQC6 TY Java in 21 Days 030-4 louisa 12.31.95 FM LP#4
Conventions
Note: A Note box presents interesting pieces of information related to the surround-
ing discussion.
Technical Note: A Technical Note presents specific technical information related to
the surrounding discussion.
Tip: A Tip box offers advice or teaches an easier way to do something.
Caution: A Caution box alerts you to a possible problem and gives you advice to
avoid it.
Warning: A Warning box advises you about potential problems and helps you steer
clear of disaster.
New terms are introduced in New Term boxes, with the term in italics.
A type icon identifies some new HTML code that you can type in yourself.
An Output icon highlights what the same HTML code looks like when viewed by
either Netscape or Mosaic.
An analysis icon alerts you to the author’s line-by-line analysis.
!
!
Analysis
Output
Type
NEW
TERM
☛
030-4 FM 1/29/96, 8:10 PM2
Teach Yourself JAVA in 21 Days
M
T
W
T
F
S
S
21
vi
P2/V4SQC6 TY Java in 21 Days 030-4 louisa 12.31.95 FM LP#4
To Eric, for all the usual reasons
(moral support, stupid questions, comfort in dark times).
LL
For RKJP, ARL, and NMH
the three most important people in my life.
CLP
Copyright ©1996 by Sams.net
Publishing and its licensors
FIRST EDITION
All rights reserved. No part of this book shall be reproduced, stored in a
retrieval system, or transmitted by any means, electronic, mechanical,
photocopying, recording, or otherwise, without written permission from
the publisher. No patent liability is assumed with respect to the use of the
information contained herein. Although every precaution has been taken in
the preparation of this book, the publisher and authors assume no
responsibility for errors or omissions. Neither is any liability assumed for
damages resulting from the use of the information contained herein. For
information, address Sams.net Publishing, 201 W. 103rd St., Indianapolis,
IN 46290.
International Standard Book Number: 1-57521-030-4
Library of Congress Catalog Card Number: 95-78866
99 98 97 96 4 3 2 1
Interpretation of the printing code: the rightmost double-digit number is
the year of the book’s printing; the rightmost single-digit, the number of
the book’s printing. For example, a printing code of 96-1 shows that the
first printing of the book occurred in 1996.
Composed in AGaramond and MCPdigital by Macmillan Computer
Publishing
Printed in the United States of America
All terms mentioned in this book that are known to be trademarks or
service marks have been appropriately capitalized. Sams.net Publishing
cannot attest to the accuracy of this information. Use of a term in this book
should not be regarded as affecting the validity of any trademark or service
mark.
President, Sams Publishing: Richard K. Swadley
Publisher, Sams.net Publishing: George Bond
Publishing Manager: Mark Taber
Managing Editor: Cindy Morrow
Marketing Manager: John Pierce
Acquisitions Editor
Mark Taber
Development Editor
Fran Hatton
Software Development
Specialist
Merle Newlon
Production Editor
Nancy Albright
Technical Reviewer
Patrick Chan
Editorial Coordinator
Bill Whitmer
Technical Edit
Coordinator
Lynette Quinn
Formatter
Frank Sinclair
Editorial Assistant
Carol Ackerman
Cover Designer
Tim Amrhein
Book Designer
Alyssa Yesh
Production Team
Supervisor
Brad Chinn
Production
Michael Brumitt
Jason Hand
Cheryl Moore
Ayanna Lacey
Nancy Price
Bobbi Satterfield
Tim Taylor
Susan Van Ness
Mark Walchle
Todd Wente
Indexer
Tim Griffin
030-4 FM 1/29/96, 8:10 PM6
vii
Sams.net
Learning
Center
abcd
P2/V4SQC6 TY Java in 21 Days 030-4 louisa 12.31.95 FM LP#4
M
T W
R
F
S
S
Overview
Introduction xxi
Week 1 at a Glance
Day 1 An Introduction to Java Programming 3
2 Object-Oriented Programming and Java 19
3 Java Basics 41
4 Working with Objects 61
5 Arrays, Conditionals, and Loops 79
6 Creating Classes and Applications in Java 95
7 More About Methods 111
Week 2 at a Glance
Day 8 Java Applet Basics 129
9 Graphics, Fonts, and Color 149
10 Simple Animation and Threads 173
11 More Animation, Images, and Sound 195
12 Managing Simple Events and Interactivity 217
13 User Interfaces with the Java Abstract Windowing Toolkit 237
14 Windows, Networking, and Other Tidbits 279
Week 3 at a Glance
Day 15 Modifiers 305
16 Packages and Interfaces 323
17 Exceptions 341
18 Multithreading 353
19 Streams 375
20 Native Methods and Libraries 403
21 Under the Hood 421
Appendixes
A Language Summary 473
B The Java Class Library 483
C How Java Differs from C and C++ 497
D How Java Differs from C and C++ 507
Index 511
030-4 FM 1/29/96, 8:11 PM7