Another goal of this book is to demonstrate programming skills in such a way that allows you to apply these skills when writing other Java programs or when learning new languages.. If yo
Trang 1d u
c t
i o
great asset to any programmer, especially given the Internet’s importance in today’s business world
Another goal of this book is to demonstrate programming skills in such a way that allows you to apply these skills when writing other Java programs or when learning new languages I believe that you will find this approach to learning programming through the use of game examples very comfortable The examples are fun to program, and at the same time, demonstrate important programming skills that you can use to write different types of programs
Who Should Read This Book?
I do not assume that you have any programming experience If you do have some programming experience, but have little to no experience with Java, you will also benefit from reading this book and learning Java at a beginner’s level If you have already read another book on Java or have taken even an intro Java course, this book is not for you
You should have a good graphics editor and sound editor In addition, you will need Sun’s Java 1.3 SDK (software development kit) and documentation, which
you can find at http://java.sun.com/j2se/1.3/docs.html All the other
require-ments are included on the accompanying CD-ROM You will need a text editor such as Notepad or a Java IDE (Integrated Development Environment) such as NetBeans so that you can write and edit your Java programs There is a link to the home page of NetBeans on the CD-ROM in the "Web Links" section This book does not explain how to use the IDE The instructions for writing and compiling your programs assume you are using a text editor You will also need recent versions
of Web browsers such as Netscape 6 and Internet Explorer 5, or later versions, to run the applets (Internet Explorer 5.5 is included on the CD-ROM.)
How to Use This Book
Learning a programming language such as Java is a process First, you need to learn the basic skills, and then you build upon them to learn the more involved skills If you have no experience with programming or are new to the Java lan-guage, I urge you to read the chapters in order Just about all of the chapters in this book build upon concepts covered in earlier chapters The first five chapters lay the groundwork by covering basic syntax, variables, arrays, loops, condition-als, and object-oriented programming concepts If you feel adventurous and want
to skip around, you should at least read the these chapters in order
Trang 2If you already have some experience with Java, you may be able to skim through Chapters 1 through 5 quickly, or possibly skip ahead to the chapters that follow them to learn more advanced Java programming right away
At the beginning of each chapter, you are presented with a complete program
This program encompasses all the major topics covered within that chapter It allows you to see what you’ll accomplish by reading the chapter You should con-sider these programs your projects for the chapters, or your goals to achieve by the time you are finished reading the chapters
Next, you learn each of the topics covered in the chapter, one at a time, and write
a program for each of the new skills that you learn Finally, you put these con-cepts together to build the project you see at the beginning of the chapter Each
of the smaller examples are straightforward and to the point so that you will quickly learn the concepts and not be confused by too much unnecessary code
It is important that you actually get your hands dirty and program the examples yourself The best way to get a good feel for Java, or any other language, is not from simply reading a book You need to work hands-on Not only that, you should feel free to put your own spin on each of the examples and experiment on your own If you don’t feel like saying “Hello, world!” in Chapter 1, and instead, feel like saying “Ciao, Il Mondo!”, go ahead If you have an idea of how to improve
or expand upon the examples, you should do so Experiment and have fun!
Added Advice to Make You a Pro
Throughout the book, certain conventions are used to enhance your reading experience:
• Hints: These are programming notes that give you more insight into a
par-ticular topic
• Traps: There are certain areas in the Java language that are prone to
com-mon mistakes I point them out to you by using these traps
• Tricks: These are programming tips that you can use to make writing code
easier or to make your programs run more efficiently
• In the Real World: These sidebars explain how the topics you are learning
and the simple programs you are writing can be used in the real world
• Key terms: Each time you come across a new term, it is italicized and
explained carefully
• Challenges: At the end of each chapter, you will find some exercises that
challenge you to use the skills you have learned up to that point The code
xxi
Trang 3for these challenges is not found in the book or on the CD-ROM They are for you to program on your own and will help you get a better feel for Java Don’t think of these as test questions They are there to help you learn by encouraging you to think for yourself
What’s on the CD-ROM?
On the book’s CD-ROM, you’ll find the following helpful utilities and programs:
• Sun’s SDK 1.3.1 for Windows, Solaris, and Linux
• All the source code and class files from the book, organized by chapter
• The GIMP image editor
• Cool Edit Pro sound editor demo
• Microsoft Internet Explorer 5.5
• Winzip 8.0 See Appendix A for instructions on how to install and use it
xxii
l e
Trang 4With this chapter, you begin to become familiar with the Java programming language and learn how to apply your knowledge to create Java applications and applets Java
applications are stand-alone programs that run on your system’s operating system Java applets are programs
that run within a Web browser as part of a Web page For example, if you do a search for “Java Games” on http://www.yahoo.com, you will see a list of links to games that were written as applets that you can play online within your Web browser Everything you need to know in order to create your first simple application and applet can be found within the pages of this chapter I cover all the basics here: from installing Sun’s Java Soft-ware Development Kit (SDK 1.3), to writing your first set of programs, to compiling and running them Make sure that you read this chapter carefully By reading the information
Getting Started
1
C H A P T E R
Trang 5it contains, you form a base of knowledge that you will call upon in the later chap-ters Specifically, in this chapter, you:
The Project: the HelloWeb Applet
The HelloWebapplet runs within your Web browser It simply displays a message,
“Hello, World Wide Web!” In Figure 1.1, you can see what this applet looks like when it runs
2
J a
s o
l ut
n e
FIGURE 1.1
This is the
HelloWeb applet
as it appears while running in Internet Explorer 5 The darker rectangle displaying “Hello, World Wide Web!”
is the applet’s area.
Trang 6By the end of this chapter, you will be able to create this HelloWebapplet More importantly, you will understand all the concepts behind it and will be able to create similar programs of your own This simple applet displays some text within a Java-enabled Web browser
At this point, you might not consider this applet a big deal because all it does is display a message Although it isn’t very useful in that you don’t need to write a Java program to display text in an HTML document, it is a big step for anyone starting out with Java It isn’t simply the output that is important By the time you produce this applet, you will understand how to write a Java program, how
to compile it, and how to include it in an HTML document You will be well on your way to learning the more complicated aspects of the Java programming lan-guage In this book, the most significant concepts are the first that you learn
After you have the basics down, you can consider yourself a Java programmer who is able to take on more challenging Java concepts So learning how to create this simple applet really is a big deal if you think about it
What Is Java?
The fact that you are reading this book suggests that you have at least heard of Java and have a basic idea how it is used Sun Microsystems began developing Java behind closed doors in 1991 It wasn’t revealed to the public until 1995, when Sun announced the language and Netscape announced Web browser support
Java is a relatively new and exciting technology Interestingly enough, it was ini-tially developed as a solution for household appliances From there it has evolved into a fully functional programming language What makes Java so special? Well, Java can be integrated directly into a Web page as an applet, making the Internet
3
HOW DID JAVA GET ITS NAME?
When you think of other programming languages’ names, such as BASIC, FOR-TRAN, COBOL, C, C++, and PASCAL, the name Java doesn’t really fit in The name itself is interesting enough to garner curiosity So just how did Java get its name? The original name for Java was intended to be “OAK”, but they could-n’t use that name because it was already taken (by Oak Technologies) Other names floating around were “Silk” and “DNA” Apparently, the name “Java”
was ultimately picked because it gave the Web a “jolt” and Sun wanted to avoid names that sounded nerdy Java certainly does its part in making the Internet the interactive, dynamic, not to mention fun, technology that it is You can read more about this at http://www.javaworld.com/javaworld/jw-10-1996/jw-10-javaname.fullquote.html.
Trang 7a much more dynamic and interesting place to gather information, do business,
or just have fun! In fact, it is more than likely that this dynamic aspect of Java is what initially sparked your interest, as it did mine Java can do much more than that, as you will see, and it continues to grow and evolve
Java Is a Programming Language
Granted, the title of this book is Java Programming for the Absolute Beginner, so I’m
sure that you understand that Java is a programming language Still, it is bene-ficial to understand exactly what a programming language is and what a
pro-gramming language should be able to do A program is a structured series of
instructions that directs a computer to perform specific operations A computer
is a machine It does not have any intelligence of its own It needs to be con-trolled; much like a car must be driven A car cannot drive itself, with the
fic-tional exception of Kit, the beloved star of the ’80s hit television program Knight Rider A driver is needed to operate, or control, the car.
Similarly, a computer program controls a computer’s operation A programming language contains a vocabulary that allows a programmer to communicate a
series of instructions to a computer in a form that the computer can understand and obey Without programs, a computer is as useless as a car without a driver
In this way, Java is a fully functional programming language, more easily com-pared to C, C++, or Visual Basic in its capabilities than it is to JavaScript, VBScript,
or HTML, which might be surprising to anyone who considers Java only an Inter-net development tool
More specifically, Java is a high-level programming language A high-level pro-gramming language uses instructions that more closely resemble a written
lan-guage (such as English) than machine lanlan-guage On the other end, machine language, in which groups of ones and zeros represent instructions that are interpreted by the computer directly, is cryptic, and difficult to interpret, unless you are a computer High-level languages are much easier to understand In fact, without ever formally learning the Java language, you can probably randomly flip to any program listing in this book, read a line of code, and make a pretty good guess as to what that line of code does
Java Is Platform Independent
One of the most appealing aspects of Java is its platform independence Java is
platform independent because you can run Java programs on any operating system
without having to rewrite or recompile them for each system This is a significant advantage, particularly when developing applets or applications that are down-loaded from the Internet and that need to run on many different systems
4
J a
s o
l ut
n e
Trang 8Java runs independently of any specific hardware architecture or operating sys-tem In other programming languages, it is common for a programmer to make
references to operating system-dependent APIs within his or her code An API is
an application programming interface containing predefined functions that make it easier for programmers to perform tasks Operating system-dependent APIs are closely associated to the operation system and will not work on other operating systems In other words, Windows has its own set of APIs that differ from Mac’s APIs and both of these operating systems have different API sets than Linux If you want to run a program on a different operating system, you need to rewrite it With other such languages, even if there are no platform-dependent references, you might need to recompile the program before it will run on a dif-ferent operating system
Although it is possible to make references to platform-dependent APIs in Java code, it is considered bad practice In doing so, you strip away your program’s advantage of being platform independent There are almost always alternatives,
so it is worth the effort to do a bit more research so that your programs retain their platform independence.
How is this platform independence possible, you ask? The answer lies in the way operating systems interpret Java No matter what system you are programming
for, the source code you write will be the same Source code is a listing of the pro-gram code, as it appears when the propro-grammer writes it When you compile the
source code, or translate it into a form that the computer can interpret, it
becomes Java byte code Java byte code is a compiled Java program that is readily
interpreted by the Java run-time environment (JRE) Each operating system has its own JRE, which is essentially a Java interpreter, also known as the Java virtual machine, or Java VM for short, running on it The JRE interprets Java byte code and instructs the operating system it resides on as to which operations to per-form Figure 1.2 shows how all this works
Java Is Object-Oriented
You and I live in a world full of objects—books, cars, tables, chairs, remote con-trols, televisions, and so on Although this is not a new concept in life, it is a fairly new concept in computer programming You see, most of the older programming
languages are procedure-oriented A procedure-oriented program follows a logically
ordered set of instructions to perform a specific task For example, let’s say you’re
going to a Metallica concert The band is performing at a place you’ve never been
to, so you have to call ahead to get directions The person on the other end of the phone will tell you things like “Get on the highway and go South to exit 22.” And
“Turn left at the light.” The point is that he or she will give you a specific,
H I N T
5
Trang 9ordered, set of directions for you to follow to get from point A to point B This is basically how procedural programming languages are structured
Object-oriented programming (OOP) languages, on the other hand, have the added
capability to encapsulate sets of characteristics and functions into what are
called classes Instances of these classes are called objects.
As an analogy, consider a ball as a basic class of objects A ball is spherical, can have a specific color, can be solid or hollow, large or small, and it can have many other characteristics What can you do with a ball? You can throw it, bounce it, hit it with a bat, or kick it, depending on what kind of ball it is You can consider
“ball” to be a class of objects in which every ball is defined to have the same set
of characteristics Pick up any ball, any specific ball at all That ball belongs within the class balland has all the basic characteristics and uses that every other ball in the universe has It is a specific instance of a ball
From a programming perspective, a class is programming code that defines attributes and functions used to describe objects Say you wanted to add an OK button in a user interface so that users can click it to perform some task How convenient it would be for you to be able to write code that basically translates to something similar to “Get a button that says OK, and when a user clicks it, do the following things.” By using object-oriented programming, you can do just that You need to write code that describes what a button is and can do only once Then you can reuse that code by referring to a button object in your code Even simpler than that, if someone else already “described” what a button is, you can use that code by calling some object in your code a button Object-oriented programming
is covered in detail in Chapter 5, “Blackjack: Object-Oriented Programming.”
6
J a
s o
l ut
Compiler
System Running Windows Java Interpreter
Java Source Code
Java Byte Code
System Running Mac OS Java Interpreter
System Running UNIX Java Interpreter
FIGURE 1.2
Java source code
is compiled into Java byte code, which can be interpreted by any system running a Java interpreter.
Trang 10Why Learn Java?
There are so many programming languages to choose from Why should you learn Java? Undoubtedly you have at least a passing interest in Java to have read this far into Chapter 1 There are many reasons why learning Java is a good thing
If you are learning your first programming language, Java is a good choice I feel that Java, being an object-oriented programming language, is intuitive You understand how to use real objects in everyday life, so it isn’t a big stretch for you
to grasp the object-oriented nature of Java It is a high-level programming lan-guage, so you can learn and understand the code pretty easily Java has a wide range of uses, from creating stand-alone applications that run on your computer
to creating applets for Internet solutions Java is exciting It has a solid future, so whether you are just expanding your knowledge or furthering your career, there are many benefits to learning Java
Java Is Relatively Easy to Learn
If you already know C or C++, learning Java won’t prove too difficult for you Java was designed to be syntactically similar to C-type languages C++ can be used for object-oriented programming It can also be used as a strictly procedural lan-guage, but if you already understand C++ OOP concepts, learning Java will be a breeze On the other side of things, if you don’t know the first thing about pro-gramming, it might be difficult to get started in learning basic programming concepts, but don’t throw in the towel just yet This book is geared toward begin-ners and does not assume that you have any programming experience Java’s design makes it easier to learn than other programming languages, because it was initially designed to be small and simple
As you know, Java is a high-level programming language that resembles human language more closely than machine language Learning to program a high-level programming language is much easier than learning a low-level programming language Choosing an object-oriented language as a first language is also a good idea The concepts behind object-oriented programming are intuitive After you learn one programming language, you find that learning other programming languages is much easier because you already know concepts that apply across all programming languages Therefore, why not start with a language that is intuitive and easy to learn? This is why Java is a good choice
Java Works Everywhere
You learned earlier that Java is platform independent You can be sure that no matter which operating system you have, it will be able to run your Java pro-grams as long as it has a Java interpreter installed on it This is beneficial while
7