core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt



Similar documents
Java (12 Weeks) Introduction to Java Programming Language

Computing Concepts with Java Essentials

Fundamentals of Java Programming

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

Java Application Developer Certificate Program Competencies

Syllabus for CS 134 Java Programming

Java the UML Way: Integrating Object-Oriented Design and Programming

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE. CISY 105 Foundations of Computer Science

Visual Basic. murach's TRAINING & REFERENCE

JAVA r VOLUME II-ADVANCED FEATURES. e^i v it;

COMMUNITY COLLEGE OF CITY UNIVERSITY CITY UNIVERSITY OF HONG KONG

AP Computer Science Java Subset

Specialized Programme on Web Application Development using Open Source Tools

JAVA IN A NUTSHELL O'REILLY. David Flanagan. Fifth Edition. Beijing Cambridge Farnham Köln Sebastopol Tokyo

For Introduction to Java Programming, 5E By Y. Daniel Liang

Java SE 8 Programming

The Sun Certified Associate for the Java Platform, Standard Edition, Exam Version 1.0

BHARATHIAR UNIVERSITY COIMBATORE SCHOOL OF DISTANCE EDUCATION

C# Cookbook. Stephen Teilhet andjay Hilyard. O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo '"J""'

Specialized Programme on Web Application Development using Open Source Tools

Professional. SlickEdif. John Hurst IC..T...L. i 1 8 О 7» \ WILEY \ Wiley Publishing, Inc.

An Overview of Java. overview-1

BCA 421- Java. Tilak Maharashtra University. Bachelor of Computer Applications (BCA) 1. The Genesis of Java

Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)

CS506 Web Design and Development Solved Online Quiz No. 01

Web Development in Java

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

Java SE 7 Programming

CS 111 Classes I 1. Software Organization View to this point:

CaptainCasa. CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. Feature Overview

Glossary of Object Oriented Terms

The C Programming Language course syllabus associate level

William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Course Title: Software Development

Java Interview Questions and Answers

DIPLOMADO DE JAVA - OCA

Debugging Java Applications

EMC Documentum Composer

Computer Programming I

#820 Computer Programming 1A

Java SE 7 Programming

Java SE 7 Programming

Facebook Twitter YouTube Google Plus Website

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Editors Comparison (NetBeans IDE, Eclipse, IntelliJ IDEA)


CSC 551: Web Programming. Spring 2004

: provid.ir

Java Software Structures

Visual C# 2012 Programming

Android Application Development Course Program

tools that make every developer a quality expert

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT,

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE

A QUICK OVERVIEW OF THE OMNeT++ IDE

Practical Android Projects Lucas Jordan Pieter Greyling

Top 10 Oracle SQL Developer Tips and Tricks

Hypercosm. Studio.

Course MS10975A Introduction to Programming. Length: 5 Days

1. Overview of the Java Language

Android Developer Fundamental 1

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Windows PowerShell Essentials

Chapter 1 Fundamentals of Java Programming

Elgg 1.8 Social Networking

WebObjects Web Applications Programming Guide. (Legacy)

JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4

TECHNOLOGY Computer Programming II Grade: 9-12 Standard 2: Technology and Society Interaction

Wakanda Studio Features

AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities

Course Number: IAC-SOFT-WDAD Web Design and Application Development

DE 6211 DISTANCE EDUCATION. M.Sc. (IT) DEGREE EXAMINATION, MAY PRINCIPLES OF INFORMATION TECHNOLOGY. (2002 onwards) PART A (10 3 = 30 marks)

EPIC - User s Guide i. EPIC - User s Guide

Web Dashboard User Guide

Java EE Web Development Course Program

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER

Source Code Translation

Computer Programming I

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the.

USER GUIDE. Unit 2: Synergy. Chapter 2: Using Schoolwires Synergy

CS 209 Programming in Java #1

Objective C and iphone App

Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459)

Mobile App Design and Development

Android Certified Application Developer AND-401

Generating Automated Test Scripts for AltioLive using QF Test

Aras Corporation Aras Corporation. All rights reserved. Notice of Rights. Notice of Liability

INFORMATION BROCHURE

Eclipse 4 RCP application Development COURSE OUTLINE

Michael Füchsle, Matthias E. Zierke SAP. CRM Web Client Customizing and Development. Bonn Boston

Visual Basic 2010 Essentials

JAVA. EXAMPLES IN A NUTSHELL. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo. Third Edition.

Scheduler Job Scheduling Console

THE OPEN UNIVERSITY OF TANZANIA

Tableau Your Data! Wiley. with Tableau Software. the InterWorks Bl Team. Fast and Easy Visual Analysis. Daniel G. Murray and

... Introduction... 17

Transcription:

core. 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Volume I - Fundamentals Seventh Edition CAY S. HORSTMANN GARY CORNELL ULB Darmstadt 16238716 Sun Microsystems Press A Prentice Hall Title

List of Code Examples Preface xv To the Reader xv About This Book xvii Conventions xviii Sample Code xix Acknowledgments Chapter 1 xxi xiii An Introduction to Java 1 Java as a Programming The Java "White Paper" Simple 2 Object Oriented 3 Distributed 3 Robust 4 Secure 4 Architecture Neutral Portable 5 Interpreted 5 High Performance Multithreaded 6 Dynamic 6 Java and the Internet A Short History of Java Platform 1 Buzzwords 7 8 Common Misconceptions About Java 11 6 5 iii

Core Java Chapter 2 The Java Programming Environment 15 Installing the Java Development Kit 15 Downloading the JDK 15 Setting the Execution Path 16 Installing the Library Source and Documentation 17 Installing the Core Java Program Examples 18 Navigating the Java Directories 18 Choosing a Development Environment 19 Using the Command-Line Tools 20 Troubleshooting Hints 21 Using an Integrated Development Environment 22 Locating Compilation Errors 25 Compiling and Running Programs from a Text Editor 25 Running a Graphical Application 27 Building and Running Applets 30 Chapter 3 Fundamental Programming Structures in Java 35 A Simple Java Program 35 Comments 38 Data Types 39 Integers 39 Floating-Point Types 40 The char Type 41 The boolean Type 42 Variables 42 Initializing Variables 43 Constants 44 Operators 45 Increment and Decrement Operators 46 Relational and boolean Operators 46 Bitwise Operators 47 Mathematical Functions and Constants 47 Conversions Between Numeric Types 48 Casts 49 Parentheses and Operator Hierarchy 50 Enumerated Types 51 Strings 51 Code Points and Code Units 51 Substrings 52 String Editing 52 Concatenation 53 Testing Strings for Equality 54 Reading the On-Line API Documentation 56 Input and Output 58 Reading Input 58 Formatting Output 61

Contents Control Flow 65 Block Scope 65 Conditional Statements 65 Loops 68 Determinate Loops 72 Multiple Selections The switch Statement 75 Statements That Break Control Flow 77 Big Numbers 79 Arrays 81 The "for each" Loop 82 Array Initializers and Anonymous Arrays 82 Array Copying 83 Command-Line Parameters 84 Array Sorting 85 Multidimensional Arrays 88 Ragged Arrays 90 Chapter 4 Objects and Classes 93 Introduction to Object-Oriented Programming 93 The Vocabulary of OOP 95 Objects 95 Relationships Between Classes 96 OOP Contrasted with Traditional Procedural Programming Techniques 98 Using Predefined Classes 99 Objects and Object Variables 99 The CregorianCa lendar Class of the Java Library 102 Mutator and Accessor Methods 103 Defining Your Own Classes 108 An Employee Class 108 Use of Multiple Source Files 111 Dissecting the Employee Class 111 First Steps with Constructors 112 Implicit and Explicit Parameters 113 Benefits of Encapsulation 114 Class-Based Access Privileges 116 Private Methods 116 Final Instance Fields 117 Static Fields and Methods 117 Static Fields 117 Constants 118 Static Methods 118 Factory Methods 119 The main Method 120 Method Parameters 122 Object Construction 127 Overloading 127 Default Field Initialization 128 Default Constructors 128 Explicit Field Initialization 129

Core Java Parameter Names 130 Calling Another Constructor 130 Initialization Blocks 131 Object Destruction and the finalize Method 135 Packages 135 Class Importation 136 Static Imports 137 Addition of a Class into a Package 137 How the Virtual Machine Locates Classes 140 Package Scope 143 Documentation Comments 144 Comment Insertion 144 Class Comments 144 Method Comments 145 Field Comments 146 General Comments 146 Package and Overview Comments 147 Comment Extraction 147 Class Design Hints 148 Chapter 5 Inheritance 151 Classes, Superclasses, and Subclasses 151 Inheritance Hierarchies 157 Polymorphism 158 Dynamic Binding 159 Preventing Inheritance: Final Classes and Methods 161 Casting 162 Abstract Classes 164 Protected Access 168 Object: The Cosmic Superclass 169 The equals Method 170 Equality Testing and Inheritance 171 The hashcode Method 173 The tostring Method 174 Generic Array Lists 179 Accessing Array List Elements 181 Compatibility Between Typed and Raw Array Lists 185 Object Wrappers and Autoboxing 186 Methods with a Variable Number of Parameters 188 Reflection 189 The Class Class 190 Using Reflection to Analyze the Capabilities of Classes 193 Using Reflection to Analyze Objects at Run Time 197 Using Reflection to Write Generic Array Code 201 Method Pointers! 204 Enumeration Classes 207 Design Hints for Inheritance 209

Contents Chapter 6 Interfaces and Inner Classes 211 Interfaces 211 Properties of Interfaces 216 Interfaces and Abstract Classes 217 Object Cloning 218 Interfaces and Callbacks 223 Inner Classes 226 Lfse of an Inner Class to Access Object State 227 Special Syntax Rules for Inner Classes 230 Are Inner Classes Useful? Actually Necessary? Secure? 230 Local Inner Classes 232 Anonymous Inner Classes 234 Static Inner Classes 237 Proxies 239 Properties of Proxy Classes 243 Chapter 7 Graphics Programming 245 Introducing Swing 245 Creating a Frame 249 Positioning a Frame 251 Displaying Information in a Panel 256 Working with 2D Shapes 260 Using Color 267 Filling Shapes 270 Using Special Fonts for Text 272 Doing More with Images 278 i Chapter 8 i Event Handling 285 Basics of Event Handling 285 Example: Handling a Button Click 288 Becoming Comfortable with Inner Classes 292 Turning Components into Event Listeners 294 Example: Changing the Look and Feel 296 Example: Capturing Window Events 299 The AWT Event Hierarchy 302 Semantic and Low-Level Events in the AWT 304 Event Handling Summary 305 Low-Level Event Types 307 Keyboard Events 307 Mouse Events 312 Focus Events 320 Actions 323 Multicasting 330 Implementing Event Sources 333

Core Java Chapter 9 User Interface Components with Swing 339 The Model-View-Controller Design Pattern 339 A Model-View-Controller Analysis of Swing Buttons 344 Introduction to Layout Management 345 Border Layout 347 Panels 348 Grid Layout 350 Text Input 354 Text Fields 354 Labels and Labeling Components 356 Change Tracking in Text Fields 357 Password Fields 361 Formatted Input Fields 362 Text Areas 376 Choice Components 380 Checkboxes 380 Radio Buttons 382 Borders 386 Combo Boxes 390 Sliders 393 The JSpinner Component 398 Menus 406 Menu Building 406 Icons in Menu Items 409 Checkbox and Radio Button Menu Items 410 Pop-Up Menus 411 Keyboard Mnemonics and Accelerators 413 Enabling and Disabling Menu Items 415 Toolbars 419 Tooltips 421 Sophisticated Layout Management 424 Box Layout 426 The Grid Bag Layout 430 The Spring Layout 440 Using No Layout Manager 449 Custom Layout Managers 449 Traversal Order 453 Dialog Boxes 455 Option Dialogs 455 Creating Dialogs 465 Data Exchange 469 File Dialogs 475 Color Choosers 486

Contents Chapter 10 Deploying Applets and Applications 493 Applet Basics 493 A Simple Applet 495 Applet Viewing 496 Application Conversion to Applets 498 Life Cycle of an Applet 500 Security Basics 501 Pop-Up Windows in Applets 502 The Applet HTML Tags and Attributes 504 Applet Attributes for Positioning 505 Applet Attributes for Code 506 Applet Attributes for Java-Challenged Viewers 508 The object Tag 508 Use of Parameters to Pass Information to Applets 508 Multimedia 513 Encapsulating URLs 513 Obtaining Multimedia Files 514 The Applet Context 515 Inter-Applet Communication 515 Display of Items in the Browser 516 A Bookmark Applet 517 It's an Applet. It's an Application. It's Both! 520 JAR Files 525 Application Packaging 526 The Manifest 527 Self-Running JAR Files 527 Resources 528 Sealing 531 Java Web Start 532 TheJNLPAPI 534 Storage of Application Preferences 544 Property Maps 544 System Information 548 The Preferences API 551 Chapter 11 Exceptions and Debugging 557 Dealing with Errors 558 The Classification of Exceptions 559 Declaring Checked Exceptions 560 How to Throw an Exception 562 Creating Exception Classes 563 Catching Exceptions 564 Catching Multiple Exceptions 566 Rethrowing and Chaining Exceptions 566 The finally Clause 567

Core Java Analyzing Stack Trace Elements 570 Taking a Final Look at Java Error and Exception Handling 572 Tips for Using Exceptions 576 Logging 579 Basic Logging 580 Advanced Logging 580 Changing the Log Manager Configuration 582 Localization 583 Handlers 583 Filters 586 Formatters 587 Using Assertions 594 Assertion Enabling and Disabling 595 Usage Hints for Assertions 595 Debugging Techniques 597 Useful Tricks for Debugging 598 Using a Console Window 602 Tracing AWT Events 604 Letting the AWT Robot Do the Work 607 Using a Debugger 611 The JDB Debugger 611 The Eclipse Debugger 616 Chapter 12 Streams and Files 619 Streams 619 Reading and Writing Bytes 620 The Complete Stream Zoo 622 Layering Stream Filters 625 Data Streams 629 Random-Access File Streams 631 Text Streams 633 Character Sets 633 How to Write Text Output 640 How to Read Text Input 642 ZIP File Streams 643 Use of Streams 650 Writing Delimited Output 650 String Tokenizers and Delimited Text 651 Reading Delimited Input 652 The StringBui Ider Class 656 Working with Random-Access Streams 657 Object Streams 662 Storing Objects of Variable Type 662 Understanding the Object Serialization File Format 666 Solving the Problem of Saving Object References 669 Understanding the Output Format for Object References 674 Modifying the Default Serialization Mechanism 676 Serializing Singletons and Typesafe Enumerations 678

Contents Versioning 679 Using Serialization for Cloning 681 File Management 684 New I/O 689 Memory-Mapped Files 689 The Buffer Data Structure 694 File Locking 696 Regular Expressions 698 Chapter 13 Generic Programming 707 Why Generic Programming? 707 Who Wants to Be a Generic Programmer? 708 Definition of a Simple Generic Class 709 Generic Methods 711 Bounds for Type Variables 711 Generic Code and the Virtual Machine 713 Translating Generic Expressions 714 Translating Generic Methods 715 Calling Legacy Code 716 Restrictions and Limitations 717 Primitive Types 717 Runtime Type Inquiry 718 Exceptions 718 Arrays 719 Instantiation of Generic Types 719 Static Contexts 719 Clashes after Erasure 720 Inheritance Rules for Generic Types 720 Wildcard Types 721 Supertype Bounds for Wildcards 723 Unbounded Wildcards 725 Wildcard Capture 725 Reflection and Generics 729 Using Class<T> Parameters for Type Matching 729 Generic Type Information in the Virtual Machine 730 Appendix A Java Keywords 735 Appendix B Retrofitting JDK 5.0 Code 737 Enhanced for Loop 737 Generic Array Lists 737 Autoboxing 737 Variable Parameter Lists 738 Covariant Return Types 738

Core Java Static Import 738 Console Input 738 Formatted Output 739 Content Pane Delegation 739 Unicode Code Points 739 Building Strings 739 Index 741