Bart Baesens, Aimee Backiel, Stephan vanden Broucke
Beginning Java Programming
The Object-Oriented Approach
Bart Baesens, Aimee Backiel, Stephan vanden Broucke
Beginning Java Programming
The Object-Oriented Approach
- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
A comprehensive Java guide, with samples, exercises, case studies, and step-by-step instruction
Beginning Java Programming: The Object Oriented Approach is a straightforward resource for getting started with one of the world's most enduringly popular programming languages. Based on classes taught by the authors, the book starts with the basics and gradually builds into more advanced concepts. The approach utilizes an integrated development environment that allows readers to immediately apply what they learn, and includes step-by-step instruction with plenty of sample programs. Each chapter…mehr
Andere Kunden interessierten sich auch für
- Nicholas S. WilliamsProfessional Java for Web Appl64,99 €
- Jan L. HarringtonJava Programming275,99 €
- Mert CaliskanBeginning Spring38,99 €
- Anthony J. Dos ReisCompiler Construction Using Java, Javacc, and Yacc130,99 €
- David A. WattJava Collections84,99 €
- Avinash C. KakScripting with Objects138,99 €
- Jack Li GuojieProfessional Java Native Interfaces with SWT/JFace51,99 €
-
-
-
A comprehensive Java guide, with samples, exercises, case studies, and step-by-step instruction
Beginning Java Programming: The Object Oriented Approach is a straightforward resource for getting started with one of the world's most enduringly popular programming languages. Based on classes taught by the authors, the book starts with the basics and gradually builds into more advanced concepts. The approach utilizes an integrated development environment that allows readers to immediately apply what they learn, and includes step-by-step instruction with plenty of sample programs. Each chapter contains exercises based on real-world business and educational scenarios, and the final chapter uses case studies to combine several concepts and put readers' new skills to the test.
Beginning Java Programming: The Object Oriented Approach provides both the information and the tools beginners need to develop Java skills, from the general concepts of object-oriented programming. Learn to:
Understand the Java language and object-oriented concept implementation
Use Java to access and manipulate external data
Make applications accessible to users with GUIs
Streamline workflow with object-oriented patterns
The book is geared for those who want to use Java in an applied environment while learning at the same time. Useful as either a course text or a stand-alone self-study program, Beginning Java Programming is a thorough, comprehensive guide.
Beginning Java Programming: The Object Oriented Approach is a straightforward resource for getting started with one of the world's most enduringly popular programming languages. Based on classes taught by the authors, the book starts with the basics and gradually builds into more advanced concepts. The approach utilizes an integrated development environment that allows readers to immediately apply what they learn, and includes step-by-step instruction with plenty of sample programs. Each chapter contains exercises based on real-world business and educational scenarios, and the final chapter uses case studies to combine several concepts and put readers' new skills to the test.
Beginning Java Programming: The Object Oriented Approach provides both the information and the tools beginners need to develop Java skills, from the general concepts of object-oriented programming. Learn to:
Understand the Java language and object-oriented concept implementation
Use Java to access and manipulate external data
Make applications accessible to users with GUIs
Streamline workflow with object-oriented patterns
The book is geared for those who want to use Java in an applied environment while learning at the same time. Useful as either a course text or a stand-alone self-study program, Beginning Java Programming is a thorough, comprehensive guide.
Produktdetails
- Produktdetails
- Verlag: Wiley & Sons
- Artikelnr. des Verlages: 1W118739490
- 1. Auflage
- Seitenzahl: 672
- Erscheinungstermin: 2. März 2015
- Englisch
- Abmessung: 235mm x 191mm x 36mm
- Gewicht: 1105g
- ISBN-13: 9781118739495
- ISBN-10: 1118739493
- Artikelnr.: 38126364
- Verlag: Wiley & Sons
- Artikelnr. des Verlages: 1W118739490
- 1. Auflage
- Seitenzahl: 672
- Erscheinungstermin: 2. März 2015
- Englisch
- Abmessung: 235mm x 191mm x 36mm
- Gewicht: 1105g
- ISBN-13: 9781118739495
- ISBN-10: 1118739493
- Artikelnr.: 38126364
About the authors Bart Baesens is a professor at KU Leuven and a lecturer at the University of Southampton, where he teaches various programming and database management courses. Aimée Backiel is a doctoral researcher at KU Leuven. She teaches basic programming in Java to learners from diverse backgrounds. Seppe vanden Broucke is a postdoctoral researcher at KU Leuven. He uses Java daily, giving him insight into useful applications for practitioners. Visit us at wrox.com where you have access to free code samples, Programmer to Programmer forums, and discussions on the latest happenings in the industry from around the world.
INTRODUCTION xxii CHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1 The
Programming Process 2 Object-Oriented Programming: A Sneak Preview 5
Programming Errors 6 Syntax/Compilation Errors 6 Runtime Errors 6
Logic/Semantic Errors 7 Principles of Software Testing 7 Software
Maintenance 8 Adaptive Maintenance 8 Perfective Maintenance 8 Corrective
Maintenance 8 Preventive Maintenance 9 Principles of Structured Programming
9 CHAPTER 2: GETTING TO KNOW JAVA 11 A Short Java History 12 Features of
Java 13 Looking Under the Hood 13 Bytecode 14 Java Runtime Environment
(JRE) 15 Java Application Programming Interface (API) 16 Class Loader 17
Bytecode Verifier 18 Java Virtual Machine (JVM) 18 Java Platforms 19 Java
Applications 19 Standalone Applications 19 Java Applets 20 Java Servlets 20
Java Beans 21 Java Language Structure 21 Classes 22 Identifiers 22 Java
Keywords 22 Variables 23 Methods 23 Comments 24 Naming Conventions 26 Java
Data Types 27 Primitive Data Types 27 Literals 28 Operators 29 Arithmetic
Operators 29 Assignment Operators 30 Bitwise Operators 31 Logical Operators
32 Relational Operators 34 Arrays 34 Type Casting 37 Summary 40 CHAPTER 3:
SETTING UP YOUR DEVELOPMENT ENVIRONMENT 41 Integrated Development
Environments 42 Coding in Text Editors 42 Choosing an IDE 46 Eclipse 47
NetBeans 47 IntelliJ IDEA 47 Continuing with One IDE 47 Installing Eclipse
on Your Computer 48 Downloading and Installing Eclipse 48 Using Eclipse 50
CHAPTER 4: MOVING TOWARD OBJECT?]ORIENTED PROGRAMMING 61 Basic Concepts of
Object?]Oriented Programming 62 Classes and Objects in Java 63 Defining
Classes in Java 63 Creating Objects 71 Storing Data: Variables 76 Instance
Variables 76 Class Variables 80 Final Variables 82 Variable Scope 87
Defining Behavior: Methods 91 Instance Methods 91 Class Methods 94
Constructors 95 The Main Method 100 Method Argument Passing 109 Java SE
Built?]in Classes 115 Classes in the java.lang Package 115 Classes in the
java.io and java.nio Packages 117 Classes in the java.math Package 118
Classes in the java.net, java.rmi, javax.rmi, and org.omg.CORBA Packages
118 Classes in the java.awt and javax.swing Packages 118 Classes in the
java.util Package 118 Collections 119 Other Utility Classes 126 Other
Classes and Custom Libraries 127 CHAPTER 5: CONTROLLING THE FLOW OF YOUR
PROGRAM 129 Comparisons Using Operators and Methods 130 Comparing Primitive
Data Types with Comparison Operators 130 Comparing Composite Data Types
with Comparison Methods 132 Understanding Language Control 135 Creating
if-then Statements 135 Nesting if-then Statements 137 Creating for Loops
138 What Is an Enhanced for Loop? 143 Nesting for Loops 146 Creating while
Loops 148 What Is a do while Loop? 152 Comparing for and while Loops 156
Creating Switches 156 Comparing Switches and if-then Statements 161
Reviewing Keywords for Control 162 Controlling with the return Keyword 162
Controlling with the break Keyword 163 Controlling with the continue
Keyword 164 Specifying a Label for break or continue Control 164 Reviewing
Control Structures 168 CHAPTER 6: HANDLING EXCEPTIONS AND DEBUGGING 171
Recognizing Error Types 172 Identifying Syntax Errors 172 Identifying
Runtime Errors 175 Identifying Logical Errors 176 Exceptions 180 Common
Exceptions 181 Catching Exceptions 187 Debugging Your Applications 195
Using a Debugger Tool 195 Using a Logging API 200 Testing Your Applications
210 Summary 219 CHAPTER 7: DELVING FURTHER INTO OBJECT?]ORIENTED CONCEPTS
221 Annotations 222 Overloading Methods 222 The this KeyWord 224
Information Hiding 229 Access Modifiers 230 Getters 231 Setters 232 Class
Inheritance 240 The Keyword super 241 Method Overriding 243 Polymorphism
243 Static Binding 244 Dynamic Binding 244 The Superclass Object 245
Abstract Classes and Methods 246 Packages 251 Interfaces 252 Garbage
Collection 259 CHAPTER 8: HANDLING INPUT AND OUTPUT 261 General Input and
Output 262 Input and Output in Java 266 Streams 268 Byte Streams 269
Character Streams 275 Buffered Streams 276 Data and Object Streams 278
Other Streams 281 Scanners 281 Input and Output from the Command-Line 283
Input and Output from Files 290 Java NIO2 File Input and Output 291 The
Path Interface 291 The Files Class 293 Checking Existence 293 Legacy File
Input and Output 304 A Word on FileUtils 305 Conclusion 305 CHAPTER 9:
WORKING WITH DATABASES IN JAVA 307 Covering the Basics of Relational
Databases 308 Accessing Relational Databases from Java 315 Java Database
Connectivity (JDBC) 315 SQLJ 321 Ensuring Object Persistence 324 Hibernate
325 Object-Oriented Database Access from Java 341 Comparing Java Database
Access Technologies 343 What's Ahead 344 CHAPTER 10: ACCESSING WEB SOURCES
347 A Brief Introduction to Networking 348 Web Services 360 RPC and RMI 360
SOAP 364 REST 366 Accessing Web Services and Sources with Java 368
Accessing SOAP Services 368 Installing JAX?]WS 368 Accessing SOAP Services
with JAX?]WS Without WSDL 369 Accessing SOAP Services with JAX?]WS with
WSDL 395 Accessing REST Services 406 Accessing REST Services Without
Authentication 408 Accessing REST Services with Authentication 421 Screen
Scraping 449 Screen Scraping Without Cookies 451 Screen Scraping with
Cookies 453 Creating Your Own Web Services with Java 457 Setting Up an HTTP
Server 457 Providing REST Services 461 CHAPTER 11: DESIGNING GRAPHICAL
INTERFACES 463 Covering the Basics of GUIs in Java 464 Highlighting the
Built?]In GUI Libraries 464 Abstract Window Toolkit (AWT) 464 Swing 464
Standard Widget Toolkit (SWT) 465 JavaFX 465 Other Toolkits and Libraries
466 Choosing a GUI Library 466 Building with Containers and Components 467
Looking at the Full Picture 472 Comparing Layout Managers 473 FlowLayout
474 BorderLayout 476 GridLayout 478 GridBagLayout 482 CardLayout 486
BoxLayout 489 GroupLayout and SpringLayout 493 Absolute Positioning (No
Layout Manager) 494 Understanding Events 496 Introduction to Events 496
Event Listeners 497 On Threading and Swing 514 Closing Topics 524 Best
Practices: Keeping Looks and Logic Separated 524 Let's Draw: Defining
Custom Draw Behavior 525 Visual GUI Designers: Making Life Easy? 540
JavaFX: The Road Ahead? 545 CHAPTER 12: USING OBJECT?]ORIENTED PATTERNS 557
Introduction to Patterns 558 Object?]Oriented Patterns 558 Creational
Patterns 559 Singleton Pattern and Static Utility Class 559 Service
Provider Pattern and Null Object Pattern 565 (Abstract) Factory Pattern 566
Structural Patterns 568 Adapter Pattern 568 Bridge Pattern 570 Decorator
Pattern 571 Facade Pattern 574 Composite Pattern 575 Type Pattern and Role
Pattern 583 Behavioral Patterns 591 Chain?]of?]Responsibility Pattern 591
Observer Pattern and Model?]View?]Controller Pattern 592 Iterator Pattern
605 Visitor Pattern 607 Template Method Pattern 610 Strategy Pattern 612
Helpful Libraries 614 Apache Commons 614 Google Guava 615 Trove 615 Colt
615 Lombok 616 OpenCSV 616 HTML and JSON Libraries 616 Hibernate and Other
JPA?]Compliant Libraries 617 Joda?]Time 617 Charting Libraries 617 3D
Graphics Libraries 617 Financial Libraries 618 INDEX 619
Programming Process 2 Object-Oriented Programming: A Sneak Preview 5
Programming Errors 6 Syntax/Compilation Errors 6 Runtime Errors 6
Logic/Semantic Errors 7 Principles of Software Testing 7 Software
Maintenance 8 Adaptive Maintenance 8 Perfective Maintenance 8 Corrective
Maintenance 8 Preventive Maintenance 9 Principles of Structured Programming
9 CHAPTER 2: GETTING TO KNOW JAVA 11 A Short Java History 12 Features of
Java 13 Looking Under the Hood 13 Bytecode 14 Java Runtime Environment
(JRE) 15 Java Application Programming Interface (API) 16 Class Loader 17
Bytecode Verifier 18 Java Virtual Machine (JVM) 18 Java Platforms 19 Java
Applications 19 Standalone Applications 19 Java Applets 20 Java Servlets 20
Java Beans 21 Java Language Structure 21 Classes 22 Identifiers 22 Java
Keywords 22 Variables 23 Methods 23 Comments 24 Naming Conventions 26 Java
Data Types 27 Primitive Data Types 27 Literals 28 Operators 29 Arithmetic
Operators 29 Assignment Operators 30 Bitwise Operators 31 Logical Operators
32 Relational Operators 34 Arrays 34 Type Casting 37 Summary 40 CHAPTER 3:
SETTING UP YOUR DEVELOPMENT ENVIRONMENT 41 Integrated Development
Environments 42 Coding in Text Editors 42 Choosing an IDE 46 Eclipse 47
NetBeans 47 IntelliJ IDEA 47 Continuing with One IDE 47 Installing Eclipse
on Your Computer 48 Downloading and Installing Eclipse 48 Using Eclipse 50
CHAPTER 4: MOVING TOWARD OBJECT?]ORIENTED PROGRAMMING 61 Basic Concepts of
Object?]Oriented Programming 62 Classes and Objects in Java 63 Defining
Classes in Java 63 Creating Objects 71 Storing Data: Variables 76 Instance
Variables 76 Class Variables 80 Final Variables 82 Variable Scope 87
Defining Behavior: Methods 91 Instance Methods 91 Class Methods 94
Constructors 95 The Main Method 100 Method Argument Passing 109 Java SE
Built?]in Classes 115 Classes in the java.lang Package 115 Classes in the
java.io and java.nio Packages 117 Classes in the java.math Package 118
Classes in the java.net, java.rmi, javax.rmi, and org.omg.CORBA Packages
118 Classes in the java.awt and javax.swing Packages 118 Classes in the
java.util Package 118 Collections 119 Other Utility Classes 126 Other
Classes and Custom Libraries 127 CHAPTER 5: CONTROLLING THE FLOW OF YOUR
PROGRAM 129 Comparisons Using Operators and Methods 130 Comparing Primitive
Data Types with Comparison Operators 130 Comparing Composite Data Types
with Comparison Methods 132 Understanding Language Control 135 Creating
if-then Statements 135 Nesting if-then Statements 137 Creating for Loops
138 What Is an Enhanced for Loop? 143 Nesting for Loops 146 Creating while
Loops 148 What Is a do while Loop? 152 Comparing for and while Loops 156
Creating Switches 156 Comparing Switches and if-then Statements 161
Reviewing Keywords for Control 162 Controlling with the return Keyword 162
Controlling with the break Keyword 163 Controlling with the continue
Keyword 164 Specifying a Label for break or continue Control 164 Reviewing
Control Structures 168 CHAPTER 6: HANDLING EXCEPTIONS AND DEBUGGING 171
Recognizing Error Types 172 Identifying Syntax Errors 172 Identifying
Runtime Errors 175 Identifying Logical Errors 176 Exceptions 180 Common
Exceptions 181 Catching Exceptions 187 Debugging Your Applications 195
Using a Debugger Tool 195 Using a Logging API 200 Testing Your Applications
210 Summary 219 CHAPTER 7: DELVING FURTHER INTO OBJECT?]ORIENTED CONCEPTS
221 Annotations 222 Overloading Methods 222 The this KeyWord 224
Information Hiding 229 Access Modifiers 230 Getters 231 Setters 232 Class
Inheritance 240 The Keyword super 241 Method Overriding 243 Polymorphism
243 Static Binding 244 Dynamic Binding 244 The Superclass Object 245
Abstract Classes and Methods 246 Packages 251 Interfaces 252 Garbage
Collection 259 CHAPTER 8: HANDLING INPUT AND OUTPUT 261 General Input and
Output 262 Input and Output in Java 266 Streams 268 Byte Streams 269
Character Streams 275 Buffered Streams 276 Data and Object Streams 278
Other Streams 281 Scanners 281 Input and Output from the Command-Line 283
Input and Output from Files 290 Java NIO2 File Input and Output 291 The
Path Interface 291 The Files Class 293 Checking Existence 293 Legacy File
Input and Output 304 A Word on FileUtils 305 Conclusion 305 CHAPTER 9:
WORKING WITH DATABASES IN JAVA 307 Covering the Basics of Relational
Databases 308 Accessing Relational Databases from Java 315 Java Database
Connectivity (JDBC) 315 SQLJ 321 Ensuring Object Persistence 324 Hibernate
325 Object-Oriented Database Access from Java 341 Comparing Java Database
Access Technologies 343 What's Ahead 344 CHAPTER 10: ACCESSING WEB SOURCES
347 A Brief Introduction to Networking 348 Web Services 360 RPC and RMI 360
SOAP 364 REST 366 Accessing Web Services and Sources with Java 368
Accessing SOAP Services 368 Installing JAX?]WS 368 Accessing SOAP Services
with JAX?]WS Without WSDL 369 Accessing SOAP Services with JAX?]WS with
WSDL 395 Accessing REST Services 406 Accessing REST Services Without
Authentication 408 Accessing REST Services with Authentication 421 Screen
Scraping 449 Screen Scraping Without Cookies 451 Screen Scraping with
Cookies 453 Creating Your Own Web Services with Java 457 Setting Up an HTTP
Server 457 Providing REST Services 461 CHAPTER 11: DESIGNING GRAPHICAL
INTERFACES 463 Covering the Basics of GUIs in Java 464 Highlighting the
Built?]In GUI Libraries 464 Abstract Window Toolkit (AWT) 464 Swing 464
Standard Widget Toolkit (SWT) 465 JavaFX 465 Other Toolkits and Libraries
466 Choosing a GUI Library 466 Building with Containers and Components 467
Looking at the Full Picture 472 Comparing Layout Managers 473 FlowLayout
474 BorderLayout 476 GridLayout 478 GridBagLayout 482 CardLayout 486
BoxLayout 489 GroupLayout and SpringLayout 493 Absolute Positioning (No
Layout Manager) 494 Understanding Events 496 Introduction to Events 496
Event Listeners 497 On Threading and Swing 514 Closing Topics 524 Best
Practices: Keeping Looks and Logic Separated 524 Let's Draw: Defining
Custom Draw Behavior 525 Visual GUI Designers: Making Life Easy? 540
JavaFX: The Road Ahead? 545 CHAPTER 12: USING OBJECT?]ORIENTED PATTERNS 557
Introduction to Patterns 558 Object?]Oriented Patterns 558 Creational
Patterns 559 Singleton Pattern and Static Utility Class 559 Service
Provider Pattern and Null Object Pattern 565 (Abstract) Factory Pattern 566
Structural Patterns 568 Adapter Pattern 568 Bridge Pattern 570 Decorator
Pattern 571 Facade Pattern 574 Composite Pattern 575 Type Pattern and Role
Pattern 583 Behavioral Patterns 591 Chain?]of?]Responsibility Pattern 591
Observer Pattern and Model?]View?]Controller Pattern 592 Iterator Pattern
605 Visitor Pattern 607 Template Method Pattern 610 Strategy Pattern 612
Helpful Libraries 614 Apache Commons 614 Google Guava 615 Trove 615 Colt
615 Lombok 616 OpenCSV 616 HTML and JSON Libraries 616 Hibernate and Other
JPA?]Compliant Libraries 617 Joda?]Time 617 Charting Libraries 617 3D
Graphics Libraries 617 Financial Libraries 618 INDEX 619
INTRODUCTION xxii CHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1 The
Programming Process 2 Object-Oriented Programming: A Sneak Preview 5
Programming Errors 6 Syntax/Compilation Errors 6 Runtime Errors 6
Logic/Semantic Errors 7 Principles of Software Testing 7 Software
Maintenance 8 Adaptive Maintenance 8 Perfective Maintenance 8 Corrective
Maintenance 8 Preventive Maintenance 9 Principles of Structured Programming
9 CHAPTER 2: GETTING TO KNOW JAVA 11 A Short Java History 12 Features of
Java 13 Looking Under the Hood 13 Bytecode 14 Java Runtime Environment
(JRE) 15 Java Application Programming Interface (API) 16 Class Loader 17
Bytecode Verifier 18 Java Virtual Machine (JVM) 18 Java Platforms 19 Java
Applications 19 Standalone Applications 19 Java Applets 20 Java Servlets 20
Java Beans 21 Java Language Structure 21 Classes 22 Identifiers 22 Java
Keywords 22 Variables 23 Methods 23 Comments 24 Naming Conventions 26 Java
Data Types 27 Primitive Data Types 27 Literals 28 Operators 29 Arithmetic
Operators 29 Assignment Operators 30 Bitwise Operators 31 Logical Operators
32 Relational Operators 34 Arrays 34 Type Casting 37 Summary 40 CHAPTER 3:
SETTING UP YOUR DEVELOPMENT ENVIRONMENT 41 Integrated Development
Environments 42 Coding in Text Editors 42 Choosing an IDE 46 Eclipse 47
NetBeans 47 IntelliJ IDEA 47 Continuing with One IDE 47 Installing Eclipse
on Your Computer 48 Downloading and Installing Eclipse 48 Using Eclipse 50
CHAPTER 4: MOVING TOWARD OBJECT?]ORIENTED PROGRAMMING 61 Basic Concepts of
Object?]Oriented Programming 62 Classes and Objects in Java 63 Defining
Classes in Java 63 Creating Objects 71 Storing Data: Variables 76 Instance
Variables 76 Class Variables 80 Final Variables 82 Variable Scope 87
Defining Behavior: Methods 91 Instance Methods 91 Class Methods 94
Constructors 95 The Main Method 100 Method Argument Passing 109 Java SE
Built?]in Classes 115 Classes in the java.lang Package 115 Classes in the
java.io and java.nio Packages 117 Classes in the java.math Package 118
Classes in the java.net, java.rmi, javax.rmi, and org.omg.CORBA Packages
118 Classes in the java.awt and javax.swing Packages 118 Classes in the
java.util Package 118 Collections 119 Other Utility Classes 126 Other
Classes and Custom Libraries 127 CHAPTER 5: CONTROLLING THE FLOW OF YOUR
PROGRAM 129 Comparisons Using Operators and Methods 130 Comparing Primitive
Data Types with Comparison Operators 130 Comparing Composite Data Types
with Comparison Methods 132 Understanding Language Control 135 Creating
if-then Statements 135 Nesting if-then Statements 137 Creating for Loops
138 What Is an Enhanced for Loop? 143 Nesting for Loops 146 Creating while
Loops 148 What Is a do while Loop? 152 Comparing for and while Loops 156
Creating Switches 156 Comparing Switches and if-then Statements 161
Reviewing Keywords for Control 162 Controlling with the return Keyword 162
Controlling with the break Keyword 163 Controlling with the continue
Keyword 164 Specifying a Label for break or continue Control 164 Reviewing
Control Structures 168 CHAPTER 6: HANDLING EXCEPTIONS AND DEBUGGING 171
Recognizing Error Types 172 Identifying Syntax Errors 172 Identifying
Runtime Errors 175 Identifying Logical Errors 176 Exceptions 180 Common
Exceptions 181 Catching Exceptions 187 Debugging Your Applications 195
Using a Debugger Tool 195 Using a Logging API 200 Testing Your Applications
210 Summary 219 CHAPTER 7: DELVING FURTHER INTO OBJECT?]ORIENTED CONCEPTS
221 Annotations 222 Overloading Methods 222 The this KeyWord 224
Information Hiding 229 Access Modifiers 230 Getters 231 Setters 232 Class
Inheritance 240 The Keyword super 241 Method Overriding 243 Polymorphism
243 Static Binding 244 Dynamic Binding 244 The Superclass Object 245
Abstract Classes and Methods 246 Packages 251 Interfaces 252 Garbage
Collection 259 CHAPTER 8: HANDLING INPUT AND OUTPUT 261 General Input and
Output 262 Input and Output in Java 266 Streams 268 Byte Streams 269
Character Streams 275 Buffered Streams 276 Data and Object Streams 278
Other Streams 281 Scanners 281 Input and Output from the Command-Line 283
Input and Output from Files 290 Java NIO2 File Input and Output 291 The
Path Interface 291 The Files Class 293 Checking Existence 293 Legacy File
Input and Output 304 A Word on FileUtils 305 Conclusion 305 CHAPTER 9:
WORKING WITH DATABASES IN JAVA 307 Covering the Basics of Relational
Databases 308 Accessing Relational Databases from Java 315 Java Database
Connectivity (JDBC) 315 SQLJ 321 Ensuring Object Persistence 324 Hibernate
325 Object-Oriented Database Access from Java 341 Comparing Java Database
Access Technologies 343 What's Ahead 344 CHAPTER 10: ACCESSING WEB SOURCES
347 A Brief Introduction to Networking 348 Web Services 360 RPC and RMI 360
SOAP 364 REST 366 Accessing Web Services and Sources with Java 368
Accessing SOAP Services 368 Installing JAX?]WS 368 Accessing SOAP Services
with JAX?]WS Without WSDL 369 Accessing SOAP Services with JAX?]WS with
WSDL 395 Accessing REST Services 406 Accessing REST Services Without
Authentication 408 Accessing REST Services with Authentication 421 Screen
Scraping 449 Screen Scraping Without Cookies 451 Screen Scraping with
Cookies 453 Creating Your Own Web Services with Java 457 Setting Up an HTTP
Server 457 Providing REST Services 461 CHAPTER 11: DESIGNING GRAPHICAL
INTERFACES 463 Covering the Basics of GUIs in Java 464 Highlighting the
Built?]In GUI Libraries 464 Abstract Window Toolkit (AWT) 464 Swing 464
Standard Widget Toolkit (SWT) 465 JavaFX 465 Other Toolkits and Libraries
466 Choosing a GUI Library 466 Building with Containers and Components 467
Looking at the Full Picture 472 Comparing Layout Managers 473 FlowLayout
474 BorderLayout 476 GridLayout 478 GridBagLayout 482 CardLayout 486
BoxLayout 489 GroupLayout and SpringLayout 493 Absolute Positioning (No
Layout Manager) 494 Understanding Events 496 Introduction to Events 496
Event Listeners 497 On Threading and Swing 514 Closing Topics 524 Best
Practices: Keeping Looks and Logic Separated 524 Let's Draw: Defining
Custom Draw Behavior 525 Visual GUI Designers: Making Life Easy? 540
JavaFX: The Road Ahead? 545 CHAPTER 12: USING OBJECT?]ORIENTED PATTERNS 557
Introduction to Patterns 558 Object?]Oriented Patterns 558 Creational
Patterns 559 Singleton Pattern and Static Utility Class 559 Service
Provider Pattern and Null Object Pattern 565 (Abstract) Factory Pattern 566
Structural Patterns 568 Adapter Pattern 568 Bridge Pattern 570 Decorator
Pattern 571 Facade Pattern 574 Composite Pattern 575 Type Pattern and Role
Pattern 583 Behavioral Patterns 591 Chain?]of?]Responsibility Pattern 591
Observer Pattern and Model?]View?]Controller Pattern 592 Iterator Pattern
605 Visitor Pattern 607 Template Method Pattern 610 Strategy Pattern 612
Helpful Libraries 614 Apache Commons 614 Google Guava 615 Trove 615 Colt
615 Lombok 616 OpenCSV 616 HTML and JSON Libraries 616 Hibernate and Other
JPA?]Compliant Libraries 617 Joda?]Time 617 Charting Libraries 617 3D
Graphics Libraries 617 Financial Libraries 618 INDEX 619
Programming Process 2 Object-Oriented Programming: A Sneak Preview 5
Programming Errors 6 Syntax/Compilation Errors 6 Runtime Errors 6
Logic/Semantic Errors 7 Principles of Software Testing 7 Software
Maintenance 8 Adaptive Maintenance 8 Perfective Maintenance 8 Corrective
Maintenance 8 Preventive Maintenance 9 Principles of Structured Programming
9 CHAPTER 2: GETTING TO KNOW JAVA 11 A Short Java History 12 Features of
Java 13 Looking Under the Hood 13 Bytecode 14 Java Runtime Environment
(JRE) 15 Java Application Programming Interface (API) 16 Class Loader 17
Bytecode Verifier 18 Java Virtual Machine (JVM) 18 Java Platforms 19 Java
Applications 19 Standalone Applications 19 Java Applets 20 Java Servlets 20
Java Beans 21 Java Language Structure 21 Classes 22 Identifiers 22 Java
Keywords 22 Variables 23 Methods 23 Comments 24 Naming Conventions 26 Java
Data Types 27 Primitive Data Types 27 Literals 28 Operators 29 Arithmetic
Operators 29 Assignment Operators 30 Bitwise Operators 31 Logical Operators
32 Relational Operators 34 Arrays 34 Type Casting 37 Summary 40 CHAPTER 3:
SETTING UP YOUR DEVELOPMENT ENVIRONMENT 41 Integrated Development
Environments 42 Coding in Text Editors 42 Choosing an IDE 46 Eclipse 47
NetBeans 47 IntelliJ IDEA 47 Continuing with One IDE 47 Installing Eclipse
on Your Computer 48 Downloading and Installing Eclipse 48 Using Eclipse 50
CHAPTER 4: MOVING TOWARD OBJECT?]ORIENTED PROGRAMMING 61 Basic Concepts of
Object?]Oriented Programming 62 Classes and Objects in Java 63 Defining
Classes in Java 63 Creating Objects 71 Storing Data: Variables 76 Instance
Variables 76 Class Variables 80 Final Variables 82 Variable Scope 87
Defining Behavior: Methods 91 Instance Methods 91 Class Methods 94
Constructors 95 The Main Method 100 Method Argument Passing 109 Java SE
Built?]in Classes 115 Classes in the java.lang Package 115 Classes in the
java.io and java.nio Packages 117 Classes in the java.math Package 118
Classes in the java.net, java.rmi, javax.rmi, and org.omg.CORBA Packages
118 Classes in the java.awt and javax.swing Packages 118 Classes in the
java.util Package 118 Collections 119 Other Utility Classes 126 Other
Classes and Custom Libraries 127 CHAPTER 5: CONTROLLING THE FLOW OF YOUR
PROGRAM 129 Comparisons Using Operators and Methods 130 Comparing Primitive
Data Types with Comparison Operators 130 Comparing Composite Data Types
with Comparison Methods 132 Understanding Language Control 135 Creating
if-then Statements 135 Nesting if-then Statements 137 Creating for Loops
138 What Is an Enhanced for Loop? 143 Nesting for Loops 146 Creating while
Loops 148 What Is a do while Loop? 152 Comparing for and while Loops 156
Creating Switches 156 Comparing Switches and if-then Statements 161
Reviewing Keywords for Control 162 Controlling with the return Keyword 162
Controlling with the break Keyword 163 Controlling with the continue
Keyword 164 Specifying a Label for break or continue Control 164 Reviewing
Control Structures 168 CHAPTER 6: HANDLING EXCEPTIONS AND DEBUGGING 171
Recognizing Error Types 172 Identifying Syntax Errors 172 Identifying
Runtime Errors 175 Identifying Logical Errors 176 Exceptions 180 Common
Exceptions 181 Catching Exceptions 187 Debugging Your Applications 195
Using a Debugger Tool 195 Using a Logging API 200 Testing Your Applications
210 Summary 219 CHAPTER 7: DELVING FURTHER INTO OBJECT?]ORIENTED CONCEPTS
221 Annotations 222 Overloading Methods 222 The this KeyWord 224
Information Hiding 229 Access Modifiers 230 Getters 231 Setters 232 Class
Inheritance 240 The Keyword super 241 Method Overriding 243 Polymorphism
243 Static Binding 244 Dynamic Binding 244 The Superclass Object 245
Abstract Classes and Methods 246 Packages 251 Interfaces 252 Garbage
Collection 259 CHAPTER 8: HANDLING INPUT AND OUTPUT 261 General Input and
Output 262 Input and Output in Java 266 Streams 268 Byte Streams 269
Character Streams 275 Buffered Streams 276 Data and Object Streams 278
Other Streams 281 Scanners 281 Input and Output from the Command-Line 283
Input and Output from Files 290 Java NIO2 File Input and Output 291 The
Path Interface 291 The Files Class 293 Checking Existence 293 Legacy File
Input and Output 304 A Word on FileUtils 305 Conclusion 305 CHAPTER 9:
WORKING WITH DATABASES IN JAVA 307 Covering the Basics of Relational
Databases 308 Accessing Relational Databases from Java 315 Java Database
Connectivity (JDBC) 315 SQLJ 321 Ensuring Object Persistence 324 Hibernate
325 Object-Oriented Database Access from Java 341 Comparing Java Database
Access Technologies 343 What's Ahead 344 CHAPTER 10: ACCESSING WEB SOURCES
347 A Brief Introduction to Networking 348 Web Services 360 RPC and RMI 360
SOAP 364 REST 366 Accessing Web Services and Sources with Java 368
Accessing SOAP Services 368 Installing JAX?]WS 368 Accessing SOAP Services
with JAX?]WS Without WSDL 369 Accessing SOAP Services with JAX?]WS with
WSDL 395 Accessing REST Services 406 Accessing REST Services Without
Authentication 408 Accessing REST Services with Authentication 421 Screen
Scraping 449 Screen Scraping Without Cookies 451 Screen Scraping with
Cookies 453 Creating Your Own Web Services with Java 457 Setting Up an HTTP
Server 457 Providing REST Services 461 CHAPTER 11: DESIGNING GRAPHICAL
INTERFACES 463 Covering the Basics of GUIs in Java 464 Highlighting the
Built?]In GUI Libraries 464 Abstract Window Toolkit (AWT) 464 Swing 464
Standard Widget Toolkit (SWT) 465 JavaFX 465 Other Toolkits and Libraries
466 Choosing a GUI Library 466 Building with Containers and Components 467
Looking at the Full Picture 472 Comparing Layout Managers 473 FlowLayout
474 BorderLayout 476 GridLayout 478 GridBagLayout 482 CardLayout 486
BoxLayout 489 GroupLayout and SpringLayout 493 Absolute Positioning (No
Layout Manager) 494 Understanding Events 496 Introduction to Events 496
Event Listeners 497 On Threading and Swing 514 Closing Topics 524 Best
Practices: Keeping Looks and Logic Separated 524 Let's Draw: Defining
Custom Draw Behavior 525 Visual GUI Designers: Making Life Easy? 540
JavaFX: The Road Ahead? 545 CHAPTER 12: USING OBJECT?]ORIENTED PATTERNS 557
Introduction to Patterns 558 Object?]Oriented Patterns 558 Creational
Patterns 559 Singleton Pattern and Static Utility Class 559 Service
Provider Pattern and Null Object Pattern 565 (Abstract) Factory Pattern 566
Structural Patterns 568 Adapter Pattern 568 Bridge Pattern 570 Decorator
Pattern 571 Facade Pattern 574 Composite Pattern 575 Type Pattern and Role
Pattern 583 Behavioral Patterns 591 Chain?]of?]Responsibility Pattern 591
Observer Pattern and Model?]View?]Controller Pattern 592 Iterator Pattern
605 Visitor Pattern 607 Template Method Pattern 610 Strategy Pattern 612
Helpful Libraries 614 Apache Commons 614 Google Guava 615 Trove 615 Colt
615 Lombok 616 OpenCSV 616 HTML and JSON Libraries 616 Hibernate and Other
JPA?]Compliant Libraries 617 Joda?]Time 617 Charting Libraries 617 3D
Graphics Libraries 617 Financial Libraries 618 INDEX 619