Java How to program Early Object, 11th Edition PDF by Paul Deitel and Harvey Deitel

By

Java How to program Early Object, Eleventh Edition

By Paul Deitel and Harvey Deitel

Java How to program Early Object, Eleventh Edition

Contents:

Foreword 25

Preface 27

Before You Begin 47

1 Introduction to Computers, the Internet and Java 53

1.1 Introduction 54

1.2 Hardware and Software 56

1.2.1 Moore’s Law 56

1.2.2 Computer Organization 57

1.3 Data Hierarchy 59

1.4 Machine Languages, Assembly Languages and High-Level Languages 61

1.5 Introduction to Object Technology 62

1.5.1 Automobile as an Object 63

1.5.2 Methods and Classes 63

1.5.3 Instantiation 63

1.5.4 Reuse 63

1.5.5 Messages and Methopd Calls 64

1.5.6 Attributes and Instance Variables 64

1.5.7 Encapsulation and Information Hiding 64

1.5.8 Inheritance 64

1.5.9 Interfaces 65

1.5.10 Object-Oriented Analysis and Design (OOAD) 65

1.5.11 The UML (Unified Modeling Language) 65

1.6 Operating Systems 66

1.6.1 Windows—A Proprietary Operating System 66

1.6.2 Linux—An Open-Source Operating System 66

1.6.3 Apple’s macOS and Apple’s iOS for iPhone®, iPad®

and iPod Touch® Devices 67

1.6.4 Google’s Android 67

1.7 Programming Languages 68

1.8 Java 70

1.9 A Typical Java Development Environment 71

1.10 Test-Driving a Java Application 74

1.11 Internet and World Wide Web 78

1.11.1 Internet: A Network of Networks 79

1.11.2 World Wide Web: Making the Internet User-Friendly 79

1.11.3 Web Services and Mashups 79

1.11.4 Internet of Things 80

1.12 Software Technologies 81

1.13 Getting Your Questions Answered 83

2 Introduction to Java Applications;

Input/Output and Operators 87

2.1 Introduction 88

2.2 Your First Program in Java: Printing a Line of Text 88

2.2.1 Compiling the Application 92

2.2.2 Executing the Application 93

2.3 Modifying Your First Java Program 94

2.4 Displaying Text with printf 96

2.5 Another Application: Adding Integers 97

2.5.1 import Declarations 98

2.5.2 Declaring and Creating a Scanner to Obtain User Input from

the Keyboard 98

2.5.3 Prompting the User for Input 99

2.5.4 Declaring a Variable to Store an Integer and Obtaining an

Integer from the Keyboard 99

2.5.5 Obtaining a Second Integer 100

2.5.6 Using Variables in a Calculation 100

2.5.7 Displaying the Calculation Result 100

2.5.8 Java API Documentation 101

2.5.9 Declaring and Initializing Variables in Separate Statements 101

2.6 Memory Concepts 101

2.7 Arithmetic 102

2.8 Decision Making: Equality and Relational Operators 106

2.9 Wrap-Up 109

3 Introduction to Classes, Objects, Methods

and Strings 120

3.1 Introduction 121

3.2 Instance Variables, set Methods and get Methods 122

3.2.1 Account Class with an Instance Variable, and set and get Methods 122

3.2.2 AccountTest Class That Creates and Uses an Object of

Class Account 125

3.2.3 Compiling and Executing an App with Multiple Classes 128

3.2.4 Account UML Class Diagram 128

3.2.5 Additional Notes on Class AccountTest 130

3.2.6 Software Engineering with private Instance Variables and

public set and get Methods 130

3.3 Account Class: Initializing Objects with Constructors 131

3.3.1 Declaring an Account Constructor for Custom Object Initialization 132

3.3.2 Class AccountTest: Initializing Account Objects When

They’re Created 133

3.4 Account Class with a Balance; Floating-Point Numbers 134

3.4.1 Account Class with a balance Instance Variable of Type double 135

3.4.2 AccountTest Class to Use Class Account 137

3.5 Primitive Types vs. Reference Types 140

3.6 (Optional) GUI and Graphics Case Study: A Simple GUI 140

3.6.1 What Is a Graphical User Interface? 142

3.6.2 JavaFX Scene Builder and FXML 142

3.6.3 Welcome App—Displaying Text and an Image 142

3.6.4 Opening Scene Builder and Creating the File Welcome.fxml 142

3.6.5 Adding an Image to the Folder Containing Welcome.fxml 144

3.6.6 Creating a VBox Layout Container 144

3.6.7 Configuring the VBox 144

3.6.8 Adding and Configuring a Label 144

3.6.9 Adding and Configuring an ImageView 146

3.6.10 Previewing the Welcome GUI 147

3.7 Wrap-Up 148

4 Control Statements: Part 1; Assignment, ++

and — Operators 156

4.1 Introduction 157

4.2 Algorithms 157

4.3 Pseudocode 158

4.4 Control Structures 158

4.4.1 Sequence Structure in Java 159

4.4.2 Selection Statements in Java 160

4.4.3 Iteration Statements in Java 160

4.4.4 Summary of Control Statements in Java 160

4.5 if Single-Selection Statement 161

4.6 if…else Double-Selection Statement 162

4.6.1 Nested if…else Statements 163

4.6.2 Dangling-else Problem 164

4.6.3 Blocks 164

4.6.4 Conditional Operator (?:) 165

4.7 Student Class: Nested if…else Statements 165

4.8 while Iteration Statement 168

4.9 Formulating Algorithms: Counter-Controlled Iteration 170

6.4 Methods with Multiple Parameters 269

6.5 Notes on Declaring and Using Methods 273

6.6 Method-Call Stack and Activation Records 274

6.6.1 Method-Call Stack 274

6.6.2 Stack Frames 274

6.6.3 Local Variables and Stack Frames 274

6.6.4 Stack Overflow 275

6.7 Argument Promotion and Casting 275

6.8 Java API Packages 276

6.9 Case Study: Secure Random-Number Generation 278

6.10 Case Study: A Game of Chance; Introducing enum Types 283

6.11 Scope of Declarations 288

6.12 Method Overloading 290

6.12.1 Declaring Overloaded Methods 290

6.12.2 Distinguishing Between Overloaded Methods 291

6.12.3 Return Types of Overloaded Methods 292

6.13 (Optional) GUI and Graphics Case Study: Colors and Filled Shapes 292

6.14Wrap-Up 295

7 Arrays and ArrayLists 309

7.1 Introduction 310

7.2 Arrays 311

7.3 Declaring and Creating Arrays 312

7.4 Examples Using Arrays 314

7.4.1 Creating and Initializing an Array 314

7.4.2 Using an Array Initializer 315

7.4.3 Calculating the Values to Store in an Array 316

7.4.4 Summing the Elements of an Array 317

7.4.5 Using Bar Charts to Display Array Data Graphically 317

7.4.6 Using the Elements of an Array as Counters 319

7.4.7 Using Arrays to Analyze Survey Results 320

7.5 Exception Handling: Processing the Incorrect Response 322

7.5.1 The try Statement 322

7.5.2 Executing the catch Block 322

7.5.3 toString Method of the Exception Parameter 323

7.6 Case Study: Card Shuffling and Dealing Simulation 323

7.7 Enhanced for Statement 328

7.8 Passing Arrays to Methods 329

7.9 Pass-By-Value vs. Pass-By-Reference 331

7.10 Case Study: Class GradeBook Using an Array to Store Grades 332

7.11 Multidimensional Arrays 337

7.11.1 Arrays of One-Dimensional Arrays 338

7.11.2 Two-Dimensional Arrays with Rows of Different Lengths 338

7.11.3 Creating Two-Dimensional Arrays with Array-Creation

Expressions 339

7.11.4 Two-Dimensional Array Example: Displaying Element Values 339

7.11.5 Common Multidimensional-Array Manipulations Performed

with for Statements 340

7.12 Case Study: Class GradeBook Using a Two-Dimensional Array 341

7.13 Variable-Length Argument Lists 347

7.14 Using Command-Line Arguments 348

7.15 Class Arrays 350

7.16 Introduction to Collections and Class ArrayList 353

7.17 (Optional) GUI and Graphics Case Study: Drawing Arcs 357

7.18 Wrap-Up 360

8 Classes and Objects: A Deeper Look 381

8.1 Introduction 382

8.2 Time Class Case Study 382

8.3 Controlling Access to Members 387

8.4 Referring to the Current Object’s Members with the this Reference 388

8.5 Time Class Case Study: Overloaded Constructors 390

8.6 Default and No-Argument Constructors 395

8.7 Notes on Set and Get Methods 396

8.8 Composition 397

8.9 enum Types 400

8.10 Garbage Collection 403

8.11 static Class Members 403

8.12 static Import 407

8.13 final Instance Variables 408

8.14 Package Access 409

8.15 Using BigDecimal for Precise Monetary Calculations 410

8.16 (Optional) GUI and Graphics Case Study: Using Objects with Graphics 413

8.17Wrap-Up 417

9 Object-Oriented Programming: Inheritance 425

9.1 Introduction 426

9.2 Superclasses and Subclasses 427

9.3 protected Members 429

9.4 Relationship Between Superclasses and Subclasses 430

9.4.1 Creating and Using a CommissionEmployee Class 430

9.4.2 Creating and Using a BasePlusCommissionEmployee Class 435

9.4.3 Creating a CommissionEmployee–BasePlusCommissionEmployee

Inheritance Hierarchy 440

9.4.4 CommissionEmployee–BasePlusCommissionEmployee

Inheritance Hierarchy Using protected Instance Variables 443

9.4.5 CommissionEmployee–BasePlusCommissionEmployee Inheritance

Hierarchy Using private Instance Variables 446

9.5 Constructors in Subclasses 450

9.6 Class Object 451

9.7 Designing with Composition vs. Inheritance 452

9.8 Wrap-Up 454

10 Object-Oriented Programming: Polymorphism

and Interfaces 459

10.1 Introduction 460

10.2 Polymorphism Examples 462

10.3 Demonstrating Polymorphic Behavior 463

10.4 Abstract Classes and Methods 465

10.5 Case Study: Payroll System Using Polymorphism 468

10.5.1 Abstract Superclass Employee 469

10.5.2 Concrete Subclass SalariedEmployee 471

10.5.3 Concrete Subclass HourlyEmployee 473

10.5.4 Concrete Subclass CommissionEmployee 474

10.5.5 Indirect Concrete Subclass BasePlusCommissionEmployee 476

10.5.6 Polymorphic Processing, Operator instanceof and Downcasting 477

10.6 Allowed Assignments Between Superclass and Subclass Variables 482

10.7 final Methods and Classes 482

10.8 A Deeper Explanation of Issues with Calling Methods from Constructors 483

10.9 Creating and Using Interfaces 484

10.9.1 Developing a Payable Hierarchy 486

10.9.2 Interface Payable 487

10.9.3 Class Invoice 487

10.9.4 Modifying Class Employee to Implement Interface Payable 489

10.9.5 Using Interface Payable to Process Invoices and Employees

Polymorphically 491

10.9.6 Some Common Interfaces of the Java API 492

10.10 Java SE 8 Interface Enhancements 493

10.10.1 default Interface Methods 493

10.10.2 static Interface Methods 494

10.10.3 Functional Interfaces 494

10.11 Java SE 9 private Interface Methods 495

10.12 private Constructors 495

10.13 Program to an Interface, Not an Implementation 496

10.13.1 Implementation Inheritance Is Best for Small Numbers of

Tightly Coupled Classes 496

10.13.2 Interface Inheritance Is Best for Flexibility 496

10.13.3 Rethinking the Employee Hierarchy 497

10.14 (Optional) GUI and Graphics Case Study: Drawing with Polymorphism 498

10.15 Wrap-Up 500

11 Exception Handling: A Deeper Look 507

11.1 Introduction 508

11.2 Example: Divide by Zero without Exception Handling 509

11.3 Example: Handling ArithmeticExceptions and

InputMismatchExceptions 511

11.4 When to Use Exception Handling 517

11.5 Java Exception Hierarchy 517

11.6 finally Block 521

11.7 Stack Unwinding and Obtaining Information from an Exception 525

11.8 Chained Exceptions 528

11.9 Declaring New Exception Types 530

11.10 Preconditions and Postconditions 531

11.11 Assertions 531

11.12 try-with-Resources: Automatic Resource Deallocation 533

11.13 Wrap-Up 534

12 JavaFX Graphical User Interfaces: Part 1 540

12.1 Introduction 541

12.2 JavaFX Scene Builder 542

12.3 JavaFX App Window Structure 543

12.4 Welcome App—Displaying Text and an Image 544

12.4.1 Opening Scene Builder and Creating the File Welcome.fxml 544

12.4.2 Adding an Image to the Folder Containing Welcome.fxml 545

12.4.3 Creating a VBox Layout Container 545

12.4.4 Configuring the VBox Layout Container 546

12.4.5 Adding and Configuring a Label 546

12.4.6 Adding and Configuring an ImageView 547

12.4.7 Previewing the Welcome GUI 549

12.5 Tip Calculator App—Introduction to Event Handling 549

12.5.1 Test-Driving the Tip Calculator App 550

12.5.2 Technologies Overview 551

12.5.3 Building the App’s GUI 553

12.5.4 TipCalculator Class 560

12.5.5 TipCalculatorController Class 562

12.6 Features Covered in the Other JavaFX Chapters 567

12.7Wrap-Up 567

13 JavaFX GUI: Part 2 575

13.1 Introduction 576

13.2 Laying Out Nodes in a Scene Graph 576

13.3 Painter App: RadioButtons, Mouse Events and Shapes 578

13.3.1 Technologies Overview 578

13.3.2 Creating the Painter.fxml File 580

13.3.3 Building the GUI 580

13.3.4 Painter Subclass of Application 583

13.3.5 PainterController Class 584

13.4 Color Chooser App: Property Bindings and Property Listeners 588

13.4.1 Technologies Overview 588

13.4.2 Building the GUI 589

13.4.3 ColorChooser Subclass of Application 591

13.4.4 ColorChooserController Class 592

13.5 Cover Viewer App: Data-Driven GUIs with JavaFX Collections 594

13.5.1 Technologies Overview 595

13.5.2 Adding Images to the App’s Folder 595

13.5.3 Building the GUI 595

13.5.4 CoverViewer Subclass of Application 597

13.5.5 CoverViewerController Class 597

13.6 Cover Viewer App: Customizing ListView Cells 599

13.6.1 Technologies Overview 600

13.6.2 Copying the CoverViewer App 600

13.6.3 ImageTextCell Custom Cell Factory Class 601

13.6.4 CoverViewerController Class 602

13.7 Additional JavaFX Capabilities 603

13.8 JavaFX 9: Java SE 9 JavaFX Updates 605

13.9Wrap-Up 607

14 Strings, Characters and Regular Expressions 616

14.1 Introduction 617

14.2 Fundamentals of Characters and Strings 617

14.3 Class String 618

14.3.1 String Constructors 618

14.3.2 String Methods length, charAt and getChars 619

14.3.3 Comparing Strings 621

14.3.4 Locating Characters and Substrings in Strings 625

14.3.5 Extracting Substrings from Strings 627

14.3.6 Concatenating Strings 628

14.3.7 Miscellaneous String Methods 629

14.3.8 String Method valueOf 630

14.4 Class StringBuilder 631

14.4.1 StringBuilder Constructors 632

14.4.2 StringBuilder Methods length, capacity, setLength and

ensureCapacity 633

14.4.3 StringBuilder Methods charAt, setCharAt, getChars and

reverse 634

14.4.4 StringBuilder append Methods 635

14.4.5 StringBuilder Insertion and Deletion Methods 637

14.5 Class Character 638

14.6 Tokenizing Strings 643

14.7 Regular Expressions, Class Pattern and Class Matcher 644

14.7.1 Replacing Substrings and Splitting Strings 649

14.7.2 Classes Pattern and Matcher 651

14.8Wrap-Up 653

15 Files, Input/Output Streams, NIO and

XML Serialization 664

15.1 Introduction 665

15.2 Files and Streams 665

15.3 Using NIO Classes and Interfaces to Get File and

Directory Information 667

15.4 Sequential Text Files 671

15.4.1 Creating a Sequential Text File 671

15.4.2 Reading Data from a Sequential Text File 674

15.4.3 Case Study: A Credit-Inquiry Program 675

15.4.4 Updating Sequential Files 680

15.5 XML Serialization 680

15.5.1 Creating a Sequential File Using XML Serialization 680

15.5.2 Reading and Deserializing Data from a Sequential File 686

15.6 FileChooser and DirectoryChooser Dialogs 687

15.7 (Optional) Additional java.io Classes 693

15.7.1 Interfaces and Classes for Byte-Based Input and Output 693

15.7.2 Interfaces and Classes for Character-Based Input and Output 695

15.8Wrap-Up 696

16 Generic Collections 704

16.1 Introduction 705

16.2 Collections Overview 705

16.3 Type-Wrapper Classes 707

16.4 Autoboxing and Auto-Unboxing 707

16.5 Interface Collection and Class Collections 707

16.6Lists 708

16.6.1 ArrayList and Iterator 709

16.6.2 LinkedList 711

16.7 Collections Methods 716

16.7.1 Method sort 716

16.7.2 Method shuffle 720

16.7.3 Methods reverse, fill, copy, max and min 722

16.7.4 Method binarySearch 724

16.7.5 Methods addAll, frequency and disjoint 725

16.8 Class PriorityQueue and Interface Queue 727

16.9 Sets 728

16.10 Maps 731

16.11 Synchronized Collections 735

16.12 Unmodifiable Collections 735

16.13 Abstract Implementations 736

16.14 Java SE 9: Convenience Factory Methods for

Immutable Collections 736

16.15 Wrap-Up 740

17.13 Creating a Stream<String> from a File 786

17.14 Streams of Random Values 789

17.15 Infinite Streams 791

17.16 Lambda Event Handlers 793

17.17 Additional Notes on Java SE 8 Interfaces 793

17.18 Wrap-Up 794

18Recursion 808

18.1 Introduction 809

18.2 Recursion Concepts 810

18.3 Example Using Recursion: Factorials 811

18.4 Reimplementing Class FactorialCalculator Using BigInteger 813

18.5 Example Using Recursion: Fibonacci Series 815

18.6 Recursion and the Method-Call Stack 818

18.7 Recursion vs. Iteration 819

18.8 Towers of Hanoi 821

18.9 Fractals 823

18.9.1 Koch Curve Fractal 824

18.9.2 (Optional) Case Study: Lo Feather Fractal 825

18.9.3 (Optional) Fractal App GUI 827

18.9.4 (Optional) FractalController Class 829

18.10 Recursive Backtracking 834

18.11 Wrap-Up 834

19 Searching, Sorting and Big O 843

19.1 Introduction 844

19.2 Linear Search 845

19.3 Big O Notation 848

19.3.1 O(1) Algorithms 848

19.3.2 O(n) Algorithms 848

19.3.3 O(n2) Algorithms 848

19.3.4 Big O of the Linear Search 849

19.4 Binary Search 849

19.4.1 Binary Search Implementation 850

19.4.2 Efficiency of the Binary Search 853

19.5 Sorting Algorithms 854

19.6 Selection Sort 854

19.6.1 Selection Sort Implementation 855

19.6.2 Efficiency of the Selection Sort 857

19.7 Insertion Sort 857

19.7.1 Insertion Sort Implementation 858

19.7.2 Efficiency of the Insertion Sort 860

19.8 Merge Sort 861

19.8.1 Merge Sort Implementation 861

19.8.2 Efficiency of the Merge Sort 866

19.9 Big O Summary for This Chapter’s Searching and Sorting Algorithms 866

19.10 Massive Parallelism and Parallel Algorithms 867

19.11 Wrap-Up 867

20 Generic Classes and Methods: A Deeper Look 873

20.1 Introduction 874

20.2 Motivation for Generic Methods 874

20.3 Generic Methods: Implementation and Compile-Time Translation 876

20.4 Additional Compile-Time Translation Issues: Methods That Use a Type

Parameter as the Return Type 879

20.5 Overloading Generic Methods 882

20.6 Generic Classes 883

20.7 Wildcards in Methods That Accept Type Parameters 890

20.8Wrap-Up 894

21 Custom Generic Data Structures 898

21.1 Introduction 899

21.2 Self-Referential Classes 900

21.3 Dynamic Memory Allocation 900

21.4 Linked Lists 901

21.4.1 Singly Linked Lists 901

21.4.2 Implementing a Generic List Class 902

21.4.3 Generic Classes ListNode and List 905

21.4.4 Class ListTest 905

21.4.5 List Method insertAtFront 907

21.4.6 List Method insertAtBack 908

21.4.7 List Method removeFromFront 908

21.4.8 List Method removeFromBack 909

21.4.9 List Method print 910

21.4.10 Creating Your Own Packages 910

21.5 Stacks 915

21.6 Queues 918

21.7 Trees 920

21.8Wrap-Up 927

22 JavaFX Graphics and Multimedia 952

22.1 Introduction 953

22.2 Controlling Fonts with Cascading Style Sheets (CSS) 954

22.2.1 CSS That Styles the GUI 954

22.2.2 FXML That Defines the GUI—Introduction to XML Markup 957

22.2.3 Referencing the CSS File from FXML 960

22.2.4 Specifying the VBox’s Style Class 960

22.2.5 Programmatically Loading CSS 960

22.3 Displaying Two-Dimensional Shapes 961

22.3.1 Defining Two-Dimensional Shapes with FXML 961

22.3.2 CSS That Styles the Two-Dimensional Shapes 964

22.4 Polylines, Polygons and Paths 966

22.4.1 GUI and CSS 967

22.4.2 PolyShapesController Class 968

22.5 Transforms 971

22.6 Playing Video with Media, MediaPlayer and MediaViewer 973

22.6.1 VideoPlayer GUI 974

22.6.2 VideoPlayerController Class 976

22.7 Transition Animations 980

22.7.1 TransitionAnimations.fxml 980

22.7.2 TransitionAnimationsController Class 982

22.8 Timeline Animations 986

22.9 Frame-by-Frame Animation with AnimationTimer 989

22.10 Drawing on a Canvas 991

22.11 Three-Dimensional Shapes 996

22.12 Wrap-Up 999

23Concurrency 1015

23.1 Introduction 1016

23.2 Thread States and Life Cycle 1018

23.2.1 New and Runnable States 1019

23.2.2 Waiting State 1019

23.2.3 Timed Waiting State 1019

23.2.4 Blocked State 1019

23.2.5 Terminated State 1019

23.2.6 Operating-System View of the Runnable State 1020

23.2.7 Thread Priorities and Thread Scheduling 1020

23.2.8 Indefinite Postponement and Deadlock 1021

23.3 Creating and Executing Threads with the Executor Framework 1021

23.4 Thread Synchronization 1025

23.4.1 Immutable Data 1026

23.4.2 Monitors 1026

23.4.3 Unsynchronized Mutable Data Sharing 1027

23.4.4 Synchronized Mutable Data Sharing—Making Operations Atomic 1031

23.5 Producer/Consumer Relationship without Synchronization 1034

23.6 Producer/Consumer Relationship: ArrayBlockingQueue 1042

23.7 (Advanced) Producer/Consumer Relationship with synchronized,

wait, notify and notifyAll 1045

23.8 (Advanced) Producer/Consumer Relationship: Bounded Buffers 1051

23.9 (Advanced) Producer/Consumer Relationship: The Lock and

Condition Interfaces 1059

23.10 Concurrent Collections 1066

23.11 Multithreading in JavaFX 1068

23.11.1 Performing Computations in a Worker Thread:

Fibonacci Numbers 1069

23.11.2 Processing Intermediate Results: Sieve of Eratosthenes 1074

23.12 sort/parallelSort Timings with the Java SE 8 Date/Time API 1080

23.13 Java SE 8: Sequential vs. Parallel Streams 1083

23.14 (Advanced) Interfaces Callable and Future 1085

23.15 (Advanced) Fork/Join Framework 1090

23.16 Wrap-Up 1090

24 Accessing Databases with JDBC 1102

24.1 Introduction 1103

24.2 Relational Databases 1104

24.3 A books Database 1105

24.4 SQL 1109

24.4.1 Basic SELECT Query 1110

24.4.2 WHERE Clause 1110

24.4.3 ORDER BY Clause 1112

24.4.4 Merging Data from Multiple Tables: INNER JOIN 1114

24.4.5 INSERT Statement 1115

24.4.6 UPDATE Statement 1116

24.4.7 DELETE Statement 1117

24.5 Setting Up a Java DB Database 1118

24.5.1 Creating the Chapter’s Databases on Windows 1119

24.5.2 Creating the Chapter’s Databases on macOS 1120

24.5.3 Creating the Chapter’s Databases on Linux 1120

24.6 Connecting to and Querying a Database 1120

24.6.1 Automatic Driver Discovery 1122

24.6.2 Connecting to the Database 1122

24.6.3 Creating a Statement for Executing Queries 1123

24.6.4 Executing a Query 1123

24.6.5 Processing a Query’s ResultSet 1124

24.7 Querying the books Database 1125

24.7.1 Result Set Table Model Class 1125

24.7.2 Display Query Results App’s GUI 1132

24.7.3 Display Query Results Controller Class 1132

24.8 Row Set Interface 1137

24.9 Prepared Statements 1140

24.9.1 Address Book App That Uses Prepared Statements 1141

24.9.2 Class Person 1141

24.9.3 Class Person Queries 1143

24.9.4 AddressBook GUI 1146

24.9.5 Class Address Book Controller 1147

24.10 Stored Procedures 1152

24.11 Transaction Processing 1152

24.12 Wrap-Up 1153

25 Introduction to JShell: Java 9’s REPL 1161

25.1 Introduction 1162

25.2 Installing JDK 9 1164

25.3 Introduction to JShell 1164

25.3.1 Starting a JShell Session 1165

25.3.2 Executing Statements 1165

25.3.3 Declaring Variables Explicitly 1166

25.3.4 Listing and Executing Prior Snippets 1168

25.3.5 Evaluating Expressions and Declaring Variables Implicitly 1170

25.3.6 Using Implicitly Declared Variables 1170

25.3.7 Viewing a Variable’s Value 1171

25.3.8 Resetting a JShell Session 1171

25.3.9 Writing Multiline Statements 1171

25.3.10 Editing Code Snippets 1172

25.3.11 Exiting JShell 1175

25.4 Command-Line Input in JShell 1175

25.5 Declaring and Using Classes 1176

25.5.1 Creating a Class in JShell 1177

25.5.2 Explicitly Declaring Reference-Type Variables 1177

25.5.3 Creating Objects 1178

25.5.4 Manipulating Objects 1178

25.5.5 Creating a Meaningful Variable Name for an Expression 1179

25.5.6 Saving and Opening Code-Snippet Files 1180

25.6 Discovery with JShell Auto-Completion 1180

25.6.1 Auto-Completing Identifiers 1181

25.6.2 Auto-Completing JShell Commands 1182

25.7 Exploring a Class’s Members and Viewing Documentation 1182

25.7.1 Listing Class Math’s static Members 1183

25.7.2 Viewing a Method’s Parameters 1183

25.7.3 Viewing a Method’s Documentation 1184

25.7.4 Viewing a public Field’s Documentation 1184

25.7.5 Viewing a Class’s Documentation 1185

25.7.6 Viewing Method Overloads 1185

25.7.7 Exploring Members of a Specific Object 1186

25.8 Declaring Methods 1188

25.8.1 Forward Referencing an Undeclared Method—Declaring

Method display Cubes 1188

25.8.2 Declaring a Previously Undeclared Method 1188

25.8.3 Testing cube and Replacing Its Declaration 1189

25.8.4 Testing Updated Method cube and Method display Cubes 1189

25.9 Exceptions 1190

25.10 Importing Classes and Adding Packages to the CLASSPATH 1191

25.11 Using an External Editor 1193

25.12 Summary of JShell Commands 1195

25.12.1 Getting Help in JShell 1196

25.12.2 /edit Command: Additional Features 1197

25.12.3 /reload Command 1197

25.12.4 /drop Command 1198

25.12.5 Feedback Modes 1198

25.12.6 Other JShell Features Configurable with /set 1200

25.13 Keyboard Shortcuts for Snippet Editing 1201

25.14 How JShell Reinterprets Java for Interactive Use 1201

25.15 IDE JShell Support 1202

25.16 Wrap-Up 1202

Chapters on the Web 1218

A Operator Precedence Chart 1219

B ASCII Character Set 1221

C Keywords and Reserved Words 1222

D Primitive Types 1223

E Using the Debugger 1224

E.1 Introduction 1225

E.2 Breakpoints and the run, stop, cont and print Commands 1225

E.3 The print and set Commands 1229

E.4 Controlling Execution Using the step, step up and next Commands 1231

E.5 The watch Command 1233

E.6 The clear Command 1235

E.7 Wrap-Up 1238

Appendices on the Web 1239

Index 1241

This book is US$10
To get free sample pages OR Buy this book


Share this Book!

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.