[PDF Download] Starting out with java: from control structures through objects (what's new in comput

Page 1


Visit to download the full and correct content document: https://textbookfull.com/product/starting-out-with-java-from-control-structures-throughobjects-whats-new-in-computer-science-7th-edition-gaddis/

More products digital (pdf, epub, mobi) instant download maybe you interests ...

Starting Out with Java: From Control Structures through Objects (6th Edition) Gaddis

https://textbookfull.com/product/starting-out-with-java-fromcontrol-structures-through-objects-6th-edition-gaddis/

Starting Out with C++: From Control Structures through Objects, Brief Edition, 9/e Tony Gaddis

https://textbookfull.com/product/starting-out-with-c-fromcontrol-structures-through-objects-brief-edition-9-e-tony-gaddis/

Starting out with C++. From control structures through objects Second Custom Edition For Penn State University Tony Gaddis

https://textbookfull.com/product/starting-out-with-c-fromcontrol-structures-through-objects-second-custom-edition-forpenn-state-university-tony-gaddis/

Starting out with Python® Gaddis

https://textbookfull.com/product/starting-out-with-python-gaddis/

Starting Out With Visual Basic (8th Edition) Tony Gaddis

https://textbookfull.com/product/starting-out-with-visualbasic-8th-edition-tony-gaddis/

Big Java: Early Objects 7th Edition Cay S. Horstmann

https://textbookfull.com/product/big-java-early-objects-7thedition-cay-s-horstmann/

Computer Graphics Programming in OpenGL with Java

Gordon

https://textbookfull.com/product/computer-graphics-programmingin-opengl-with-java-gordon/

Classic Computer Science Problems in Java 1st Edition

David Kopec

https://textbookfull.com/product/classic-computer-scienceproblems-in-java-1st-edition-david-kopec/

Computer Graphics Programming in OpenGL with Java 2nd

Edition V. Scott Gordon

https://textbookfull.com/product/computer-graphics-programmingin-opengl-with-java-2nd-edition-v-scott-gordon/

Starting Out With Java ™

From Control Structures through Objects

Starting Out With Java ™

From Control Structures through Objects

SEVENTH EDITION

330 Hudson Street, NYNY10013

Tony Gaddis
Tony Gaddis Haywood CommunityCollege

Senior Vice President Courseware Portfolio Management: Senior Vice President Courseware Portfolio Management: Marcia J. Horton

Director, Portfolio Management: Director, Portfolio Management: Engineering, Computer Science & Global Editions: Julian Partridge

Portfolio Manager: Portfolio Manager: Matt Goldstein

Portfolio Management Assistant: Portfolio Management Assistant: Meghan Jacoby

Managing Content Producer: Managing Content Producer: Scott Disanno

Content Producer: Content Producer: Amanda Brands

Rights and Permissions Manager:

Rights and Permissions Manager: Ben Ferrini

Manufacturing Buyer, Higher Ed, Lake Side Communications, Inc. (LSC): Manufacturing Buyer, Higher Ed, Lake Side Communications, Inc. (LSC): Maura Zaldivar-Garcia

Inventory Manager: Inventory Manager: Ann Lam

Product Marketing Manager: Product Marketing Manager: Yvonne Vannatta

Field Marketing Manager: Field Marketing Manager: Demetrius Hall

Marketing Assistant: Marketing Assistant: Jon Bryant

Cover Designer: Cover Designer: Joyce Wells

Cover Photo: Cover Photo: Shutterstock/Tim UR

PPrinter/Binder: rinter/Binder: LSC Communications, Inc

Full-Service Project Management: Full-Service Project Management: Sasibalan Chidambaram, SPi Global

Credits and acknowledgments borrowed from other sources and reproduced, with permission, in this textbook appear on appropriate page within text.

Copyright © 2019, 2016, 2013 byPearson Education, Inc., Hoboken, New Jersey07030. All rights reserved. Manufactured in the United States of America. This publication is protected bycopyright and permissions should be obtained from the publisher prior to anyprohibited reproduction, storage in a retrieval system, or transmission in anyform or byanymeans, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, request forms and the appropriate contacts within the Pearson Education Global Rights & Permissions department, please visit http://www.pearsoned.com/permissions/.

Manyof the designations bymanufacturers and seller to distinguish their products are claimed as trademarks Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed in initial caps or all caps

Unless otherwise indicated herein, anythird-partytrademarks that mayappear in this work are the propertyof their respective owners and anyreferences to third-partytrademarks, logos or other trade dress are for demonstrative or descriptive purposes only Such references are not intended to implyanysponsorship, endorsement, authorization, or promotion of Pearson’s products bythe owners of such marks, or anyrelationship between the owner and Pearson Education, Inc or its affiliates, authors, licensees or distributors

Microsoft and/or its respective suppliers make no representations about the suitabilityof the information contained in the documents and related graphics published as part of the services for anypurpose. All such documents and related graphics are provided “ as is” without warrantyof anykind. Microsoft and/or its respective suppliers herebydisclaim all warranties and conditions with regard to this information, including all warranties and conditions of merchantability. Whether express, implied or statutory, fitness for a particular purpose, title and non infringement. In no event shall microsoft and/or its respective suppliers be liable for anyspecial, indirect or consequential damages or anydamages whatsoever resulting from loss of use, data or profits, whether in an action of contract Negligence or other tortious action, arising out of or in connection with the use or performance of information available from the services

The documents and related graphics contained herein could include technical inaccuracies or typographical errors changes are periodicallyadded to the information herein Microsoft and/or its respective suppliers maymake improvements and/or changes in the product(s) and/or the program(s) described herein at anytime partial screen shots maybe viewed in full within the software version specified

Microsoft Windows , and Microsoft Office are registered trademarks of the Microsoft Corporation in the U S A and other countries. This book is not sponsored or endorsed byor affiliated with the Microsoft Corporation.

Oracle and Java are registered trademarks of Oracle and/or its affiliates Other names maybe trademarks of their respective owners

Library of Congress

Library of Congress

Cataloging-in-Publication Data

Cataloging-in-Publication Data

Names: Gaddis, Tony, author

Title: Starting out with Java From control structures through objects / TonyGaddis, Haywood Community College

Description: Seventh edition. | NY, NY: Pearson Education, Inc., [2019] | Includes index.

Identifiers: LCCN 2017060354| ISBN 9780134802213 | ISBN 0134802217

Subjects: LCSH: Java (Computer program language) | Data structures (Computer science) | Object-oriented programming (Computer science)

Classification: LCC QA76 73 J38 G333 2019 | DDC 005 13/3--dc23 LC record

available at https://lccn loc gov/2017060354

1 18

ISBN 10: 0-13-480221-7

ISBN 13: 978-0-13-480221-3 ®

Contents in Brief

Chapter 1 Introduction to Computers and Java 1

Chapter 2 Java Fundamentals 27

Chapter 3 Decision Structures 111

Chapter 4 Loops and Files 189

Chapter 5 Methods 269

Chapter 6 A First Look at Classes 317

Chapter 7 Arrays and the ArrayList Class 403

Chapter 8 A Second Look at Classes and Objects 493

Chapter 9 Text Processing and More about Wrapper Classes 557

Chapter 10 Inheritance 611

Chapter 11 Exceptions and Advanced File I/O701

Chapter 12 JavaFX: GUI Programming and Basic Controls 759

Chapter 13 JavaFX: Advanced Controls 823

Chapter 14 JavaFX: Graphics, Effects, and Media 909

Chapter 15 Recursion 999

Chapter 16 Databases 1027

Index 1109

Appendices A–M Companion Website

Case Studies 1–7 Companion Website

Chapters 17–20 Companion Website

Chapter 1 Introduction to Computers and Java 1

1 1 Introduction 1

1.2 WhyProgram? 1

1.3 Computer Systems: Hardware and Software 2

Hardware 2

Software 5

1.4 Programming Languages 6

What Is a Program? 6 A Historyof Java 8

1 5 What Is a Program Made Of? 8 Language Elements 8

Lines and Statements 11

Variables 11

The Compiler and the Java Virtual Machine 12

Java Software Editions 13

Compiling and Running a Java Program 14

1 6 The Programming Process 16 Software Engineering 18

1 7 Object-Oriented Programming 19

Review Questions and Exercises 21

Programming Challenge 25 Chapter 2 Java Fundamentals 27

2 1 The Parts of a Java Program 27

2.2 The print and println Methods, and the Java API 33

2 3 Variables and Literals 39

Displaying Multiple Items with the Operator 40

Be Careful with Quotation Marks 41

More about Literals 42

Identifiers 42 Class Names 44

2 4 Primitive Data Types 44 The Integer Data Types 46 Floating-Point Data Types

Variable Assignment and Initialization 52

Variables Hold OnlyOne Value at a Time 53

2 5 Arithmetic Operators 54 Integer Division 57

Operator Precedence 57

Grouping with Parentheses 59

The Math Class 62

2 6 Combined Assignment Operators 63

2 7 Conversion between Primitive Data Types 65 Mixed Integer Operations 67

Other Mixed Mathematical Expressions 68

2 8 Creating Named Constants with final 69

2.9 The String Class 70 Objects Are Created from Classes 71

The String Class 71

Primitive Type Variables and Class Type Variables 71

Creating a String Object 72

2.10 Scope 76

2 11 Comments 78

2 12 Programming Style 83

2.13 Reading Keyboard Input 85

Reading a Character 89

Mixing Calls to nextLine with Calls to Other Scanner Methods 89

2.14 Dialog Boxes 93

Displaying Message Dialogs 93

Displaying Input Dialogs 94

An Example Program 94

Converting String Input to Numbers 96

2.15 Common Errors to Avoid 99

Review Questions and Exercises 100

Programming Challenges 106

Chapter 3 Decision Structures 111

3.1 The if Statement 111

Using Relational Operators to Form Conditions 113

Putting It All Together 114

Programming

and

Be Careful with Semicolons 117

Having Multiple ConditionallyExecuted Statements 118

Flags 118

Comparing Characters 119

3.2 The if-else Statement 120

3 3 Nested if Statements 122

3.4 The if-else-if Statement 128

3 5 Logical Operators 134

The Precedence of Logical Operators 139

Checking Numeric Ranges with Logical Operators 140

3.6 Comparing String Objects 142

Ignoring Case in String Comparisons 146

3 7 More about Variable Declaration and Scope 147

3.8 The Conditional Operator (Optional) 149

3 9 The switch Statement 150

3 10 Displaying Formatted Output with System out printf and String format 160

Format Specifier Syntax 163

Precision 164

Specifying a Minimum Field Width 164

Flags 167

Formatting String Arguments 170

The String format Method 172

3.11 Common Errors to Avoid 174

Review Questions and Exercises 175

Programming Challenges 181

Chapter 4 Loops and Files 189

4.1 The Increment and Decrement Operators 189

The Difference between Postfix and Prefix Modes 192

4 2 The while Loop 193

The while Loop Is a Pretest Loop 196 Infinite Loops 196

Don’t Forget the Braces with a Block of Statements 197

Programming Style and the while Loop 198

4 3 Using the while Loop for Input Validation 200

4.4 The do-while Loop 204

4 5 The for Loop 207

The for Loop Is a Pretest Loop 210

Avoid Modifying the Control Variable in the Bodyof the for Loop 211

Other Forms of the Update Expression 211

Declaring a Variable in the for Loop’s Initialization Expression 211

Creating a User Controlled for Loop 212

Using Multiple Statements in the Initialization and Update Expressions 213

4.6 Running Totals and Sentinel Values 216

Using a Sentinel Value 219

4.7 Nested Loops 221

4 8 The break and continue Statements (Optional) 229

4.9 Deciding Which Loop to Use 229

4.10 Introduction to File Input and Output 230

Using the PrintWriter Class to Write Data to a File 230

Appending Data to a File 236

Specifying the File Location 237

Reading Data from a File 237

Reading Lines from a File with the nextLine Method 238

Adding a throws Clause to the Method Header 241

Checking for a File’s Existence 245

4 11 Generating Random Numbers with the Random Class 249

4 12 Common Errors to Avoid 255

Review Questions and Exercises 256

Programming Challenges 262

Chapter 5 Methods 269

5.1 Introduction to Methods 269

void Methods and Value-Returning Methods 270

Defining a void Method 271

Calling a Method 272

Layered Method Calls 276

Using Documentation Comments with Methods 277

5.2 Passing Arguments to a Method 279

Argument and Parameter Data Type Compatibility281

Parameter Variable Scope 282

Passing Multiple Arguments 282

Arguments Are Passed byValue 284

Passing Object References to a Method 285

Using the @param Tag in Documentation

5 3 More about Local Variables

Local Variable Lifetime 292

Initializing Local Variables with Parameter Values 292

5.4 Returning a Value from a Method 293

Defining a Value-Returning Method 293

Calling a Value-Returning Method 294

Using the @return Tag in Documentation Comments 296

Returning a boolean Value 300

Returning a Reference to an Object 300

5 5 Problem Solving with Methods 302

Calling Methods That Throw Exceptions 305

5 6 Common Errors to Avoid 305

Review Questions and Exercises 306

Programming Challenges 311

Chapter 6 A First Look at Classes 317

6 1 Objects and Classes 317

Classes: Where Objects Come From 318

Classes in the Java API 319

Primitive Variables vs Objects 321

6 2 Writing a Simple Class, Step byStep 324

Accessor and Mutator Methods 338

The Importance of Data Hiding 338

Avoiding Stale Data 339

Showing Access Specification in UML Diagrams 339

Data Type and Parameter Notation in UML Diagrams 339

Layout of Class Members 340

6 3 Instance Fields and Methods 341

6.4 Constructors 346

Showing Constructors in a UML Diagram 348

Uninitialized Local Reference Variables 348

The Default Constructor 348

Writing Your Own No-Arg Constructor 349

The String Class Constructor 350

6 5 Passing Objects as Arguments 358

6.6 Overloading Methods and Constructors 370

The BankAccount Class 372

Overloaded Methods Make Classes More Useful 378

6.7 Scope of Instance Fields 378 Shadowing 379

6 8 Packages and import Statements 380

Explicit and Wildcard import Statements 380

The java lang Package 381

Other API Packages 381

6 9 Focus on Object-Oriented Design: Finding the Classes and Their Responsibilities 382

Finding the Classes 382

Identifying a Class’s Responsibilities 385

This Is Onlythe Beginning 388

6 10 Common Errors to Avoid 388

Review Questions and Exercises 389

Programming Challenges 394

Chapter 7 Arrays and the ArrayList Class 403

7.1 Introduction to Arrays 403

Accessing ArrayElements 405

Inputting and Outputting ArrayContents 406

Java Performs Bounds Checking 409

Watch Out for Off-by-One Errors 410

ArrayInitialization 411

Alternate ArrayDeclaration Notation 412

7 2 Processing ArrayElements 413

ArrayLength 415

The Enhanced for Loop 416

Letting the User Specifyan Array’s Size 417

Reassigning ArrayReference Variables 419

Copying Arrays 420

7.3 Passing Arrays as Arguments to Methods 422

7 4 Some Useful ArrayAlgorithms and Operations 426

Comparing Arrays 426

Summing the Values in a Numeric Array427

Getting the Average of the Values in a Numeric Array428

Finding the Highest and Lowest Values in a Numeric Array428

The SalesData Class 429

PartiallyFilled Arrays 437

Working with Arrays and Files 438

7.5 Returning Arrays from Methods 439

7.6 String Arrays 441

Calling String Methods from an ArrayElement

7 8 The Sequential Search Algorithm 447

7.9 Two-Dimensional Arrays 450

Initializing a Two-Dimensional Array454

The length Field in a Two-Dimensional Array455

Displaying All the Elements of a Two-Dimensional Array457

Summing All the Elements of a Two-Dimensional Array457

Summing the Rows of a Two-Dimensional Array458

Summing the Columns of a Two-Dimensional Array458

Passing Two-Dimensional Arrays to Methods 459

Ragged Arrays 461

7.10 Arrays with Three or More Dimensions 462

7.11 The Selection Sort and the BinarySearch Algorithms 463

The Selection Sort Algorithm 463

The BinarySearch Algorithm 466

7.12 Command-Line Arguments and Variable-Length Argument Lists 468

Command-Line Arguments 469

Variable-Length Argument Lists 470

7 13 The ArrayList Class 472

Creating and Using an ArrayList Object 473

Using the Enhanced for Loop with an ArrayList 474

The ArrayList Class’s toString method 475

Removing an Item from an ArrayList 476

Inserting an Item 477

Replacing an Item 478

Capacity479

Storing Your Own Objects in an ArrayList 479

Using the Diamond Operator for Type Inference 480

7.14 Common Errors to Avoid 481

Review Questions and Exercises 481

Programming Challenges 486

Chapter 8 A Second Look at Classes and Objects 493

8 1 Static Class Members 493

A Quick Review of Instance Fields and Instance Methods 493

Static Members 494

Static Fields 494

Static Methods

8 2 Passing Objects as Arguments to Methods 500

8 3 Returning Objects from Methods 503

8.4 The toString Method 505

8 5 Writing an equals Method 509

8 6 Methods That CopyObjects 512

CopyConstructors 514

8 7 Aggregation 515

Aggregation in UML Diagrams 523

SecurityIssues with Aggregate Classes 523

Avoid Using null References 525

8.8 The this Reference Variable 528

Using this to Overcome Shadowing 529

Using this to Call an Overloaded Constructor from Another Constructor 530

8 9 Enumerated Types 531

Enumerated Types Are Specialized Classes 532

Switching On an Enumerated Type 538

8 10 Garbage Collection 540

The finalize Method 542

8 11 Focus on Object-Oriented Design: Class Collaboration 542

Determining Class Collaborations with CRC Cards 545

8.12 Common Errors to Avoid 546

Review Questions and Exercises 547

Programming Challenges 551

Chapter 9 Text Processing and More about Wrapper Classes 557

9.1 Introduction to Wrapper Classes 557

9 2 Character Testing and Conversion with the Character Class 558

Character Case Conversion 563

9.3 More String Methods 566

Searching for Substrings 566

Extracting Substrings 572

Methods That Return a Modified String 576

The Static valueOf Methods 577

9 4 The StringBuilder Class 579

The StringBuilder Constructors 580

Other StringBuilder Methods 581

The toString Method 584

9.5 Tokenizing Strings 589

9 6 Wrapper Classes for the Numeric

The Static toString Methods 594

The toBinaryString , toHexString , and toOctalString Methods 594

The MIN VALUE and MAX VALUE Constants 595

Autoboxing and Unboxing 595

9 7 Focus on Problem Solving: The TestScoreReader Class 597

9 8 Common Errors to Avoid 601

Review Questions and Exercises 601

Programming Challenges 605

Chapter 10 Inheritance 611

10.1 What Is Inheritance? 611

Generalization and Specialization 611

Inheritance and the “Is a ” Relationship 612

Inheritance in UML Diagrams 620

The Superclass’s Constructor 621

Inheritance Does Not Work in Reverse 623

10 2 Calling the Superclass Constructor 624

When the Superclass Has No Default or No-Arg Constructors 630

Summaryof Constructor Issues in Inheritance 631

10 3 Overriding Superclass Methods 632

Overloading versus Overriding 637

Preventing a Method from Being Overridden 640

10.4 Protected Members 641

Package Access 646

10 5 Chains of Inheritance 647 Class Hierarchies 653

10 6 The Object Class 653

10 7 Polymorphism 655

Polymorphism and Dynamic Binding 656

The “Is-a” Relationship Does Not Work in Reverse 658

The instanceof Operator 659

10 8 Abstract Classes and Abstract Methods 660

Abstract Classes in UML 666

10.9 Interfaces 667

An Interface is a Contract 669

Fields in Interfaces 673

Implementing Multiple Interfaces 673

Interfaces in UML 673

Default Methods 674

Polymorphism and Interfaces 676

10 10 Anonymous Inner Classes 681

10.11 Functional Interfaces and Lambda Expressions 684

10 12 Common Errors to Avoid 689

Review Questions and Exercises 690

Programming Challenges 696

Chapter 11 Exceptions and Advanced File I/O 701

11 1 Handling Exceptions 701

Exception Classes 702

Handling an Exception 703

Retrieving the Default Error Message 707

Polymorphic References to Exceptions 710

Using Multiple catch Clauses to Handle Multiple Exceptions 710

The finally Clause 718

The Stack Trace 720

Handling Multiple Exceptions with One catch Clause 721

When an Exception Is Not Caught 723

Checked and Unchecked Exceptions 724

11 2 Throwing Exceptions 725

Creating Your Own Exception Classes 728

Using the @exception Tag in Documentation Comments 731

11 3 Advanced Topics: BinaryFiles, Random Access Files, and Object Serialization 732 BinaryFiles 732

Random Access Files 739

Object Serialization 744

Serializing Aggregate Objects 748

11 4 Common Errors to Avoid 749

Review Questions and Exercises 749

Programming Challenges 755

Chapter 12 JavaFX: GUI Programming and Basic Controls 759

12 1 Graphical User Interfaces 759

Event-Driven GUI Programs 761

12.2 Introduction to JavaFX 762 Controls 762

Stages and Scenes 763

The Application Class 763

12 3 Creating Scenes 765

Creating Controls 766

Creating Layout Containers 766

Creating a Scene Object 767

Adding the Scene Object to the Stage 768

Setting the Size of the Scene 770

Aligning Controls in an HBox Layout Container 770

12.4 Displaying Images 772

Loading Images from an Internet Location 775

Setting the Size of an Image 775

Preserving the Image’s Aspect Ratio 775

Changing an ImageView’s Image 776

12.5 More about the HBox, VBox , and GridPane Layout Containers 776

The HBox Layout Container 777

The VBox Layout Container 782

The GridPane Layout Container 784

Using Multiple Layout Containers in the Same Screen 791

12 6 Button Controls and Events 792

Handling Events 794

Writing Event Handlers 794

Registering an Event Handler 795

12.7 Reading Input with TextField Controls 799

12 8 Using Anonymous Inner Classes and Lambda Expressions to Handle Events 803

Using Anonymous Inner Classes to Create Event Handlers 803

Using Lambda Expressions to Create Event Handlers 806

12.9 The BorderPane Layout Container 808

12.10 The ObservableList Interface 812

12 11 Common Errors to Avoid 814

Review Questions and Exercises 814

Programming Challenges 818

Chapter 13 JavaFX: Advanced Controls 823

13 1 Styling JavaFX Applications with CSS 823

Type Selector Names 824

Style Properties 825

Applying a Stylesheet to a JavaFX Application 826

Applying Styles to the Root Node 830

Specifying Multiple Selectors in the Same Style Definition 832

Working with Colors 832

Creating a Custom Style Class Name 834

836

Inline Style Rules 837

13.2 RadioButton Controls 838

Determining in Code Whether a RadioButton Is Selected 839

Selecting a RadioButton in Code 839

Responding to RadioButton Clicks 844

13 3 CheckBox Controls 848

Determining in Code Whether a CheckBox Is Selected 848

Selecting a CheckBox in Code 849

Responding to CheckBox Clicks 853

13 4 ListView Controls 853

Retrieving the Selected Item 855

Retrieving the Index of the Selected Item 856

Responding to Item Selection with an Event Handler 859

Adding Items versus Setting Items 860

Initializing a ListView with an Arrayor an ArrayList 861

Selection Modes 862

Retrieving Multiple Selected Items 863

Working With the Elements of an ObservableList 866

Converting an ObservableList to an Array867

Using Code to Select an Item in a ListView 868

ListView Orientation 868

Creating ListViews of Objects Other Than String 869

13.5 ComboBox Controls 874

Retrieving the Selected Item 875

Responding to ComboBox Item Selection with an Event Handler 877

Editable ComboBoxes 879

13 6 Slider Controls 880

13.7 TextArea Controls 885

13 8 Menus 887

Assigning Mnemonics to Menu Items 895

13.9 The FileChooser Class 897

Displaying a FileChooser Dialog Box 898

13.10 Using Console Output to Debug a GUI Application 898

13 11 Common Errors to Avoid 902

Review Questions 902

14 1 Drawing Shapes 909

The Screen Coordinate System 909

The Shape Class and Its Subclasses 910

The Line Class 911

Changing the Stroke Color 914

The Circle Class 914

The Rectangle Class 918

The Ellipse Class 921

The Arc Class 924

The Polygon Class 928

The Polyline Class 931

The Text Class 933

Rotating Nodes 936

Scaling Nodes 938

14 2 Animation 940

The TranslateTransition Class 941

The RotateTransition Class 944

The ScaleTransition Class 949

The StrokeTransition Class 952

The FillTransition Class 953

The FadeTransition Class 954

Controlling the Animation 956

Specifying an Interpolator 956

14 3 Effects 958

The DropShadow Class 958

The InnerShadow Class 961

The ColorAdjust Class 962

The BoxBlur , GaussianBlur , and MotionBlur Classes 962

The SepiaTone Class 965

The Glow Class 966

The Reflection Class 967

Combining Effects 967

14.4 Playing Sound Files 969

14 6 Handling KeyEvents 979

Using an Anonymous Inner Class to Register a KeyEvent Handler to the Scene 980

Using a Lambda Expression to Register a KeyEvent Handler to the Scene 981

14 7 Handling Mouse Events 986

14 8 Common Errors to Avoid 992

Review Questions 992

Programming Challenges 995

Chapter 15 Recursion 999

15 1 Introduction to Recursion 999

15.2 Solving Problems with Recursion 1002

Direct and Indirect Recursion 1006

15.3 Examples of Recursive Methods 1007

Summing a Range of ArrayElements with Recursion 1007

Drawing Concentric Circles 1008

The Fibonacci Series 1011

Finding the Greatest Common Divisor 1012

15 4 A Recursive BinarySearch Method 1014

15 5 The Towers of Hanoi 1017

15.6 Common Errors to Avoid 1021

Review Questions and Exercises 1022

Programming Challenges 1025

Chapter 16 Databases 1027

16.1 Introduction to Database Management Systems 1027

JDBC 1028

SQL 1029

Using a DBMS 1029

Java DB and Apache Derby1030

Creating the CoffeeDB Database 1030

Connecting to the CoffeeDB Database 1030

Connecting to a Password-Protected Database 1032

16 2 Tables, Rows, and Columns 1033

Column Data Types 1035

PrimaryKeys 1035

16 3 Introduction to the SQL SELECT Statement 1036

Passing an SQL Statement to the DBMS 1038

Specifying Search Criteria with the WHERE Clause 1048

Sorting the Results of a SELECT Query1054

Mathematical Functions 1055

16 4

Inserting Rows 1058

Inserting Rows with JDBC 1060

16 5 Updating and Deleting Existing Rows 1062

Updating Rows with JDBC 1063

Deleting Rows with the DELETE Statement 1067

Deleting Rows with JDBC 1067

16.6 Creating and Deleting Tables 1071

Removing a Table with the DROP TABLE Statement 1074

16 7 Creating a New Database with JDBC 1074

16 8 Scrollable Result Sets 1076

16.9 Result Set Metadata 1077

16.10 Relational Data 1084

Joining Data from Multiple Tables 1086

An Order EntrySystem 1087

16.11 Advanced Topics 1100

Transactions 1100

Stored Procedures 1101

16 12 Common Errors to Avoid 1102

Review Questions and Exercises 1102

Programming Challenges 1107

Index 1109

The following appendices, online chapters, and online case studies are available on the book’s online resource page at www.pearson.com/cs-resources.

Online Appendices: Online Appendices:

Appendix A: The ASCII/Unicode Characters

Appendix B: Operator Precedence and Associativity

Appendix C: Java KeyWords

Appendix D: Installing the JDK and Using the JDK Documentation

Appendix E: Using the javadoc Utility

Appendix F: More about the Math Class

Appendix G: Packages

Appendix H: Working with Records and Random - Access Files

Appendix I: Configuring Java DB and Installing Apache Derby

Appendix J: The QuickSort Algorithm

Appendix K: Named Colors

Appendix L: Answers to Checkpoints

Appendix M: Answers to Odd-Numbered Review Questions

Online Chapters: Online Chapters:

Chapter 17: A First look at GUI Applications

Chapter 18: Advanced GUI Applications

Chapter 19: Applets and More

Chapter 20: Creating GUI Applications with JavaFX and Scene Builder

Online Case Studies: Online Case Studies:

Case Study1: Calculating Sales Commission

Case Study2: The Amortization Class

Case Study3: The PinTester Class

Case Study4: Parallel Arrays

Case Study5: The FeetInches Class

Case Study6: The SerialNumber Class

Case Study7: A Simple Text Editor Application

Location of videonotes in the text

Chapter 1 Compiling and Running a Java Program, p 14

Using an IDE, p 14

Your First Java Program, p 25

Chapter 2 Displaying Console Output, p 33

Declaring Variables, p 39

Simple Math Expressions, p 55

The Miles-per-Gallon Problem, p. 107

Chapter 3 The if Statement, p 111

The if-else Statement, p 120

The if-else-if Statement, p. 129

The Time Calculator Problem, p 182

Chapter 4 The while Loop, p 193

The Pennies for Pay Problem, p 263

Chapter 5 Passing Arguments to a Method, p 279

Returning a Value from a Method, p 293

The Retail Price Calculator Problem, p. 311

Chapter 6 Writing Classes and Creating Objects, p 325

Initializing an Object with a Constructor, p 346

The Personal Information Class Problem, p 395

Chapter 7 Accessing Array Elements in a Loop, p 407

Passing an Array to a Method, p 422

The Charge Account Validation Problem, p 487

Chapter 8 Returning Objects from Methods, p 503

Aggregation, p 515

The BankAccount , Class Copy Constructor Problem, p 552

Chapter 9 The Sentence Capitalizer Problem, p 605

Chapter 10 Inheritance, p 611

Polymorphism, p 655

The Employee and Productionworker Classes Problem, p 696

Chapter 11 Handling Exceptions, p 701

The Exception Project Problem, p 757

Chapter 12 Introduction to JavaFX, p 762

Creating Scenes, p 765

Displaying Images, p 772

The HBox Layout Container, p 777

The VBox Layout Container, p 782

The GridPane Layout Container, p 784

Button Controls and Events, p. 792

The TextField Control, p 799

Using Anonymous Inner Classes as Event Handlers, p 803

Using Lambda Expressions as Event Handlers, p 806

The Latin Translator Problem, p 818

Chapter 13 JavaFX and CSS, p 823

RadioButton Controls, p 838

CheckBox Controls, p 848

ListView Controls, p 853

ComboBox Controls, p 874

Slider Controls, p 880

The Dorm and Meal Plan Calculator Problem, p 906

Chapter 14 Drawing Shapes with JavaFX, p 909

JavaFX Animation, p 940

JavaFX Effects, p 958

Playing Sound Files with JavaFX, p 970

Playing Videos with JavaFX, p. 974

Handling Key Events in JavaFX, p. 979

Handling Mouse Events in JavaFX, p. 986

The Coin Toss Problem, p 996

Chapter 15 Reducing a Problem with Recursion, p 1003

The Recursive Power Problem, p. 1026

Chapter 16 The Customer Inserter Problem, p 1107

Preface

Welcome to StartingOutwith Java:FromControlStructuresthrough Objects, Seventh Edition. This book is intended for a one-semester or a two-quarter CS1 course. Although it is written for students with no prior programming background, even experienced students will benefit from its depth of detail.

Control Structures First, Then Objects

This text first introduces the student to the fundamentals of data types, input and output, control structures, methods, and objects created from standard libraryclasses

Next, the student learns to use arrays of primitive types and reference types After this, the student progresses through more advanced topics, such as inheritance, polymorphism, the creation and management of packages, GUI applications, recursion, and database programming From earlyin the book, applications are documented with javadoc comments As the student progresses through the text, new javadoc tags are covered and demonstrated

As with all the books in the StartingOutWith … series, the hallmark of this text is its clear, friendly, and easy-tounderstand writing. In addition, it is rich in example programs that are concise and practical.

Changes in the Seventh Edition

This book’s pedagogy, organization, and clear writing style remain the same as in the previous edition The most significant change in this edition is the switch from Swing to JavaFX in the chapters that focus on GUI development. Although Swing is not officiallydeprecated, Oracle has announced that JavaFX has replaced Swing as the standard GUI libraryfor Java.

http://www oraclecom/technetwork/java/javafx/overview/faq-1446554 html#6

In this edition, we have added the following new chapters:

CHAPTER CHAPTER 112 2

JAVAFX: GUI PROGRAMMING AND BASIC CONTROLS

JAVAFX: GUI PROGRAMMING AND BASIC CONTROLS This chapter presents the basics of developing graphical user interface (GUI) applications with JavaFX Fundamental controls, layout containers, and the basic concepts of event-driven programming are covered

CHAPTER CHAPTER 113 3 JAVAFX: ADVANCED CONTROLS JAVAFX: ADVANCED CONTROLS This chapter discusses CSS styling and advanced user interface controls.

CHAPTER CHAPTER 114 4

JAVAFX: GRAPHICS, EFFECTS, AND MEDIA

JAVAFX: GRAPHICS, EFFECTS, AND MEDIA This chapter discusses 2D shapes, animation, visual effects, playing audio and video, and responding to mouse and keyboard events.

The Swing and Applet material that appeared in the previous edition is still available on the book’s companion Web site, as the following online chapters:

The previous Chapter 12 A FirstLookAtGUIApplications is now available online as Chapter 17

The previous Chapter 13 AdvancedGUIApplications is now available online as Chapter 18

The previous Chapter 14 AppletsandMore is now available online as Chapter 19

Note: Chapter 15 from the previous edition has also been moved to the book’s companion Web site as Chapter 20 CreatingJavaFXApplicationswith Scene Builder. Although Oracle no longer officiallysupports Scene Builder, it is still available as an open source tool at http://http://gluonhq.com/labs/scene-builder/

In addition to the new JavaFX chapters, the Database chapter, which is now Chapter 15 , has been updated to use JavaFX instead of Swing for its GUI applications We have also added several new, motivational programming problems throughout the book

Organization of the Text

The text teaches Java step-by-step Each chapter covers a major set of topics and builds knowledge as students progress through the book Although the chapters can be easilytaught in their existing sequence, there is some flexibility. Figure P-1 shows chapter dependencies. Each box represents a chapter or a group of chapters. An arrow points from a chapter to the chapter that must be previouslycovered.

igurePP-1 -1 Chapter dependencies Chapter dependencies

Brief Overview of Each Chapter

Chapter

1

: Introduction to Computers and Java

This chapter provides an introduction to the field of computer science and covers the fundamentals of hardware, software, and programming languages. The elements of a program, such as keywords, variables, operators, and punctuation, are discussed byexamining a simple program. An overview of entering source code, compiling, and executing a program is presented. A brief historyof Java is also given.

FFigure

Chapter 2 : Java Fundamentals.

This chapter gets students started in Java byintroducing data types, identifiers, variable declarations, constants, comments, program output, and simple arithmetic operations The conventions of programming style are also introduced Students learn to read console input with the Scanner class and with dialog boxes using JOptionPane .

Chapter 3 : Decision Structures.

In this chapter students explore relational operators and relational expressions and are shown how to control the flow of a program with the if , if-else , and if-else-if statements Nested if statements, logical operators, the conditional operator, and the switch statement are also covered The chapter discusses how to compare String objects with the equals , compareTo , equalsIgnoreCase , and compareToIgnoreCase methods Formatting numeric output with the System.out.printf method and the String.format method is discussed

Chapter 4 : Loops and Files.

This chapter covers Java’s repetition control structures. The while loop , do-while loop , and for loop are taught, along with common uses for these devices Counters, accumulators, running totals, sentinels, and other application-related topics are discussed Simple file operations for reading and writing text files are included

Chapter 5 : Methods.

In this chapter students learn how to write void methods, value-returning methods, and methods that do and do not accept arguments The concept of functional decomposition is discussed

Chapter 6 : A First Look at Classes.

This chapter introduces students to designing classes for the purpose of instantiating objects Students learn about class fields and methods, and UML diagrams are introduced as a design tool Then constructors and overloading are discussed A BankAccount class is presented as a case study, and a section on object-oriented design is included This section leads the students through the process of identifying classes and their responsibilities within a problem domain There is also a section that brieflyexplains packages and the import statement

Chapter 7 : Arrays and the ArrayList Class

In this chapter students learn to create and work with single and multi-dimensional arrays. Numerous arrayprocessing techniques are demonstrated, such as summing the elements in an array, finding the highest and lowest values, and sequentiallysearching an array. Other topics, including ragged arrays and variable-length arguments (varargs), are also discussed The ArrayList class is introduced, and Java’s generic types are briefly discussed and demonstrated

Chapter 8 : A Second Look at Classes and Objects.

This chapter shows students how to write classes with added capabilities Static methods and fields, interaction between objects, passing objects as arguments, and returning objects from methods are discussed Aggregation and the “has a ” relationship is covered, as well as enumerated types A section on object-oriented design shows how to use CRC cards to determine the collaborations among classes

Chapter 9 : Text Processing and More about Wrapper Classes.

This chapter discusses the numeric and Character wrapper classes Methods for converting numbers to strings, testing the case of characters, and converting the case of characters are covered Autoboxing and unboxing are also discussed More String class methods are covered, including using the split method to tokenize strings The chapter also covers the StringBuilder class.

Another random document with no related content on Scribd:

Dans le poste où la Providence l’avait placé, Robert «ajouta beaucoup à l’idée qu’on avait de sa capacité; en peu de temps il donna une nouvelle face à son abbaye, dont le temporel et le spirituel avaient également souffert des derniers troubles.» De toutes parts on accourut se ranger sous sa houlette paternelle, et le nombre des religieux s’éleva bientôt à soixante: «N’ayant trouvé que quarante religieux conventuels en ce Mont, dit dom Huynes, il en receut encor une vingteine, et eust soin que ce nombre de soixante ne diminuast, afin, par ce moyen, de satisfaire aysément aux dévotions des pèlerins et que le service

Fig. 36.—Face ouest du Mont-Saint-Michel, construite par Robert de Torigni.—A droite figure un échafaudage de 62 mètres de hauteur, pour le montage des matériaux nécessaires à la restauration, commencée depuis 1872.

divin y fut faict honorablement.» En effet, de nombreux étrangers venaient chaque jour invoquer l’archange saint Michel et admirer la science de Robert. Dès la seconde année de cette prélature, l’archevêque de Rouen et

les évêques d’Avranches, de Coutances et de Bayeux visitèrent le MontSaint-Michel et y passèrent quatre jours, tant étaient grands les charmes de la conversation de Robert; dans ce voyage, Hugues, archevêque de Rouen, consacra l’autel érigé dans la crypte de l’Aquilon. Deux ans plus tard, en 1158, Henri II, dans son expédition contre la Bretagne, accomplit un pèlerinage au mont Tombe, en compagnie de l’évêque d’Avranches qui l’avait réconcilié avec son rival, Conan IV; le monarque dîna au réfectoire à côté des moines et combla Robert de ses faveurs; la même année, il retourna au Mont une deuxième fois avec le roi de France, Louis VII, quatre abbés, plusieurs personnages illustres et un grand nombre de pieux fidèles. Ce pèlerinage est un des plus imposants de tout le moyen âge. Ces deux monarques avec ces abbés et ces moines, cette foule de pèlerins qui se déroule sur les grèves, monte en spirale sur le flanc de la montagne et remplit la vaste enceinte de la basilique, présentent un spectacle que nous avons peine à nous figurer, même après les grandes manifestations de notre époque.

«La reine d’Angleterre, disent les auteurs de l’Histoire littéraire de la France, ne céda point à son époux en estime pour l’abbé du Mont-SaintMichel. Elle lui en donna un gage bien marqué;» car, ayant mis au monde, «l’an (1161), à Domfront, une fille nommée comme elle, Éléonore, elle voulut qu’il la tînt sur les fonts de baptême avec l’évêque d’Avranches.»

A l’extérieur, l’influence des religieux s’étendit au loin. Henri II choisit Robert pour conseiller intime, et lui confia la garde du château de Pontorson, dont il avait destitué le gouverneur sur les plaintes des habitants du pays; quelques années plus tard, l’illustre abbé fit le voyage d’Angleterre pour assister à la translation des reliques de saint Edouard; et, après le meurtre de Thomas Becket, il joua un rôle important au concile d’Avranches, à la suite duquel Henri II se fit relever des censures de l’Église; il prit part également au concile de Tours et contribua sans doute par ses conseils à l’extirpation du schisme d’Octavien. De son côté le seigneur de Fougères venait alors rendre hommage à l’abbé du Mont, et chaque année, le jour de la Saint-Michel, il sonnait les premiers coups de cloche pour l’office solennel. Les bénédictins n’étaient pas moins honorés à la cour de Rome, et Alexandre III leur donna plus d’une marque de sa haute protection. En un mot, la renommée du monastère ne connut point de bornes. Il en fut ainsi de la prospérité matérielle; car, d’après les anciennes archives, Robert ne reçut pas moins de cent chartes de donation.

A l’intérieur du cloître, les sciences et les arts florissaient avec un éclat jusqu’alors inconnu, et saint Michel, l’ange de la lumière, le prince éthéré, comme on disait souvent, n’avait jamais compté un plus

Fig. 37.—Moine présentant un manuscrit à saint Michel. Dessin colorié d’un ms. du Mont-SaintMichel: Sancti Clementis recognitiones. Onzième siècle. Conservé à la bibliothèque d’Avranches. D’après une photographie de MM. Maquerel et Saillard.

grand nombre de dévots serviteurs, ou plutôt d’ardents disciples. Dès le huitième et le neuvième siècle, avons-nous dit plus haut, les chanoines de Saint-Aubert s’étaient livrés à l’étude avec succès; dans les siècles suivants, le Mont-Saint-Michel possédait une école où l’on cultivait toutes les branches des connaissances humaines. L’Écriture Sainte et les principaux écrits des Pères, surtout de saint Grégoire le Grand et de saint Augustin, la physique et la philosophie d’Aristote, les œuvres de Cicéron, de Sénèque, de Marcien et de Boëce, la grammaire, l’éloquence, le calcul, l’astronomie, l’histoire, la jurisprudence, la poésie, la musique, la peinture et l’architecture, la médecine elle-même et l’art de gouverner les peuples étaient étudiés et enseignés par les

Fig. 38.—Saint Augustin écrivant sous la dictée d’un ange.

Fig. 39.—Lettre B historiée.

Fig. 40.—Saint Michel terrassant le démon. Dessins au trait coloriés d’un ms. du Mont-Saint-Michel: Sancti Augustini super psalmos. Onzième siècle. Bibliothèque d’Avranches. D’après une photographie de MM. Maquerel et Saillard. enfants de Saint-Benoît. Tous, maîtres et élèves, vénéraient l’Archange comme leur guide et leur patron. C’est ainsi que, dès la plus haute antiquité,

saint Michel exerce sa mission de protecteur des lettres et de propagateur des saines doctrines.

Parmi les moines du Mont-Saint-Michel, un grand nombre comme Hilduin, Scoliand, Gautier, Raoul et Fromond, transcrivaient et enluminaient les manuscrits précieux dont la révolution a dépouillé l’abbaye (fig. 37 à 44); d’autres composaient de pieux commentaires sur les livres saints, ou annotaient les ouvrages des Pères de l’Église et des philosophes de l’antiquité; au premier rang brillaient les Anastase, les Robert de Tombelaine, et les autres dont il a été parlé dans le cours de cette histoire. Les travaux exécutés par ces humbles religieux ont été dans ces derniers temps l’objet d’études sérieuses, et ont fixé l’attention de plusieurs érudits, en tête desquels nous pouvons placer M. l’abbé Desroches, Ravaisson, Bethmann, Taranne et Léopold Delisle. En parcourant ces vieux parchemins que le temps a épargnés, on voit revivre le moyen âge avec ses traits les plus saillants. La littérature est simple et naïve, comme il convient à son berceau; les récits historiques sont accompagnés de pieuses légendes où la poésie a une large part; la pensée a presque toujours quelque chose d’élevé, et, à chaque page, une note, une réflexion, une prière nous révèle les sentiments du copiste ou du lecteur. La méditation des saintes Lettres était la principale occupation des bénédictins; venait ensuite l’étude des Pères de l’Église et des auteurs profanes; les arts libéraux et la linguistique elle-même occupaient les moments de loisirs. Ainsi, pour en fournir des exemples, un manuscrit du dixième ou onzième siècle renferme des cantiques composés à la gloire de saint Michel et notés en musique; un autre du onzième siècle contient un passage intéressant sur les divers alphabets. Les couleurs employées pour les titres et les initiales, les miniatures dont les majuscules sont ornées, les dessins qui accompagnent les récits ou les controverses, l’écriture gothique avec ses variétés, nous fournissent des détails importants sur le progrès des arts à la fin du dixième siècle et dans le cours des deux siècles suivants. Les sujets qui sont choisis de préférence et représentés dans ces enluminures appartiennent le plus souvent à l’histoire du Mont; par exemple, c’est l’Archange saint Michel avec le dragon sous ses pieds (fig. 37 et 40). Nous trouvons aussi dans le volume des œuvres choisies de saint Jérôme, de saint Augustin et de saint Ambroise, une scène où l’évêque d’Hippone dispute avec un hérétique, pendant que Notre-Seigneur, placé audessus dans une tribune, semble assister à la discussion et y prendre un vif intérêt. Tous ces ouvrages avaient une grande valeur à une époque où les

livres étaient rares; aussi les bénédictins les regardaient comme l’une de leurs principales richesses, vouaient à l’anathème quiconque oserait les dérober et les plaçaient sous la garde de l’Archange lui-même. Le volume de l’Exposition morale de saint Grégoire contient la note suivante: «Ce livre appartient à saint Michel;..... Si quelqu’un le dérobe, qu’il soit anathème. Amen. Fiat. Fiat. Amen dans le Seigneur.»

La construction de la basilique et les travaux entrepris par les Roger avaient favorisé ce progrès des sciences et des arts en attirant au

Fig. 41.—Saint Augustin discutant contre Fauste. Miniature d’un ms. du Mont-Saint-Michel: Augustinus contra Faustum. Onzième ou douzième siècle. Bibliothèque d’Avranches. D’après une photographie de MM. Maquerel et Saillard.

Mont des artistes habiles et des savants distingués; mais Robert de Torigni contribua plus à lui seul que tous ses prédécesseurs à la gloire littéraire du Mont-Saint-Michel. En effet, quelle plume fut alors aussi féconde que la sienne? Outre les manuscrits précieux dont la bibliothèque se trouva enrichie en peu d’années, plusieurs ouvrages furent composés par les bénédictins eux-mêmes. L’abbaye mérita le beau titre de cité des livres, et Robert, le plus savant, le plus laborieux de tous les moines, reçut le nom de

grand libraire du Mont-Saint-Michel. On lui doit en particulier l’Histoire du roi d’Angleterre, Henri Iᵉʳ, qui est

Fig. 42.—Charte de donation de Gonnor

Fig. 43.—Charte de donation de Robert. Dessins à la plume d’un ms. du Mont-Saint-Michel: Cartularium monasterii montis sancti Michaelis. Douzième siècle. D’après une photographie de MM. Maquerel et Saillard.

la continuation du travail de Guillaume de Jumièges sur les ducs de Normandie, l’Appendice à la Chronique de Sigebert, moine de Gembloux, un Traité sur les ordres religieux, une Histoire du monastère du Mont-SaintMichel, un Prologue sur l’exposition des épîtres de saint Paul, d’après saint Augustin. Ces ouvrages et les autres du même auteur ont un mérite sérieux; la chronique surtout a obtenu un grand et légitime succès. Robert du Mont y corrige avantageusement les défauts de Sigebert de Gembloux; son style calme, grave, simple, naïf parfois, est plus en rapport avec la dignité de l’histoire; sa critique est plus impartiale, plus judicieuse, plus sûre, sans être pourtant à l’abri de tout reproche; il suit une méthode plus rigoureuse dans

l’arrangement des faits, ce qui le rend agréable, clair et facile à suivre. Les auteurs de l’Histoire littéraire de la France en ont porté ce jugement: «C’est, depuis la mort d’Orderic Vital, le seul historien français que nous puissions opposer au grand nombre d’historiens anglais qui, à la même époque, écrivaient leurs chroniques.»

Sous la prélature de Robert du Mont, Guillaume de Saint-Pair, nommé «le moine jovencel» ou «la kalandre de la solitude,» composait son Roman du Mont-Saint-Michel. Il ne le cède pas à l’auteur du Roman de Rou pour l’exactitude historique, et comme poète il lui est supérieur. Rien n’est plus attachant que le récit des événements accomplis au mont Tombe jusqu’au règne de Robert Courte-Heuse! Le but qu’il se propose d’atteindre, son nom et celui de l’abbé sous lequel il écrit, nous sont révélés en tête du poème:

«Molz pelerins qui vunt al Munt, «Enquierent molt, e grant dreit unt,

«Comment l’igliese fut fundée «Premierement, et estorée.

«Cil qui lor dient de l’estoire

«Que cil demandent, en memoire

«Ne l’unt pas bien, ainz vunt faillant

«En plusors leus, e mespernant.

«Por faire-la apertement

«Entendre à cels qui escient

«N’unt de clerzie, l’a tornée

«De latin tote et ordenée

«Par veirs romieus novelement

«Molt en segrei, par son convent, «Uns jovencels; moine est del Munt, «Deus en son reigne part li dunt!

«Guillelme a non de Seint-Paier, «Cen veit escrit en cest quaier.

«El tens Robeirt de Torignié

«Fut cil romanz fait e trové.»

Robert du Mont ne travailla pas avec moins d’ardeur au progrès de l’art chrétien qu’au développement des lettres et des sciences divines ou humaines. Sous sa direction, les moines copièrent plusieurs volumes dont un

certain nombre sont regardés comme des chefs-d’œuvre de calligraphie et renferment des enluminures précieuses pour l’histoire du Mont-SaintMichel. Dans le beau Cartulaire qui remonte à cette époque, on trouve la troisième apparition de saint Michel au bienheureux Aubert; l’Archange aux ailes déployées s’incline vers le pontife et le touche à la tête, tandis que des personnages mystérieux jouent de divers instruments de musique en signe de réjouissance; le lit et la chambre de l’évêque, l’édifice qui est représenté audessous, la vivacité du coloris, les différentes ornementations des dessins nous offrent autant de particularités à la fois originales et instructives (fig. 42 à 44).

L’illustre abbé joignit à son titre de libraire celui d’architecte du MontSaint-Michel. D’après les indications de M. Corroyer, on lui doit, à l’extrémité de la façade romane de la basilique, les deux anciennes tours et le porche qui servait à les unir; à l’ouest, les bâtiments adossés aux substructions primitives; et, au sud, les corps de logis que les modernes ont désignés sous les noms d’hôtellerie et d’infirmerie du Mont-Saint-Michel. Ces édifices, dont les uns ont disparu et les autres sont restés debout comme des témoins éloquents de la puissance et du génie de nos pères (fig. 45 et 46), appartiennent à cette belle époque où le roman, parvenu à son plus haut degré de perfection, s’élance, se dégage en quelque sorte des entraves du plein-cintre pour se transformer bientôt en ogive élégante et gracieuse.

La carrière de Robert était remplie. Son âme, disent les annalistes, se détacha de son corps et alla jouir de la vie bienheureuse, avec le saint Archange dont «il avait si honorablement gouverné l’abbaye;» sa dépouille mortelle reçut la sépulture sous le portique de l’église, au pied de l’une des tours qu’il avait élevée lui-même pendant sa vie. Il était âgé de quatre-vingts ans, dont trente-deux s’étaient écoulés depuis sa nomination à l’abbaye du Mont-Saint-Michel. Les religieux l’inhumèrent

Fig. 44.—Troisième apparition de saint Michel à saint Aubert. Dessin au trait colorié d’un ms. du Mont-Saint-Michel: Cartularium monasterii montis sancti Michaelis. Douzième siècle. Bibliothèque d’Avranches. D’après une photographie de MM. Maquerel et Saillard.

avec sa crosse et ses ornements pontificaux, et placèrent dans le sarcophage un disque de plomb portant les inscriptions suivantes:

✠ HIC. REQVIESCIT. ROBERTUS. DE. TORIGNEIO. ABBAS. HVIVS. LOCI.

✠ QVI. PREFVIT. HVIC. MONASTERIO. XXX. II.

✠ VIXIT. VERO. LXXX ANNIS.

Fig. 45.—Constructions de Robert de Torigni. Coupe longitudinale, de l’est à l’ouest. P D B F .

Fig. 46.—Constructions de Robert de Torigni. Coupe transversale, du nord au sud.

Ici repose Robert de Torigni, abbé de ce lieu. Il gouverna ce monastère trente-deux ans et en vécut quatre-vingts (fig. 47 et 48).

C’est au 23 ou au 24 juin 1186, qu’il faut rapporter la mort de l’illustre abbé. Le Mont-Saint-Michel perdait en lui un savant et un saint; Robert, en effet, était un théologien profond, un érudit remarquable, un historien consciencieux, un architecte habile, et par-dessus tout un moine régulier, pieux et zélé, en un mot l’une des plus belles figures du cloître à cette époque si féconde en grands hommes. Jamais cette double auréole de la science et de la vertu ne devait briller avec autant d’éclat sur le front des religieux qui portèrent la crosse dans la suite; cependant les hommes d’une telle valeur impriment à leurs œuvres une forte impulsion qui se ralentit d’ordinaire, mais ne s’arrête pas au moment où ils descendent dans la tombe; c’est pourquoi, après la mort de Robert, le Mont-Saint-Michel compta des années et même des siècles de prospérité.

Un religieux du monastère, dom Martin, désigné dans une inscription de l’époque sous le nom de Martin «de Furmendeio,» fut élu en 1187, treize mois après la mort de Robert de Torigni. Ce long délai prouve que les bénédictins, avant de procéder à une élection canonique, prirent toutes les mesures de prudence nécessaires pour ne pas éveiller les susceptibilités de Henri II. Leur choix ne pouvait tomber sur un sujet plus digne de succéder à Robert; Martin, en effet, gouverna l’abbaye avec sagesse, défendit énergiquement les droits de ses religieux et montra une grande habileté dans la gestion des biens temporels; mais sa prélature devait être de courte durée. Il mourut le 19 février 1191, et reçut la sépulture à côté de son prédécesseur; un disque de plomb fut aussi placé dans son sarcophage, avec l’inscription suivante:

✠ HIC. REQVIESCIT. DOM. MARTIN. DE. FVRMENDEIO. ABBAS. HVIVS LOCI:

Ici repose dom Martin «de Furmendeio,» abbé de ce lieu (fig. 49).

Dans cette dernière moitié du douzième siècle, le culte de l’Archange dut principalement son extension en France et chez les nations voisines à

Fig. 47.—Épitaphe de Robert de Torigni.—Face. Fig. 48.—Épitaphe de Robert de Torigni.—Revers.

l’influence du mont Tombe, et aussi à l’institution de l’ordre de Saint-Michel en Portugal, sous le règne d’Alphonse Henriquez. Cet ordre fondé en 1167,

avait pour but de combattre l’erreur et de défendre la foi; les membres devaient en outre réciter chaque jour les mêmes prières que les convers de Cîteaux, donner l’exemple de la douceur et de l’humilité,

Fig. 49.—Crosse de Robert de Torigni.

Fig. 50.—Crosse de dom Martin.

réprimer les superbes et protéger les faibles. Cette institution, si noble dans sa fin, était née sur un champ de bataille, à Santarem, où Alphonse Henriquez, à la tête d’une poignée de braves, tailla en pièces l’armée formidable d’Albrac, roi musulman de Séville, et reprit l’étendard du royaume que l’ennemi lui avait enlevé au plus fort du combat.

Robert et ses moines, en se livrant à l’étude avec ardeur, avaient honoré celui qu’ils appelaient leur maître et dont ils se disaient les disciples; leur

maison était devenue «la cité des livres,» et leur école «un phare lumineux» qui jetait un vif éclat au milieu de la société féodale. A mesure que l’Église ouvrit de nouveaux asiles aux sciences et aux lettres, et posa les fondements de ces mille universités libres qui se disputèrent l’honneur de répandre en tous lieux le bienfait de l’éducation,

Fig. 51.—Épitaphe de dom Martin.

l’Archange fut choisi pour veiller sur ces chères espérances de l’avenir; il partagea cette noble mission avec la sagesse éternelle, avec Charlemagne, sainte Barbe et sainte Catherine d’Alexandrie, avec saint Augustin, saint Louis, saint Thomas d’Aquin, le bienheureux Albert le Grand, et tant d’autres qui avaient allié le culte des lettres à l’amour et à la pratique de la vertu; les grandes villes, à l’exemple de Paris et de Bruxelles, bâtirent des collèges sous le nom et le vocable de saint Michel; dans les ordres militaires eux-mêmes, spécialement en celui de France, les dignités étaient souvent la

récompense des travaux intellectuels. En 1771, les chevaliers, au nombre de soixante-dix-sept étaient presque tous des savants distingués; c’est sous le même patronage qu’une société s’est établie de nos jours pour la diffusion des bons livres.

Porte-drapeau du Christ et vainqueur de l’Islam, protecteur des lettres et propagateur des saines doctrines; tels sont les principaux titres que la piété donnait de préférence à saint Michel à la mort de Robert de Torigni. Des circonstances ménagées par la Providence allaient resserrer les liens qui unissaient l’Archange avec la France du moyen âge.

LE MONT-SAINT-MICHEL A L’ÉPOQUE DE PHILIPPE-AUGUSTE

la mort de dom Martin jusqu’à l’an 1286, quatre abbés gouvernèrent successivement le Mont-Saint-Michel: Jourdain, Radulphe des Isles, Thomas des Chambres et Raoul de Villedieu. Tous se montrèrent les dignes héritiers de Robert du Mont. Les bénédictins les ayant élus librement, leur obéirent avec le respect et la soumission qu’un moine doit à son supérieur légitime; aussi, pendant que la France et l’Angleterre étaient en proie à l’agitation et à la discorde, le monastère jouit d’une grande prospérité à l’intérieur et opposa une vive résistance aux attaques du dehors. Il est facile de juger par là avec quelle sagesse les règles primitives laissaient aux religieux du Mont le libre choix de leurs abbés. C’est pour avoir méconnu ce droit que les ducs de Normandie et les rois de France compromirent plus d’une fois les intérêts de l’abbaye.

Jourdain, qui était venu se ranger sous la houlette de Robert à l’exemple de plusieurs personnages distingués, comme Hamon de Beauvoir, Alfred de Moidrey, Guillaume de Verdun et Raoul de Boucey, fut élu le 12 mars 1191 et mourut le 6 août 1212, après une prélature de 21 ans. Pour se conformer au désir qu’il avait exprimé, on l’inhuma dans le prieuré de Notre-Dame-laGisante, sur le rocher de Tombelaine. Il montra une prudence consommée au milieu des grands événements dont il fut non seulement le témoin, mais auxquels il dut prendre part, malgré son amour de la vie humble et cachée; cependant

Fig. 52.—La Merveille.—Bâtiments de l’ouest. Coupe transversale du nord au sud. État actuel.

ses vertus ne le mirent pas à l’abri de tous soupçons, et des esprits malveillants critiquèrent son administration; ils portèrent même leurs plaintes au tribunal du souverain Pontife, Innocent III, qui, après un mûr examen, rendit justice à l’accusé et infligea un blâme sévère à ses indignes détracteurs.

Radulphe des Isles était également religieux du Mont-Saint-Michel quand il réunit les suffrages des bénédictins et prit le gouvernement du monastère; il se fit remarquer par une grande fermeté de caractère, et sa principale occupation fut de maintenir la discipline dans toute sa vigueur primitive. Au témoignage des historiens les plus accrédités, il n’occupa la stalle que six ans, de 1212 à 1218.

Thomas des Chambres montra peut-être moins d’énergie que Radulphe des Isles; mais, en retour, il se distingua davantage par l’éminence de ses vertus, la modération de son caractère et la sagesse de ses conseils. Il ne négligea rien pour inspirer à ses religieux le détachement des biens périssables de ce monde, ou leur faire comprendre la sublimité de leur vocation et l’excellence de la vie monastique; dans ce but il rédigea des constitutions, qui furent approuvées par Théobald, archevêque de Rouen.

Thomas des Chambres étant mort le 5 juillet 1225, Raoul de Villedieu lui succéda dans la charge d’abbé. Choisi comme ses prédécesseurs parmi les bénédictins du mont Tombe, il aimait son monastère, et, pendant les onze années de son gouvernement, il s’occupa sans cesse à défendre les intérêts et les privilèges de ses religieux. Il se rendit célèbre surtout par les travaux remarquables qu’il fit exécuter, et mérita d’être appelé par les annalistes l’un des grands «architectes» du Mont-Saint-Michel.

Les quatre prélatures de Jourdain, de Radulphe des Isles, de Thomas des Chambres et Raoul de Villedieu, renferment presque un demi-siècle, de 1191 à 1236, et embrassent une grande partie du règne de Philippe-Auguste, le règne entier de son successeur, Louis VIII, surnommé le Lion, et les premières années de saint Louis; de plus, elles sont restées célèbres à cause des événements qui s’y rattachent.

Philippe-Auguste, malgré les fautes qui ont terni une phase de son existence, a mérité le nom de «Charlemagne capétien;» il opéra de sages réformes pour remédier aux abus du régime féodal; il dota magnifiquement l’Université de Paris appelée dès lors la fille aînée des

Fig. 53.—Façades est de la Merveille et des bâtiments formant l’entrée de l’abbaye.—Restauration.

rois de France; il réunit à la couronne la terre d’Auvergne, les comtés d’Artois, d’Évreux, de Meulan, de Touraine, du Maine, d’Anjou, du Poitou, de Vermandois, de Valois et d’Alençon, avec le beau duché de Normandie; en un mot il contribua pour une large part à fonder notre unité nationale. Sous ce règne, le culte de saint Michel fit de rapides progrès dans toute l’étendue de la France. Les ducs de Normandie, surtout depuis la fameuse journée de Mortemer, en 1054, avaient presque toujours vécu en mauvaise intelligence avec leurs suzerains, et le Mont-Saint-Michel qu’ils tenaient sous leur domination n’offrait plus à nos rois l’intérêt d’un sanctuaire national; Louis VII l’avait bien visité, s’y était même réconcilié avec son

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.