100% found this document useful (3 votes)
29 views56 pages

(eBook PDF) Starting Out with Java: From Control Structures through Data Structures 3rd Edition download

The document provides links to various eBook PDFs related to Java and C++ programming, including multiple editions of 'Starting Out with Java' and 'Data Structures and Abstractions with Java'. It encourages users to download these resources from the specified website, ebooksecure.com. The content also includes a table of contents for programming topics covered in the books.

Uploaded by

pontisomer06
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
29 views56 pages

(eBook PDF) Starting Out with Java: From Control Structures through Data Structures 3rd Edition download

The document provides links to various eBook PDFs related to Java and C++ programming, including multiple editions of 'Starting Out with Java' and 'Data Structures and Abstractions with Java'. It encourages users to download these resources from the specified website, ebooksecure.com. The content also includes a table of contents for programming topics covered in the books.

Uploaded by

pontisomer06
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

(eBook PDF) Starting Out with Java: From Control

Structures through Data Structures 3rd Edition


download

https://ebooksecure.com/product/ebook-pdf-starting-out-with-java-
from-control-structures-through-data-structures-3rd-edition/

Download full version ebook from https://ebooksecure.com


We believe these products will be a great fit for you. Click
the link to download now, or visit ebooksecure.com
to discover even more!

(eBook PDF) Starting Out with Java: From Control


Structures through Data Structures 4th Edition

http://ebooksecure.com/product/ebook-pdf-starting-out-with-java-
from-control-structures-through-data-structures-4th-edition/

(eBook PDF) Starting Out with Java: From Control


Structures through Objects, 7th Edition

http://ebooksecure.com/product/ebook-pdf-starting-out-with-java-
from-control-structures-through-objects-7th-edition/

(eBook PDF) Starting Out with C++: From Control


Structures through Objects 8th Edition

http://ebooksecure.com/product/ebook-pdf-starting-out-with-c-
from-control-structures-through-objects-8th-edition/

(eBook PDF) Starting Out with C++: From Control


Structures through Objects, Brief Version 8th Edition

http://ebooksecure.com/product/ebook-pdf-starting-out-with-c-
from-control-structures-through-objects-brief-version-8th-
edition/
(eBook PDF) Starting Out with C++ from Control
Structures to Objects 9th Edition

http://ebooksecure.com/product/ebook-pdf-starting-out-with-c-
from-control-structures-to-objects-9th-edition/

(eBook PDF) Data Structures and Abstractions with Java


4th Edition

http://ebooksecure.com/product/ebook-pdf-data-structures-and-
abstractions-with-java-4th-edition/

Data Structures and Abstractions with Java 5th Edition


(eBook PDF)

http://ebooksecure.com/product/data-structures-and-abstractions-
with-java-5th-edition-ebook-pdf/

(eBook PDF) Data Structures and Abstractions with Java


4th Global Edition

http://ebooksecure.com/product/ebook-pdf-data-structures-and-
abstractions-with-java-4th-global-edition/

(eBook PDF) Starting Out with Java: Early Objects 5th


Edition

http://ebooksecure.com/product/ebook-pdf-starting-out-with-java-
early-objects-5th-edition/
Contents vii

Having Multiple Conditionally Executed Statements . . . . . . . . . . . . . . . . 119


Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Comparing Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.2 The if-else Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.3 Nested if Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.4 The if-else-if Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
3.5 Logical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
The Precedence of Logical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Checking Numeric Ranges with Logical Operators . . . . . . . . . . . . . . . . . 144
3.6 Comparing String Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Ignoring Case in String Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
3.7 More about Variable Declaration and Scope . . . . . . . . . . . . . . . . . . . 151
3.8 The Conditional Operator (Optional) . . . . . . . . . . . . . . . . . . . . . . . . 152
3.9 The switch Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
3.10 Displaying Formatted Output with System.out.printf
and String.format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Format Specifier Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Precision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Specifying a Minimum Field Width . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Formatting String Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
The String.format Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
3.11 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Review Questions and Exercises   179
Programming Challenges   184

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 Body
of 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
viii Contents

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
Hierarchical Method Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Using Documentation Comments with Methods . . . . . . . . . . . . . . . . . . 278
5.2 Passing Arguments to a Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Argument and Parameter Data Type Compatibility . . . . . . . . . . . . . . . . 281
Parameter Variable Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Passing Multiple Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Arguments Are Passed by Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Passing Object References to a Method . . . . . . . . . . . . . . . . . . . . . . . . . 285
Using the @param Tag in Documentation Comments . . . . . . . . . . . . . . . 288
5.3 More about Local Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
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 . . . . . . . . . . . . . . . . . . . . . . . . 306
5.6 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Review Questions and Exercises   307
Programming Challenges   312
Contents ix

Chapter 6 A First Look at Classes   319


6.1 Objects and Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Classes: Where Objects Come From . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Classes in the Java API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Primitive Variables vs. Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
6.2 Writing a Simple Class, Step by Step . . . . . . . . . . . . . . . . . . . . . . . . . 326
Accessor and Mutator Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
The Importance of Data Hiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Avoiding Stale Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Showing Access Specification in UML Diagrams . . . . . . . . . . . . . . . . . . . 341
Data Type and Parameter Notation in UML Diagrams . . . . . . . . . . . . . .341
Layout of Class Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
6.3 Instance Fields and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
6.4 Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Showing Constructors in a UML Diagram . . . . . . . . . . . . . . . . . . . . . . . 350
Uninitialized Local Reference Variables . . . . . . . . . . . . . . . . . . . . . . . . . 350
The Default Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Writing Your Own No-Arg Constructor . . . . . . . . . . . . . . . . . . . . . . . . . 351
The String Class Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
6.5 Passing Objects as Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
6.6 Overloading Methods and Constructors . . . . . . . . . . . . . . . . . . . . . . 372
The BankAccount Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Overloaded Methods Make Classes More Useful . . . . . . . . . . . . . . . . . . 380
6.7 Scope of Instance Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Shadowing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
6.8 Packages and import Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Explicit and Wildcard import Statements . . . . . . . . . . . . . . . . . . . . . . . . 382
The java.lang Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Other API Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
6.9 Focus on Object-Oriented Design: Finding the Classes
and Their Responsibilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Finding the Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Identifying a Class’s Responsibilities . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
This Is Only the Beginning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
6.10 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Review Questions and Exercises   391
Programming Challenges   396

Chapter 7 Arrays and the ArrayList Class   405


7.1 Introduction to Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Accessing Array Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Inputting and Outputting Array Contents . . . . . . . . . . . . . . . . . . . . . . . 408
Java Performs Bounds Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Watch Out for Off-by-One Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Array Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Alternate Array Declaration Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 414
x Contents

7.2 Processing Array Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415


Array Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
The Enhanced for Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Letting the User Specify an Array’s Size . . . . . . . . . . . . . . . . . . . . . . . . . 419
Reassigning Array Reference Variables . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Copying Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
7.3 Passing Arrays as Arguments to Methods . . . . . . . . . . . . . . . . . . . . . 424
7.4 Some Useful Array Algorithms and Operations . . . . . . . . . . . . . . . . . 428
Comparing Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Summing the Values in a Numeric Array . . . . . . . . . . . . . . . . . . . . . . . . 429
Getting the Average of the Values in a Numeric Array . . . . . . . . . . . . . . 430
Finding the Highest and Lowest Values in a Numeric Array . . . . . . . . . . 430
The SalesData Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Partially Filled Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Working with Arrays and Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
7.5 Returning Arrays from Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
7.6 String Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Calling String Methods from an Array Element . . . . . . . . . . . . . . . . . . . 445
7.7 Arrays of Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
7.8 The Sequential Search Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
7.9 Two-Dimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Initializing a Two-Dimensional Array . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
The length Field in a Two-Dimensional Array . . . . . . . . . . . . . . . . . . . . 457
Displaying All the Elements of a Two-Dimensional Array . . . . . . . . . . . . 459
Summing All the Elements of a Two-Dimensional Array . . . . . . . . . . . . . 459
Summing the Rows of a Two-Dimensional Array . . . . . . . . . . . . . . . . . . 460
Summing the Columns of a Two-Dimensional Array . . . . . . . . . . . . . . . 460
Passing Two-Dimensional Arrays to Methods . . . . . . . . . . . . . . . . . . . . .461
Ragged Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
7.10 Arrays with Three or More Dimensions . . . . . . . . . . . . . . . . . . . . . . . 464
7.11 The Selection Sort and the Binary Search Algorithms . . . . . . . . . . . . . 465
The Selection Sort Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
The Binary Search Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
7.12 Command-Line Arguments and Variable-Length Argument Lists . . . . 470
Command-Line Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Variable-Length Argument Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
7.13 The ArrayList Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Creating and Using an ArrayList Object . . . . . . . . . . . . . . . . . . . . . . . 475
Using the Enhanced for Loop with an ArrayList . . . . . . . . . . . . . . . . . 476
The ArrayList Class’s toString method . . . . . . . . . . . . . . . . . . . . . . . . 477
Removing an Item from an ArrayList . . . . . . . . . . . . . . . . . . . . . . . . . .478
Inserting an Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Replacing an Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Capacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Using the Diamond Operator for Type Inference (Java 7) . . . . . . . . . . . . 482
7.14 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Contents xi

Review Questions and Exercises   483


Programming Challenges   488

Chapter 8 A Second Look at Classes and Objects   495


8.1 Static Class Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
A Quick Review of Instance Fields and Instance Methods . . . . . . . . . . . . 495
Static Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Static Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Static Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
8.2 Passing Objects as Arguments to Methods . . . . . . . . . . . . . . . . . . . . 502
8.3 Returning Objects from Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
8.4 The toString Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
8.5 Writing an equals Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
8.6 Methods That Copy Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Copy Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
8.7 Aggregation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Aggregation in UML Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Security Issues with Aggregate Classes . . . . . . . . . . . . . . . . . . . . . . . . . 525
Avoid Using null References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
8.8 The this Reference Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
Using this to Overcome Shadowing . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Using this to Call an Overloaded Constructor
from Another Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
8.9 Enumerated Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
Enumerated Types Are Specialized Classes . . . . . . . . . . . . . . . . . . . . . . . 534
Switching On an Enumerated Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
8.10 Garbage Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
The finalize Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
8.11 Focus on Object-Oriented Design: Class Collaboration . . . . . . . . . . . 544
Determining Class Collaborations with CRC Cards . . . . . . . . . . . . . . . . . 547
8.12 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
Review Questions and Exercises   549
Programming Challenges   553

Chapter 9 Text Processing and More


about Wrapper Classes   559
9.1 Introduction to Wrapper Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
9.2 Character Testing and Conversion with the Character Class . . . . . . . 560
Character Case Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
9.3 More String Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
Searching for Substrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
Extracting Substrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Methods That Return a Modified String . . . . . . . . . . . . . . . . . . . . . . . . 579
The Static valueOf Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
xii Contents

9.4 The StringBuilder Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582


The StringBuilder Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Other StringBuilder Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
The toString Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
9.5 Tokenizing Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
9.6 Wrapper Classes for the Numeric Data Types . . . . . . . . . . . . . . . . . . 597
The Static toString Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
The toBinaryString, toHexString, and toOctalString Methods . . . . . 598
The MIN_VALUE and MAX_VALUE Constants . . . . . . . . . . . . . . . . . . . . . . . 598
Autoboxing and Unboxing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
9.7 Focus on Problem Solving: The TestScoreReader Class . . . . . . . . . . . 600
9.8 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
Review Questions and Exercises   605
Programming Challenges   608

Chapter 10 Inheritance   613


10.1 What Is Inheritance? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Generalization and Specialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Inheritance and the “Is a” Relationship . . . . . . . . . . . . . . . . . . . . . . . . . 614
Inheritance in UML Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
The Superclass’s Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
Inheritance Does Not Work in Reverse . . . . . . . . . . . . . . . . . . . . . . . . . . 625
10.2 Calling the Superclass Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . 626
When the Superclass Has No Default
or No-Arg Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
Summary of Constructor Issues in Inheritance . . . . . . . . . . . . . . . . . . . . 633
10.3 Overriding Superclass Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
Overloading versus Overriding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
Preventing a Method from Being Overridden . . . . . . . . . . . . . . . . . . . . . 642
10.4 Protected Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Package Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
10.5 Chains of Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
Class Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
10.6 The Object Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
10.7 Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
Polymorphism and Dynamic Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
The “Is-a” Relationship Does Not Work in Reverse . . . . . . . . . . . . . . . . . 660
The instanceof Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
10.8 Abstract Classes and Abstract Methods . . . . . . . . . . . . . . . . . . . . . . . 662
Abstract Classes in UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
10.9 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
An Interface is a Contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Fields in Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
Implementing Multiple Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
Interfaces in UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
Contents xiii

Default Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676


Polymorphism and Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
10.10 Anonymous Inner Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
10.11 Functional Interfaces and Lambda Expressions . . . . . . . . . . . . . . . . . 686
10.12 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
Review Questions and Exercises   692
Programming Challenges   698

Chapter 11 Exceptions and Advanced File I/O   703


11.1 Handling Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
Exception Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
Handling an Exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
Retrieving the Default Error Message . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
Polymorphic References to Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . 712
Using Multiple catch Clauses to Handle Multiple Exceptions . . . . . . . . . 712
The finally Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
The Stack Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
Handling Multiple Exceptions with One catch Clause (Java 7) . . . . . . . . 723
When an Exception Is Not Caught . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
Checked and Unchecked Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
11.2 Throwing Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
Creating Your Own Exception Classes . . . . . . . . . . . . . . . . . . . . . . . . . . 730
Using the @exception Tag in Documentation Comments . . . . . . . . . . . . 733
11.3 Advanced Topics: Binary Files, Random Access Files,
and Object Serialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
Binary Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
Random Access Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
Object Serialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Serializing Aggregate Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
11.4 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
Review Questions and Exercises   751
Programming Challenges   757

Chapter 12 A First Look at GUI Applications   761


12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
The JFC, AWT, and Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
Event-Driven Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
The javax.swing and java.awt Packages . . . . . . . . . . . . . . . . . . . . . . . 764
12.2 Creating Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Using Inheritance to Extend the JFrame Class . . . . . . . . . . . . . . . . . . . . 767
Equipping GUI Classes with a main Method . . . . . . . . . . . . . . . . . . . . . . 769
Adding Components to a Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
Handling Events with Action Listeners . . . . . . . . . . . . . . . . . . . . . . . . . . 777
xiv Contents

Writing an Event Listener for the KiloConverter Class . . . . . . . . . . . . . . 779


Background and Foreground Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
The ActionEvent Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
12.3 Layout Managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
Adding a Layout Manager to a Container . . . . . . . . . . . . . . . . . . . . . . . 794
The FlowLayout Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
The BorderLayout Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
The GridLayout Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
12.4 Radio Buttons and Check Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
Radio Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
Check Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
12.5 Borders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
12.6 Focus on Problem Solving: Extending Classes from JPanel . . . . . . . . 824
The Brandi’s Bagel House Application . . . . . . . . . . . . . . . . . . . . . . . . . . 824
The GreetingPanel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
The BagelPanel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
The ToppingPanel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
The CoffeePanel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830
Putting It All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
12.7 Splash Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836
12.8 Using Console Output to Debug a GUI Application . . . . . . . . . . . . . . 837
12.9 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
Review Questions and Exercises   842
Programming Challenges   845

Chapter 13 Advanced GUI Applications   849


13.1 The Swing and AWT Class Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . 849
13.2 Read-Only Text Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
13.3 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
Selection Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
Responding to List Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
Retrieving the Selected Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
Placing a Border around a List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
Adding a Scroll Bar to a List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
Adding Items to an Existing JList Component . . . . . . . . . . . . . . . . . . . 863
Multiple Selection Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
13.4 Combo Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
Retrieving the Selected Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
13.5 Displaying Images in Labels and Buttons . . . . . . . . . . . . . . . . . . . . . . 874
13.6 Mnemonics and Tool Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
Mnemonics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
Tool Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
13.7 File Choosers and Color Choosers . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
File Choosers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
Color Choosers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
Contents xv

13.8 Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886


13.9 More about Text Components: Text Areas and Fonts . . . . . . . . . . . . . 895
Text Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
13.10 Sliders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
13.11 Look and Feel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
13.12 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
Review Questions and Exercises   907
Programming Challenges   912

Chapter 14 Applets and More   917


14.1 Introduction to Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917
14.2 A Brief Introduction to HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
Hypertext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
Markup Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
Document Structure Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
Text Formatting Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
Creating Breaks in Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924
Inserting Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
14.3 Creating Applets with Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
Running an Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
Handling Events in an Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
14.4 Using AWT for Portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937
14.5 Drawing Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
The XY Coordinate System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
Graphics Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
The repaint Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956
Drawing on Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957
14.6 Handling Mouse Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963
Handling Mouse Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963
14.7 Timer Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973
14.8 Playing Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
Using an AudioClip Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
Playing Audio in an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
14.9 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
Review Questions and Exercises   982
Programming Challenges   988

Chapter 15 Creating GUI Applications with JavaFX   991


15.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991
Event-Driven Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993
15.2 Stages and Scenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993
15.3 Scene Graphs and Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995
Creating a Scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
xvi Contents

15.4 Panes and Component Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999


VBox and HBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999
Margin and Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1001
Nested Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003
15.5 Events and Event Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004
Passing Information to Event Handlers . . . . . . . . . . . . . . . . . . . . . . . . 1006
Using Inner Classes for Event Handling . . . . . . . . . . . . . . . . . . . . . . . . 1009
Using Anonymous Local Inner Classes for Event Handling . . . . . . . . . . 1010
Using Lambda Expressions for Event Handling . . . . . . . . . . . . . . . . . . . 1011
15.6 Determining the Target of an Event . . . . . . . . . . . . . . . . . . . . . . . . . 1012
15.7 Radio Buttons and Check Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015
Programming with Check Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019
Responding to Radio Button and Check Box events . . . . . . . . . . . . . . . 1020
15.8 Displaying Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020
15.9 Timeline Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022
15.10 Text Input Controls, Panes, and CSS Styling . . . . . . . . . . . . . . . . . . 1026
Text Input Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026
Using CSS to Style Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
Preferred Width and Height of Components . . . . . . . . . . . . . . . . . . . . . 1029
TilePane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029
BorderPane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031
GridPane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033
Additional Panes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
15.11 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035
Review Questions and Exercises   1035
Programming Challenges   1038

Chapter 16 Recursion   1041


16.1 Introduction to Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
16.2 Solving Problems with Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044
Direct and Indirect Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048
16.3 Examples of Recursive Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
Summing a Range of Array Elements with Recursion . . . . . . . . . . . . . . 1049
Drawing Concentric Circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
The Fibonacci Series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052
Finding the Greatest Common Divisor . . . . . . . . . . . . . . . . . . . . . . . . . 1054
16.4 A Recursive Binary Search Method . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
16.5 The Towers of Hanoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
16.6 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063
Review Questions and Exercises   1063
Programming Challenges   1066

Chapter 17 Sorting, Searching, and Algorithm Analysis   1069


17.1 Introduction to Sorting Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
The Bubble Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
Contents xvii

Using the Bubble Sort to Sort Objects . . . . . . . . . . . . . . . . . . . . . . . . . 1075


The Selection Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078
Using the Selection Sort to Sort Objects . . . . . . . . . . . . . . . . . . . . . . . . 1082
The Insertion Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084
Using the Insertion Sort to Sort Objects . . . . . . . . . . . . . . . . . . . . . . . . 1089
The Quicksort Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090
Using Quicksort to Sort Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
17.2 Introduction to Search Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
The Sequential Search Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
Average Case Analysis of the Sequential Search . . . . . . . . . . . . . . . . . . 1097
The Binary Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097
Efficiency of the Binary Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
A Recursive Binary Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
17.3  Analysis of Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105
Computational Problems and Basic Steps . . . . . . . . . . . . . . . . . . . . . . 1106
Complexity of Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107
Worst Case Complexity of Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . 1108
Average Case Complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109
Asymptotic Complexity and the Big O Notation . . . . . . . . . . . . . . . . . . 1110
17.4 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114
Review Questions and Exercises   1115
Programming Challenges   1118

Chapter 18 Generics   1121


18.1 Introduction to Generics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121
Using the Diamond Operator for Type Inference . . . . . . . . . . . . . . . . . 1124
18.2 Writing a Generic Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124
Only Reference Types Can Be Passed to Type Parameters . . . . . . . . . . . 1129
Instantiating a Generic Class without Specifying a Type Argument . . . . 1130
Commonly Used Type Parameter Names . . . . . . . . . . . . . . . . . . . . . . . 1132
18.3 Passing Objects of a Generic Class to a Method . . . . . . . . . . . . . . . 1132
Constraining a Type Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134
Defining a Type Parameter in a Method Header . . . . . . . . . . . . . . . . . 1136
The extends Key Word Constrains a Type to an Upper Bound . . . . . . . 1137
The super Key Word Constrains a Type to a Lower Bound . . . . . . . . . . 1137
18.4 Writing Generic Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138
18.5 Constraining a Type Parameter in a Generic Class . . . . . . . . . . . . . . 1139
18.6 Inheritance and Generic Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142
18.7 Defining Multiple Type Parameters . . . . . . . . . . . . . . . . . . . . . . . . . 1146
18.8 Generics and Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149
Constraining a Type Parameter to a Type That Implements
an Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
18.9 Erasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155
18.10 Restrictions on the Use of Generic Types . . . . . . . . . . . . . . . . . . . . . 1158
xviii Contents

18.11 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160


Review Questions and Exercises   1161
Programming Challenges   1164

Chapter 19 Collections and the Stream API   1167


19.1 Introduction to the Java Collections Framework . . . . . . . . . . . . . . . 1167
Lists, Sets, and Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167
Java Functional Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
JCF Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
Iterating a Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169
The Iterable Interface and the forEach method . . . . . . . . . . . . . . . . 1169
Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170
The Enhanced For Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
The Collection Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
19.2 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175
The List Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176
The ArrayList and LinkedList Classes . . . . . . . . . . . . . . . . . . . . . . . 1177
Creating and Initializing Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178
List Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1179
Methods of the LinkedList Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182
Using an Interface Variable to Reference a Collection Object . . . . . . . 1183
19.3 Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185
The Set Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185
The HashSet Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185
Implementing Your Own hashCode Method . . . . . . . . . . . . . . . . . . . . . 1190
The LinkedHashSet Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194
The SortedSet Interface and the TreeSet Class . . . . . . . . . . . . . . . . . 1195
Using a Comparator to Compare Objects . . . . . . . . . . . . . . . . . . . . . . 1198
19.4 Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200
The HashMap Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202
The LinkedHashMap Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208
The SortedMap Interface and the TreeMap Class . . . . . . . . . . . . . . . . . 1210
19.5 The Collections Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211
19.6 The Stream API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213
The Stream Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214
Creating a Stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214
Terminal Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215
Intermediate Operations on Streams . . . . . . . . . . . . . . . . . . . . . . . . . . 1219
Intermediate Stream Operations are Lazy . . . . . . . . . . . . . . . . . . . . . . 1221
The Stream map Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223
The Stream reduce Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224
Stream Collectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226
19.7 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231
Review Questions and Exercises   1232
Programming Challenges   1235
Contents xix

Chapter 20 Linked Lists   1237


20.1 Introduction to Linked Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237
Creating Lists and Adding Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238
Removing a Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1240
Traversing Linked Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241
20.2 Operations on Linked Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244
The isEmpty Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244
The size Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245
The add Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245
The remove Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1246
The toString Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1246
Graphical Interfaces for the Linked List Program . . . . . . . . . . . . . . . . . 1252
20.3 Doubly-Linked and Circularly-Linked Lists . . . . . . . . . . . . . . . . . . . . 1259
Adding a Node to a Doubly-Linked List . . . . . . . . . . . . . . . . . . . . . . . . 1260
Removing a Node from a Doubly-Linked List . . . . . . . . . . . . . . . . . . . . 1261
Circularly-Linked Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268
20.4 Recursion on Linked Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268
A Recursive Implementation of size . . . . . . . . . . . . . . . . . . . . . . . . . . 1269
A Recursive Implementation of the add(String e,
Node list) Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270
A Recursive Implementation of add(int index, String e,
Node list) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270
A Recursive Implementation of the remove Methods . . . . . . . . . . . . . . .1271
20.5 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1283
Review Questions and Exercises   1283
Programming Challenges   1286

Chapter 21 Stacks and Queues   1289


21.1 Stacks and Their Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1289
Examples and Applications of Stacks . . . . . . . . . . . . . . . . . . . . . . . . . . 1289
Stack Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1290
Stacks of Primitive Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291
21.2 Array Implementation of Stacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1292
The Stack Push Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293
The Stack empty Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293
The Stack peek and pop Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293
Stacks of Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297
21.3 Linked Implementation of Stacks . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298
Implementation of Stack Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299
21.4 Queues and Their Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1303
21.5 Array Implementation of Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . 1303
GUI Front Ends for the Queue Demo Program . . . . . . . . . . . . . . . . . . . 1310
Swing Version of the GUI Front End . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311
JavaFX Version of the GUI Front End . . . . . . . . . . . . . . . . . . . . . . . . . . 1314
xx Contents

21.6 Linked List Implementation of Queues . . . . . . . . . . . . . . . . . . . . . . . 1317


Queue Initialization and Enqueuing of Items . . . . . . . . . . . . . . . . . . . . 1317
Dequeuing Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1318
21.7 Generic Implementation of Stacks and Queues . . . . . . . . . . . . . . . . 1322
21.8 Queues and Breadth-First Search . . . . . . . . . . . . . . . . . . . . . . . . . . . 1325
21.9 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328
Review Questions and Exercises   1329
Programming Challenges   1331

Chapter 22 Binary Trees, AVL Trees, and Priority Queues   1335


22.1 Binary Trees and Their Applications . . . . . . . . . . . . . . . . . . . . . . . . . 1335
Binary Tree Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336
Applications of Binary Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1337
Representing Nodes of Binary Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . 1337
Traversing a Binary Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1338
Graphical Display of Binary Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1341
Graphical Display of Binary Trees Using Swing . . . . . . . . . . . . . . . . . . 1342
Graphical Display of Binary Trees Using JavaFX . . . . . . . . . . . . . . . . . 1344
Class Implementation of Binary Trees . . . . . . . . . . . . . . . . . . . . . . . . . 1347
22.2 Binary Search Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1347
Adding a Value to a Binary Search Tree . . . . . . . . . . . . . . . . . . . . . . . . 1349
Removing a Value from a Binary Search Tree . . . . . . . . . . . . . . . . . . . . 1349
Implementation of Binary Search Trees . . . . . . . . . . . . . . . . . . . . . . . . 1353
Graphical Display of Binary Search Trees . . . . . . . . . . . . . . . . . . . . . . . 1358
A Program for Testing the Binary Search Tree Class . . . . . . . . . . . . . . . 1360
22.3 AVL Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1368
Adding New Elements to AVL Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . 1369
Implementation of AVL Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1372
22.4 Priority Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1380
Applications of Priority Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382
Using Comparators with Priority Queues . . . . . . . . . . . . . . . . . . . . . . . 1383
Analysis of Heapsort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1385
Implementation of Priority Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . 1385
Binary Trees with the Heap Order Property . . . . . . . . . . . . . . . . . . . . . 1385
Complete Binary Trees and Heaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1386
The Depth of Complete Binary Trees . . . . . . . . . . . . . . . . . . . . . . . . . . 1387
Storing a Complete Binary Tree in an Array . . . . . . . . . . . . . . . . . . . . . 1387
Adding an Item to a Heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388
Removing the Minimum Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389
22.5 Common Errors to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397
Review Questions and Exercises   1397
Programming Challenges   1401

Index    1501
Contents xxi

Companion Website:
Chapter 23 Databases
Appendix A Working with Records and Random Access Files
Appendix B The ASCII/Unicode Characters
Appendix C Operator Precedence and Associativity
Appendix D Java Key Words
Appendix E Installing the JDK and JDK Documentation
Appendix F Using the javadoc Utility
Appendix G More about the Math Class
Appendix H Packages
Appendix I More about JOptionPane Dialog Boxes
Appendix J Answers to Checkpoints
Appendix K Answers to Odd-Numbered Review Questions
Appendix L Getting Started with Alice
Appendix M Configuring JavaDB
Case Study 1 Calculating Sales Commission
Case Study 2 The Amortization Class
Case Study 3 The PinTester Class
Case Study 4 Parallel Arrays
Case Study 5 The FeetInches Class
Case Study 6 The SerialNumber Class
Case Study 7 A Simple Text Editor Application
This page intentionally left blank
Location of Videonotes in the Text
VideoNote

Chapter 1 Compiling and Running a Java Program, p. 14


Using an IDE, p. 15
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. 106

Chapter 3 The if Statement, p. 111


The if-else Statement, p. 121
The if-else-if Statement, p. 132
The Time Calculator Problem, p. 185

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. 312

Chapter 6 Writing Classes and Creating Objects, p. 327


Initializing an Object with a Constructor, p. 348
The Personal Information Class Problem, p. 397

Chapter 7 Accessing Array Elements in a Loop, p. 409


Passing an Array to a Method, p. 424
The Charge Account Validation Problem, p. 489

Chapter 8 Returning Objects from Methods, p. 505


Aggregation, p. 517
The BankAccount, Class Copy Constructor Problem, p. 554

Chapter 9 The Sentence Capitalizer Problem, p. 608

Chapter 10 Inheritance, p. 613


Polymorphism, p. 657
The Employee and Productionworker Classes Problem, p. 698

Chapter 11 Handling Exceptions, p.703


The Exception Project Problem, p. 759

(continued on the next page)


LOCATION OF VIDEONOTES IN THE TEXT (continued)
VideoNote
Chapter 12 Creating a Simple GUI Application, p. 764
Handling Events, p. 777
The Monthly Sales Tax Problem, p. 846

Chapter 13 The JList Component, p. 852


The JComboBox Component, p. 868
The Image Viewer Problem, p. 912

Chapter 14 Creating an Applet, p. 929


The House Applet Problem, p. 988

Chapter 15 Nested Layouts 2, p. 1038

Chapter 16 Reducing a Problem with Recursion, p. 1045


The Recursive Power Problem, p. 1067

Chapter 17 The Bubble Sort Algorithm, p. 1069


Searching for Objects with the Binary Search Algorithm, p. 1118

Chapter 18 Inheritance and Generic classes, p. 1142


Highest and Lowest Elements, p. 1165

Chapter 19 The HashMap Class, p. 1202

Chapter 20 Adding a Node to a Doubly-Linked List, p. 1260


Recursive Linked List Operations, p. 1287

Chapter 21 Array Implementation of Queues, p. 1303


Array-Based Deque, p. 1332

Chapter 22 Removing a Value from a Binary Search Tree, p. 1349


Prefix Calculator, p. 1402
Another Random Scribd Document
with Unrelated Content
Etoilette reconnut le prince aussi-tôt, & lui voyant la couronne sur
la tête, & un manteau de gaze noire, ne douta pas qu'il ne fût
devenu roi. Elle s'étonnoit seulement de lui voir une colombe sur
l'épaule; elle s'avança en tremblant, & fit cependant un compliment
fort galant & fort délicat. Le jeune roi, enchanté de l'esprit & des
graces de l'Ethiopienne, fut persuadé, à la magnificence de sa
parure, que c'était une personne importante. Il faut dire tout; un
secret pressentiment, que les seuls vrais amans connoissent, lui
inspira de la curiosité: il s'approcha donc avec empressement, & lui
demanda ce qui l'amenoit à sa cour.
Etoilette, pénétrée d'une joie si vive de voir son amant, pensa
mourir de douleur de n'en être pas reconnue; mais la joie l'emporta,
& sur-tout la confiance qu'elle avoit aux promesses de la fée. Sans
répondre au roi, elle accorda sa guitare, & chanta ces paroles: on
verra qu'elle les fit sur le champ.
Je viens d'un pays lointain
A vos regrets mettre fin.
Etoilette, blanchelete,
Pour vous, d'une amour parfaite,
Refuse un roi du canton,
Qui de son cœur lui fait don.
Mais ce roi, beau, ce dit-on,
Ne vaudra jamais pour elle,
Ismir aux yeux noirs, & blond;
Et plutôt la tueroit-on,
La gente & blanche pucelle,
Que de la voir infidèle:
C'est-là toute ma chanson.

Ismir, ravi de la chanson: Aimable noire, dit-il à l'Ethiopienne,


vous connoissez donc ma chère Etoilette, puisque vous m'assurez
qu'elle vit encore? A peine il achevoit ces mots, que le pigeon qui
arrivoit à tire d'ailes, vint se poser sur la tête de la princesse; la
colombe agita ses aîles; la fée Herminette parut aussi tout-à-coup, &
touchant l'Ethiopienne de sa baguette d'or, elle lui épargna la peine
de répondre; car elle redevint alors la fidèle, la divine, & la
ravissante Etoilette. Ismir pensa mourir de joie & d'étonnement; il se
précipita aux pieds de sa maîtresse, qui le releva aussi-tôt, pour le
mettre à coux de la fée. Aimez-vous toujours ainsi, mes enfans, dit-
elle en les embrassant; je viens exprès pour couronner de si beaux
feux. Ismir étoit hors de lui-même; Etoilette ne se connoissoit plus:
le seul sentiment qu'elle put distinguer dans une telle confusion de
pensées, étoit la reconnoissance qu'elle vouloit exprimer à la fée. Le
roi leur donna la main, & les conduisit dans son appartement. La
surprise redoubla encore là; car ils y trouvèrent le roi, la reine, & le
prince de l'Arabie heureuse, qu'Herminette y avoit fait transporter en
un moment, par ces charmes puissans auxquels toute la Nature est
soumise. Ils accordèrent, de la meilleure grace du monde, la belle
Etoilette au constant Ismir; les noces ne furent retardées que
jusqu'au lendemain de cet heureux jour. Ismir, devenu enfin l'époux
d'Etoilette, fut aussi heureux époux qu'il avoit été fidèle amant, & ils
vécurent toujours dans le sein des plaisirs & du plus parfait
contentement.

Madame de Briance ayant achevé sa lecture, reçut les


complimens de toute la compagnie. En vérité, madame, dit la
vicomtesse, je ne me souviens pas d'avoir passé de ma vie une aussi
agréable journée, & le conte que vous venez d'avoir la complaisance
de nous lire est un ouvrage charmant. Je ne conçois pas comment
on ne s'amuse pas à en faire toujours, quand on a le talent
d'imaginer de cette façon. La marquise de Briance répondit aux
politesses de la vicomtesse par d'autres, & chacun rappela ce qu'il
avoit trouvé de plus remarquable dans ce petit ouvrage.
Le chevalier, qui étoit allé tenir compagnie à Tourmeil, n'avoit pas
moins bien passé son temps avec cet ami. Après que Tourmeil eut
achevé les deux scènes d'opéra que le baron de Tadillac lui avoit
demandées, le chevalier de Livry le somma de la parole qu'il lui avoit
donnée de lui conter ce qui lui étoit arrivé depuis leur séparation.
Tourmeil dit qu'il alloit s'acquitter de cette promesse; que même il lui
feroit confidence de certaines particularités qu'on ne peut découvrir
qu'à un parfait ami; & il commença ainsi:
HISTOIRE
du Comte de Tourmeil.

Je partis avec le désespoir que m'inspiroit la perte des douces


espérances de ma félicité, que j'avois cru certaine, & je fis le chemin
de Rennes à Paris, sans me connoître; j'étois hors de moi. La pensée
que mademoiselle de Livry alloit devenir l'épouse de M. de Briance,
me mettoit au désespoir. Cette cruelle idée, fidelle à me tourmenter,
se présentoit sans cesse à mon esprit sous toutes les formes qui
pouvoient me la rendre plus funeste; souvent même je répandois
des larmes, & mon courage ne pouvoit les arrêter.
Etant arrivé à Paris, j'allai descendre chez un de mes oncles, & je
lui fis, en peu de mots, l'histoire que vous avez sue. Je ne sais
comment il se laissa persuader; j'avois l'esprit si embarrassé, que je
ne lui dis presque rien de vraisemblable; son amitié pour moi fut, je
crois, ce qui le fit ajouter foi à mes paroles; il me donna de l'argent,
& me promit de m'en faire encore toucher à Venise. Enfin, après
vous avoir écrit, & à madame de Briance, je partis de Paris, guidé
par mes inquiétudes seules, qui ne me permettoient pas de
m'arrêter en aucun endroit du monde: je fis, sans être pressé, une
diligence extraordinaire.
Mon oncle avoit écrit à Venise, afin qu'on me donnât de l'argent
qu'il m'avoit promis; c'étoit une somme considérable; & croyant me
mander une nouvelle agréable, il m'apprenoit le mariage de M. de
Briance avec mademoiselle de Livry. La certitude du bonheur de mon
rival me jeta dans une langueur mortelle; je fus malade près d'un
mois, & je commençois à me lever, quand j'appris que les troupes de
la république alloient bientôt s'embarquer. Un gentilhomme qui avoit
été à mon père, & qui s'étoit attaché à moi dès ma plus tendre
jeunesse, voyant que je n'étois pas en état de prendre soin de mon
équipage, s'offrit pour me tirer de l'inquiétude que j'avois de n'être
pas assez tôt prêt de me rendre ce service; il m'en fit faire un
magnifique. Dès qu'il fut achevé, sans attendre que mes forces
fussent entièrement rétablies, j'allai me présenter au général, dans
le moment qu'il donnoit ses ordres pour l'embarquement des
troupes. Je lui dis que j'étois Espagnol, que je m'appelois D.
Fernand, qu'ayant eu un démêlé suivi d'un combat, je m'étois
absenté, pour donner le temps de terminer mon affaire. La facilité
avec laquelle je parlois la langue espagnole, aida à le tromper. Il me
reçut avec une bonté qui me toucha; il m'offrit même de l'emploi,
dont je le remerciai, & je servis en qualité de volontaire.
L'armée entra en action presque aussi-tôt que nous fûmes
descendus à terre; il y eut quelques occasions où je donnai des
marques du peu d'attachement que j'avois alors pour la vie. Mon
désespoir fut nommé valeur, & m'attira l'estime & l'amitié de nos
généraux. La fortune, qui me réservoit le prix des tourmens qu'elle
me faisoit souffrir, me conserva la vie, dont je regardois la fin
comme le seul bien auquel je pouvois prétendre.
Un jour que j'étois allé me promener aux environs du camp, suivi
seulement du gentilhomme dont je vous ai parlé, qui étoit alors mon
écuyer, & à qui j'avois appris mes malheurs; je m'en plaignois en
marchant dans une belle plaine, quand nous entendîmes un bruit
tumultueux, mêlé de quelques cris de femmes: nous vîmes paroître
peu de temps après des soldats qui amenoient deux prisonnières;
nous courûmes à eux pour sauver ces deux infortunées d'un destin
plus cruel que leur captivité. Ces soldats, dont heureusement j'étois
connu, se retirèrent à mon abord avec assez de respect; & quelque
argent que je leur donnai, acheva de les résoudre à me céder leurs
esclaves, tout émues du trouble où leur disgrace les avoient jetées.
La magnificence de leurs habits me fit juger qu'elles étoient des
personnes auxquelles on devoit du respect, & quelques paroles
italiennes qu'elles dirent assez confusément, en tournant la vue du
côté d'où on les avoit amenées, me firent connoître qu'elles ne se
croyoient pas encore en sûreté. Je tâchai de les rassurer; je leur
offris tout ce qui dépendoit de moi, & je leur demandai où elles
vouloient être conduites. Après quelques remerciemens qu'elles me
firent à la hâte: Sauvez-nous, me dit celle qui avoit parlé la
première, sauvez-nous d'un cruel qui croit que l'esclavage où il nous
retient doit s'étendre jusques sur les cœurs. Je vous avoue que si
j'avois été en état de devenir amoureux, je l'aurois sans doute été
d'une de ces belles esclaves, dont la beauté, la jeunesse, & la
douleur étoient si touchantes, que mon insensibilité dans cette
occasion est sans doute la preuve de ma passion, la plus forte que
j'aye jamais donnée à madame de Briance.
Et c'est pourtant là, dit le chevalier en souriant, une de ces
particularités dont vous ne lui avez pas fait confidence. Il est vrai,
reprit Tourmeil; mais ne me suffit-il pas d'avoir resté fidèle; pourquoi
chercher à me faire un mérite d'avoir fait mon devoir?
Je conduisis mes belles esclaves dans notre camp, dont nous
étions peu éloignés, continua Tourmeil; leur ayant cédé ma tente, &
chargé mon écuyer de les faire servir aussi bien que le lieu où nous
étions pouvoit le permettre, je fus chez le général; étant revenu
dans une de mes tentes, je me mis à écrire. Comment, me dit alors
mon écuyer, qui cherchoit toujours à me tirer du chagrin où j'étois,
est-il possible que vous ne me demandiez pas des nouvelles de vos
belles esclaves, ne voulez-vous pas les aller voir? Je les verrai
demain, lui répondis-je; mes propres malheurs m'occupent
tellement, qu'il ne faut pas s'étonner si je suis moins sensible à ceux
des autres.
Etes-vous pour ces belles personnes, me répliqua-t-il, dans les
mêmes sentimens qu'Alexandre pour ses prisonnières? Tu veux me
flatter par les grandes comparaisons, lui répondis-je, mais je t'assure
que je ne crains point, comme Alexandre, de devenir amoureux de
mes prisonnières; je vais m'exposer au pouvoir de leurs charmes:
allons les voir. Il me suivit, & je trouvai ces deux belles esclaves
négligemment couchées sur un lit dans leur tente. Celle dont la
beauté étoit la plus parfaite paroissoit la plus affligée; j'essayai de
les consoler par l'assurance de leur liberté, & celle de faciliter leur
retour au lieu où elles voudroient être conduites.
Vous êtes trop généreux, D. Fernand, me dit celle qui paroissoit
avoir quelques années de plus, elles s'étoient informées de mon
nom; vous êtes trop généreux de rendre la liberté à vos esclaves: si
quelque prix plus digne que notre parfaite reconnoissance étoit
capable de flatter un homme tel que vous paraissez, nous vous
offririons une rançon qui sans doute pourroit toucher une ame moins
noble que la vôtre.
Nous sommes grecques, nées dans Argostoly, capitale de
Céphalonie; nous avons été élevées dans cette isle; nos parens y
tiennent un rang considérable, par leurs biens & par leur naissance;
ma sœur se nomme Fatime, & mon nom est Praxile. Nous perdîmes
ma mère que nous étions encore dans l'enfance, & nous fûmes
destinées par mon père à épouser deux de nos proches parens. Les
fêtes qui précédèrent ces malheureuses noces, nous coûtèrent notre
précieuse liberté; quelques jours avant celui qui avoit été choisi pour
notre hyménée, nous fûmes nous promener sur la mer dans une
petite chaloupe assez ornée, mais de nulle défense. Soliman, vieux
corsaire, qui couroit cette mer, se déroba de notre vue, à la faveur
d'un rocher, dans le dessein de nous surprendre plus facilement; &
dès qu'elle eut pris le large, nous ayant enlevées, sans trouver
presque de résistance, il fit voile en diligence, laissant dans notre
chaloupe le petit nombre de ceux qui nous avoient accompagnées.
Je ne vous entretiendrai point de notre douleur, généreux D.
Fernand; il est aisé de se l'imaginer, si toutefois l'imagination peut
aller aussi loin, quand on n'a pas éprouvé ce malheur. Nous fûmes
servies avec beaucoup de soin, & avec plus de respect que nous
n'en avions attendu de ce barbare. Soliman nous amena dans ce
pays, & ce ne fut qu'après notre arrivée qu'il parut amoureux de
Fatime; cette passion redoubla nos douleurs. Enfin, après trois mois
d'esclavage, toujours agitées par nos malheurs, & par la funeste
crainte que Soliman, lassé des rigueurs de Fatime, ne se portât à
quelque action violente, comme il l'en menaçoit assez souvent; ayant
gagné avec des pierreries qui nous étoient restées, un de nos
gardes, il facilita notre retraite la nuit passée, nous donna des
chevaux, & se sauva lui-même de la fureur de Soliman: quand nous
avons rencontré vos soldats qui nous ont faites prisonnières, nous
allions dans la ville la plus prochaine demander un asile contre la
cruauté de Soliman; mais le ciel, à force de malheurs, semble se
lasser de nous être contraire, puisque, par la rencontre de D.
Fernand, nous avons trouvé un protecteur assez généreux pour
espérer de revoir notre patrie.
Oui, madame, lui répondis-je, touché du récit qu'elle venoit de
faire, vous reverrez votre patrie, je vous le promets, & je tiendrai ma
parole: elle m'en fit des remerciemens sincères, & me combla
d'honnêtetés. Cependant la belle Fatime n'avoit cessé de répandre
des larmes; ses beaux yeux languissans, qui se tournoient
quelquefois vers moi, auroient sans doute embrasé tout autre cœur
que le mien.
Ces beaux yeux, dit le chevalier de Livry, ont été retranchés du
récit que vous avez fait à ma sœur. Plus Fatime est belle, reprit
Tourmeil, plus le sacrifice est digne de madame de Briance.
Praxile étonnée, continua Tourmeil, de voir Fatime témoigner une
douleur si vive, dans un temps où l'espérance de la liberté devoit la
consoler, lui dit: Eh quoi! ma sœur, vous vous affligez plus vivement,
quand le ciel nous est favorable, que lorsqu'il paroissoit nous
abandonner. Ce n'est pas sans sujet, repris-je; la belle Fatime
regrette l'absence de cet heureux amant qui doit être son époux. Ah!
D. Fernand, me dit-elle en levant les yeux, n'ajoutez pas à mes
malheurs l'injustice que vous me faites; elle rougit après avoir
prononcé ce peu de paroles, & Praxile me dit que l'indifférence qui
avoit toujours régné dans le cœur de Fatime, lui faisoit prendre pour
une offense le soupçon même d'une passion. Je les quittai, en leur
réitérant toutes les offres de service que je leur avois faites. Les
jours suivans, le bruit de mon aventure, & celui de leur beauté,
s'étant répandus dans le camp, les plus considérables de notre
armée me demandèrent à les voir. La première fois que je les y
conduisis, un de nos officiers généraux, qui étoit de mes amis
intimes, fut épris d'une violente passion pour la belle grecque; mais
s'en étant aperçue, elle me pria très-instamment de de ne le plus
amener dans leur tente. Cette prière m'embarrassa; je voulus me
servir de quelque prétexte pour conduire encore mon ami aux pieds
de la belle Fatime, tous mes artifices furent inutiles. Les belles
grecques feignirent d'être malades, & refusèrent constamment
l'entrée de leur tente à tous ceux qui se présentèrent; j'avois seul le
privilège de les voir lorsque je les faisois demander. Fatime paroissoit
plongée dans une profonde tristesse; elle soupiroit, &, si j'ose le
dire, elle me regardoit quelquefois tendrement. Mon écuyer, qui
cherchoit toujours à me faire oublier la passion que j'avois pour
madame de Briance, me faisoit remarquer toutes les actions de cette
belle personne.
Les deux sœurs étant un jour entrées dans ma tente pendant
que je n'y étois pas, trouvèrent des tablettes que j'y avois laissées.
Fatime les ouvrit dans un endroit qui étoit rempli de vers françois,
écrits de ma main, & ne pouvant pas les entendre, elle en demanda
l'explication à mon écuyer, qui, n'en prévoyant pas les conséquences,
les expliqua en italien. Il est nécessaire, pour la suite de mon
histoire, que je vous les récite:

Cédez, foible raison, cédez à ma tristesse;


Malgré vos vains conseils, j'y veux penser sans cesse;
Quel bien peut adoucir l'excès de mon malheur?
J'ai perdu l'objet que j'adore,
Trop charmant souvenir de ma fidelle ardeur,
Hélas! vous me plaisez encore,
Même en irritant ma douleur.
Non, je ne prétends pas vous bannir de mon ame;
Redoublez mon amour, augmentez ma langueur,
Plutôt qu'à la raison je vous livre mon cœur,
Vous le défendrez mieux d'une nouvelle flamme.

Ces vers me paroissent bons, dit le chevalier; on a raison de


croire que la douleur inspire de plus belles choses que la joie. A cela
près, reprit Tourmeil, j'aime mieux être toute ma vie le plus
détestable poëte du monde, que de penser désormais à me plaindre
de mes malheurs: mais revenons à mon histoire.
Mon écuyer avoit remarqué que Fatime avoit rougi pendant
l'explication de ces vers; & le soir même, en passant proche de leur
tente, il entendit les deux belles grecques qui s'entretenoient de
moi: il accourut promptement me dire que je vinsse apprendre un
secret dont le repos de mon cœur pouvoit dépendre.
Je crus que j'allois savoir quelque chose qui regardoit madame
de Briance; cette pensée me fit sortir avec lui; il me conduisit avec
précipitation au même endroit d'où il les avoit entendu parler
ensemble, & ayant prêté l'oreille, il me fit approcher, en me disant
tout bas, écoutez. C'étoit Fatime qui parloit; elle disoit alors à sa
sœur: Oui, Praxile, je me trouvois moins à plaindre quand j'étois au
pouvoir de Soliman; la mort me pouvoit délivrer de ses injustices;
j'aurois au moins eu la douceur de mourir tranquillement, & la vue
de D. Fernand m'a pour jamais ôté cette tranquillité dont j'ai
toujours fait mon bonheur & ma gloire. Je ne sais que vous dire,
reprit Praxile, pour vous consoler d'un malheur que le ciel irrité
ajoute à nos infortunes: vous avez résisté de toute votre force à ce
penchant involontaire que vous sentez pour D. Fernand; il ignore vos
sentimens; vous avez fait votre devoir, il ne reste plus que de fuir en
diligence d'un lieu où votre gloire ne me paroît point en sûreté. Ma
gloire! reprit fièrement Fatime, est en sûreté quelque part où je me
puisse trouver; mais ici mon cœur ne sauroit résister, & c'est la vue
du redoutable D. Fernand que je veux fuir. Les vers que son écuyer
nous a lus, achèvent de m'apprendre ce que sa tristesse m'avoit déjà
fait soupçonner: il aime, & son amour, tout malheureux qu'il me
paroît, ne l'occupe pas moins qu'une passion qui feroit le bonheur de
sa vie. Malheureuse Fatime! s'écria-t-elle en soupirant, quel dieu t'a
fait sentir son courroux, en t'inspirant des sentimens si tendres, &
que tu dois cacher?
Après avoir entendu ces dernières paroles, je m'éloignai, & je dis
à mon écuyer: Quel rapport cette conversation a-t-elle avec le repos
dont vous me flattiez tout à l'heure? Quoi! me répondit-il tout
étonné, la passion que la charmante Fatime a pour vous ne peut-elle
vous faire oublier.... Non, lui répliquai-je en l'interrompant; non,
jamais rien n'effacera de mon cœur le tendre & malheureux amour
que j'ai pour madame de Briance; ce que j'apprends ajoute
seulement à mes malheurs, celui de savoir que je suis un ingrat. Je
poursuivis alors mon chemin vers ma tente, & toutes les fois que
j'eus occasion depuis de voir ces deux belles grecques, je ne dis
jamais rien à Fatime qui pût lui faire comprendre que j'avois entendu
ce qu'elle avoit dit à sa sœur. Je voulus même un jour lui parler du
mérite de mon ami, qui brûloit pour elle d'une passion aussi tendre
qu'infortunée; mais Fatime, me regardant avec un air qui imprimoit
le respect: D. Fernand, me dit-elle, puisque vous m'avez rendu la
liberté, cessez de me traiter en esclave.
Enfin, après un mois de séjour dans notre camp, les belles
grecques me prièrent de leur tenir la parole que je leur avois
donnée, & de les faire conduire au port de Zante, d'où elles avoient
appris, qu'à peu près dans ce temps là il partoit tous les ans
quelques vaisseaux marchands, qui faisoient voile pour la Grèce.
Jusqu'à ce jour, dit Praxile, où nous avons cru devoir partir pour
revoir notre patrie, nous avons mieux aimé, généreux D. Fernand,
être auprès de vous qu'en nul autre lieu du monde, & rien ne doit
nous causer un chagrin plus sensible, que de ne pouvoir vous
marquer, comme nous y sommes obligées, notre vive
reconnoissance. La belle Fatime ajouta peu de mots à ce
remerciement de sa sœur, s'occupant avec empressement à tout
préparer pour leur départ. L'une paroissoit désolée, l'autre ne
pouvoit s'empêcher de faire éclater la joie qu'elle ressentoit au fond
du cœur. Je vous avoue que, dans un état plus heureux, j'aurois
peut-être été moins fidèle; mais accoutumé à ne penser qu'à mes
malheurs, mon cœur ne plaignoit point ceux de Fatime.
Je fis donc préparer un chariot pour les belles grecques; deux
filles esclaves que je leur avois données pour les servir, furent
destinées à les suivre dans leur voyage, & je leur laissai un homme à
moi, nommé Desfontaines, dont la fidélité m'est connue, pour les
accompagner jusqu'à leur débarquement.
Cependant mon ami se désoloit, & me prioit instamment de les
retenir encore quelque temps, dans l'espérance qu'il pourroit toucher
le cœur de Fatime; mais je résistai à toutes ses prières.
Enfin le jour destiné pour le départ des deux belles grecques
étant arrivé, je me rendis dès le matin dans leur tente. Je les trouvai
qui alloient monter dans leur chariot; mon écuyer donnoit la main à
Praxile, je présentai la mienne à Fatime, que je conduisis à sa
voiture, sans lui dire un seul mot: elle s'y mit auprès de sa sœur, &
je montai à cheval pour les escorter moi-même jusqu'à quelques
lieues du camp.
Quand nous fûmes arrivés au lieu ou je devois les quitter, ayant
fait arrêter le chariot pour leur dire adieu, elles descendirent sous
une touffe d'arbres peu éloignés du chemin. Ce fut là où la
constance de Fatime l'abandonna. A ce moment fatal, quelques
larmes qu'elle ne put retenir, coulèrent de ses beaux yeux; je fus
véritablement touché, je m'approchai d'elle, & me voyant tout
interdit: Quoi! D. Fernand, me dit-elle en me regardant tendrement,
vous vous intéressez donc à notre départ? On ne peut quitter la belle
Fatime, lui dis-je, sans ressentir une vive douleur; & plût au ciel,
ajoutai-je en soupirant, que mon cœur eût été en liberté de former
des vœux dignes d'elle.
Ah! D. Fernand, reprit-elle en se retirant brusquement, laissez-
moi partir; quelle idée venez-vous d'ajouter à tous les malheurs de
ma vie! Elle reprit au plus vîte le chemin de son chariot; Praxile, qui
s'étoit amusé à parler à mon écuyer, la suivit aussi-tôt. Leur ayant dit
encore quelques paroles, je les laissai partir, & je repris le chemin de
notre camp.
Ce fut à ce coup que je sentis mon cœur abattu par les plus vives
secousses de la foiblesse humaine; je ne saurois vous dissimuler,
chevalier, que les larmes, la beauté, & la tendresse de Fatime firent
que je souhaitai de pouvoir me guérir d'une passion dont les
fréquentes idées me causoient des transports insupportables dans le
particulier. Je menois la vie du monde la plus triste & la plus
languissante; je paroissois tout autre aux yeux de ceux que j'avois
l'honneur de fréquenter, & toutefois je ne laissois échapper aucune
occasion, quelque périlleuse qu'elle fût, sans m'exposer au danger
évident de la perdre.
Quelques semaines s'écoulèrent sans que j'eusse appris aucune
nouvelle de Desfontaines, à qui j'avois confié la conduite des belles
grecques. Mon ordre avoit été de ne les escorter que jusqu'au lieu
de leur embarquement; mais le désir de voyager que cet homme
avoit toujours eu, le fit partir avec elles sans mon consentement.
Enfin je reçus une lettre qu'il m'écrivit auparavant de se mettre en
mer; il m'en demandoit pardon, & me mandoit que Praxile paroissoit
parfaitement contente de retourner dans son pays; mais que Fatime
étoit dans une langueur qui faisoit craindre que les fatigues de la
mer ne l'exposassent au danger de perdre la vie, quoique le trajet
fût court.
Desfontaines vint, deux mois après son départ, me joindre à
l'armée. Eh bien, lui dis-je, nos belles grecques sont-elles arrivées
heureusement dans leur patrie? Elles y sont arrivées heureusement,
me répondit-il; mais la belle Fatime n'a pas joui long-temps de ce
plaisir; elle est morte quelques jours après avoir vu sa famille. Quelle
fut mon émotion à cette nouvelle! Vous ne sauriez le concevoir,
chevalier; je ne le conçois pas moi-même. Mon homme s'en étant
aperçu, demeura court, & je lui dis, outré de douleur: Apprends-moi
donc, s'il te plaît, quel accident a terminé la vie de la malheureuse
Fatime? Notre voyage avoit été heureux, reprit-il; on s'embarqua
avec une joie qui n'étoit troublée que par la mauvaise santé de
Fatime.
Le père de ces belles personnes étant averti de leur arrivée, vint
les recevoir sur le port, accompagné de deux jeunes hommes,
magnifiquement vêtus & de fort bonne mine, qui témoignoient une
joie aussi parfaite que la sienne. Praxise embrassa son père avec
une satisfaction qui ne se peut exprimer, & Fatime, à sa vue, parut
oublier sa langueur: elles me présentèrent à leur père; je fus comblé
de présens, & traité comme D. Fernand auroit pu l'être lui-même.
Peu de jours après notre arrivée, on prépara tout pour les noces
de ces deux grecques, qui dévoient épouser les deux jeunes
hommes qui j'avois vus les venir recevoir en sortant du vaisseau;
mais cette fête fut troublée par une fièvre violente qui prit à la belle
Fatime; elle languit quelques jours; enfin elle expira, en témoignant
un courage infini, & nul regret à la vie.
Jamais la douleur n'a paru sous tant de formes différentes qu'elle
le fit alors. Le père de cette belle fille, la sœur, l'amant qui lui étoit
destiné pour époux, tous se désespéroient, & j'étois aussi affligé
qu'eux. Après avoir satisfait à l'envie que j'avois devoir ce beau pays,
je témoignai à Praxile le dessein où j'étois de vous rejoindre; elle me
chargea de cette boîte, & m'ordonna de vous la présenter de sa
part.
Desfontaines me donna la boîte; j'y trouvai deux lettres, l'une de
Praxile, & l'autre du père de ces belles grecques; elles étoient
remplies des marques de leur reconnoissance pour moi, & de leur
douleur pour la perte de Fatime. J'ouvris en suite un autre petit
paquet qui étoit dans la même boîte; il renfermoit les portraits de
ces belles grecques, enrichis de diamans d'un prix considérable; je
soupirai à la vue du portrait de la malheureuse Fatime, & je chargeai
le capitaine d'un vaisseau qui devoit partir pour Argostoly, de tout ce
que je pus trouver de plus curieux, pour envoyer à Praxile & à son
père, avec une lettre pour leur marquer combien je partageois leur
juste douleur. J'appris, par le retour de ce capitaine, qui m'apporta
une lettre de Praxile, qu'elle avoit épousé ce parent qu'on lui avoit
destiné, & qu'elle eût été fort heureuse, si la perte de la belle Fatime
n'avoit pas troublé sa félicité.
Cette fâcheuse perte redoubla mes chagrins; je me reprochai
d'avoir contribué, par ma férocité, au malheur de Fatime; & lorsque
les occasions de se signaler devenoient moins fréquentes à l'armée,
ou qu'on y avoit quelque espèce de relâche, mes inquiétudes
revenoient en foule accabler mon esprit; tantôt c'étoit madame de
Briance qui l'occupoit, tantôt c'étoit la mort de Fatime. Enfin, ne
pouvant plus vivre en repos dans la Morée, je retournai à Venise au
commencement de l'hiver, avec plusieurs volontaires de mes amis,
qui alloient y passer le carnaval.
Aussi-tôt que je fus arrivé dans cette ville, mon écuyer alla chez
ce banquier de qui j'avois autrefois touché de l'argent; il y trouva
plusieurs lettres pour moi, que cet homme avoit gardées, ne sachant
par quelle voie me les faire tenir; car je ne l'avois pas averti que je
m'embarquerois avec les troupes de la république. J'ouvris mes
lettres, & la première étant par hasard celle qui étoit arrivée la
dernière, j'y trouvai la seule nouvelle qui pouvoit me résoudre à
revenir dans mon pays; c'étoit la mort de M. de Briance. Mon oncle
me la mandoit, & même les circonstances de son testament, qui
étoient en ma faveur. Je le regrettai comme le meilleur de mes amis;
sa mort effaçoit de mon souvenir tous les malheurs qu'il m'avoit
causés.
Le désir ardent que j'avois de revoir madame de Briance, me fit
partir promptement; j'écrivis à mon oncle, que dans peu de temps je
l'irois trouver à Paris; mais je ne voulois alors m'arrêter en aucun
endroit. J'arrivai enfin à Rennes, & c'est où j'appris que vous & M. le
comte de Livry étiez chez madame de Briance. Cette nouvelle m'eût
donné une extrême joie, si je n'avois su presque en même temps
que le baron de Tadillac y étoit avec vous, qu'il y avoit demeuré
quelques jours inconnu, qu'ensuite il étoit venu à Rennes chercher
une troupe de comédiens, & qu'enfin vous étiez tous au château de
Kernosy.
Je ne doutai pas alors que Tadillac ne fût amoureux de madame
de Briance: je l'accusai d'une infidélité que j'avois si peu méritée; je
me plaignois aussi de votre oubli; mais, disois-je, après y avoir fait
réflexion, ils ne savent ce que je suis devenu: madame de Briance
croit peut-être que je ne suis plus au monde: allons, reprenois-je un
moment après, allons l'accabler de reproches, & voir si l'inconnu rival
est plus digne que moi d'un bien qui m'a tant coûté.
Je partis de Rennes; je laissai presque tous mes gens dans un
bourg qui est à quelques lieues d'ici. J'avois l'esprit & le cœur si
remplis de mes chagrins & de ma jalousie, que je méconnus d'abord
votre voix, & que je vous pris pour le rival que je venois chercher;
quelques paroles que vous me dites en m'abordant, aidèrent à me
tromper. Je louai la fortune de l'occasion qu'elle me présentoit de
combattre mon rival; il ne fallut pas moins que la joie de retrouver
un ami tel que vous, pour suspendre ma colère.
Je vous suis obligé, dit alors le chevalier, de la complaisance que
vous avez eue pour moi, en m'apprenant ce que j'avois tant d'envie
de savoir. Je suis convaincu de votre sagesse, par le récit que vous
venez de faire de vos aventures; mais je regrette la belle Fatime.
C'est un effet de votre prudence de n'en avoir pas parlé à ma sœur;
en sa place, j'aurois eu de furieux soupçons de votre fidélité. Je lui
en donnai hier le portrait, reprit Tourmeil, sans lui parler de la
passion de cette belle grecque; j'ai dit seulement que je l'avois eu
d'un marchand de Céphalonie: je me suis fait un plaisir de sacrifier
ce portrait à madame de Briance, sans blesser la mémoire de
Fatime. Le chevalier trouva cette conduite de Tourmeil très-
judicieuse; ne le voulant pas laisser seul, il demeura le reste de la
journée avec lui en conversation, puis il retourna auprès de ces
dames, qui étoient ravies de ce que Fatville & son oncle les avoient
délivrées, en partant dès le matin, de deux provinciaux bien fatigans.
Madame de Briance, apercevant son frère, se douta bien que son
amant étoit resté seul; elle fit naître un prétexte, qui donna occasion
à toute la compagnie de se retirer plutôt qu'à l'ordinaire. Les
personnes choisies passèrent, suivant la coutume, dans son
appartement; Tourmeil s'y étant aussi rendu, eut le plaisir
d'apprendre de la bouche de sa maîtresse, qu'elle étoit dans les
mêmes sentimens qu'il lui avoit laissés, quand il la quitta.
Le lendemain, le jour étant beau, M. de Livry & le baron, en
sortant de table, proposèrent de s'aller promener. La vicomtesse,
toujours complaisante pour les divertissemens où Tadillac avoit
quelque part, descendit, sans perdre de temps, dans le jardin, & fit
monter les dames dans son carrosse, afin qu'elles eussent le plaisir
d'aller, sans être fatiguées, dans le bois, dont les routes étoient fort
spacieuses; & le baron monta sur le siége du cocher, aimant mieux
cette occupation que celle de l'entretenir. Cependant madame la
vicomtesse lui tint compte de cette galanterie, & admira long-temps
la bonne grâce de ce nouveau Phaéton, qui n'eut pas un sort si cruel
que le premier; car il conduisit heureusement les chevaux & le char
jusqu'à l'endroit qu'il avoit prémédité. D'abord il s'éloigna du
château, puis il s'engagea tellement dans plusieurs allées de
traverse, qu'il auroit eu bien de la peine à s'en retourner, s'il en avoit
eu le dessein. Le second carrosse, qui étoit mené par le chevalier de
Livry, suivoit les traces du premier qui étoit devant, & la nuit vint,
que le baron, feignant de chercher le chemin, s'en éloignoit encore;
les valets de la vicomtesse étoient payés pour ne pas enseigner le
véritable.
Madame la vicomtesse commençoit à s'effrayer; les autres
dames, se voyant bien accompagnées, & dans un pays de
connoissance, ne s'inquiétèrent point: le baron & le chevalier
avançoient toujours; enfin on aperçut beaucoup de lumière. D'abord
tout le monde fut d'avis qu'on allât dans cet endroit chercher un
guide qui pût, avec le secours de quelques flambeaux, conduire les
carrosses, sans s'égarer, jusqu'au château de Kernosy. Le baron
s'étoit arrêté en attendant la décision de cet avis; le bruit confus des
paroles que les uns & les autres proféroient dans un même moment,
l'empêchoit, disoit-il, d'entendre l'avis de madame la vicomtesse. Elle
imposa silence, pour lui dire qu'il falloit marcher incessamment vers
cette lumière qui paroissoit de loin: il obéit aussi-tôt, & continua son
chemin jusqu'à ce qu'il fût sorti d'une fort belle avenue, d'où l'on
découvrit à plein un pavillon carré, dont les fenêtres, qui étoient
toutes illuminées, composoient, par leur symétrie, un aspect aussi
agréable que surprenant. Quand on fut à portée de ce pavillon, l'on
entendit le son de quelques instrumens qu'on mettoit d'accord, & la
voix de plusieurs personnes qui sembloient n'être occupées que de
la fonction dont chacun étoit chargé. Madame la vicomtesse
délibéra, pendant un assez long temps, si elle se feroit connoître, &
mademoiselle de Saint-Urbain, voyant qu'elle avoit peine à se
déterminer, lui dit: Pourquoi non? Cette aventure n'a pas l'air
périlleuse; j'espère que nous en sortirons sans malencontre. Je vais
l'éprouver, dit le baron en descendant du siége où il étoit. Les deux
carrosses étant arrêtés, on ouvrit, sans attendre qu'il eût frappé à la
porte; lorsqu'ils furent dans la cour, quatre hommes vêtus en
sauvages vinrent avec des flambeaux à la main recevoir madame la
vicomtesse, & l'ayant aperçue à la tête de plusieurs dames qui
avoient déjà mis pied à terre, deux marchèrent les premiers devant
elle, les deux autres se mirent sur les côtés de la troupe qui suivoit,
& tous quatre ils conduisirent la compagnie jusqu'à l'entrée d'un
grand salon orné de quantité de lustres, dont la lumière saisoit
succéder un nouveau jour à celui qui venoit de finir. Deux sauvages
qui attendoient dans cette salle, ayant approché des fauteuils près
d'un grand feu, se retirèrent, après avoir fait de profondes
révérences.
Il y avoit environ un quart-d'heure que l'on étoit entré, quand il
parut un jeune enfant vêtu à la romaine, qui salua madame la
vicomtesse, & lui demanda si elle auroit agréable que le seigneur de
la Maison-brillante vînt lui faire offre de son service. La vicomtesse,
charmée de cette proposition, pria le prétendu nain d'assurer le
maître de cette maison qu'elle auroit un extrême plaisir à le voir;
l'enfant étant sorti, le baron dit qu'il étoit jaloux de ce prince
inconnu, qui sembloit lui disputer l'honneur d'être bien auprès de
madame la vicomtesse. Alors le seigneur de la Maison-brillante
parut, précédé de quatre hommes vêtus à la romaine, qui portoient
des flambeaux devant lui; il avoit une robe de velours couleur de
feu, à l'arménienne, doublée de martre; une écharpe magnifique sur
une longue veste d'étoffe d'or, & sur la tête une espèce de petit
casque couvert de plumes blanches & couleur de feu, tenant de
bonne grace dans la main une baguette dorée: c'étoit Tourmeil, qui,
pour faire plaisir au baron, représentoit un personnage dans cette
petite fête, & qui, étant obligé de paroître dans un habit bizarre
devant madame de Briance, n'avoit pas voulu être trop négligé. Il n'y
avoit que la baronne de Sugarde à qui en laissa ignorer la vérité de
cette aventure, pour avoir le plaisir de son étonnement: elle fut
charmée du seigneur de la Maison-brillante, & en oublia pendant
quelque temps le goût qu'on lui avoit toujours remarqué pour le
chevalier de Livry.
La fortune vous a conduit dans mon empire, madame, dit le
seigneur de la Maison-brillante à la vicomtesse; je lui en ai déjà
rendu graces, & je me serois flatté que ce grand jour devoit être
celui où un enchanteur m'a prédit un bonheur suprême, par l'arrivée
d'une dame que ses grandes qualités rendant aimable & dont
l'humeur charmante fait qu'en préfère sa personne aux grands biens
qu'elle possède. Je n'ai garde d'élever mes pensées jusqu'à vous,
madame; je sais, continua-t-il en montrant le baron, que les destins
vous ont réservée pour ce fidèle chevalier. Il est digne de vous par
son amour & par son mérite; je ne troublerai point une union qui
doit être si belle.
Les termes ampoulés que madame la vicomtesse avoit employés
dans la réponse qu'elle fit à ce discours obligeant, l'auroient rendue
trop longue, & peut-être fatigante, si des sauvages ne fussent venus
interrompre le cours de ses paroles, en apportant une table qui fut
couverte magnifiquement.
Le seigneur de la Maison-brillante fit les honneurs de chez lui: on
se mit à table; il s'assit auprès de madame de Briance, & lui parla
d'un air familier; il désola madame de Sugarde, qui ne pouvoit
souffrir que ce seigneur, tel qu'il pût être, parût plus touché des
charmes d'une autre que des siens. La vicomtesse complimenta
madame de Briance sur sa conquête, & dit au seigneur de la Maison-
brillante, que ce seroit sans doute par cette beauté que la prédiction
de l'enchanteur alloit s'accomplir; il lui répondit gravement qu'il
commençoit aussi à le croire.
Des hautbois jouèrent pendant le repas, les sauvages servirent à
table; dès qu'il fut fini, le seigneur de la Maison-brillante conduisit la
compagnie dans une salle séparée par un petit vestibule de celle ou
l'on venoit de souper, donnant toujours la main à madame de
Briance, parce qu'il ne vouloit point, disoit-il, s'opposer aux ordres du
destin, en s'exposant de trop près aux charmes de la vicomtesse.
Elle se mit la première dans un fauteuil qui lui étoit préparé vis-à-
vis d'un petit théâtre bien entendu; les dames se placèrent au
second rang, & les musiciens s'étant mis au troisième, les acteurs
parurent après que la symphonie eut cessé. Ils jouèrent le
Bourgeois-Gentilhomme avec tous les agrémens, & s'attirèrent
l'applaudissement qu'ils méritoient. Ce sont là nos comédiens de
Rennes, dit la vicomtesse, en les reconnoissant. Il est vrai, répondit
le seigneur de la Maison-brillante, je savois qu'ils avoient eu
l'honneur de vous plaire, madame, & d'un coup de baguette je les ai
transportés ici pour vous divertir.
Madame la vicomtesse comprit, par cette réponse, que tout ce
qui se passoit étoit une galanterie du baron; & de crainte qu'il ne se
persuadât qu'elle avoit d'abord été trompée, elle dit en haussant la
voix: Quel que soit le seigneur de cette maison, je lui suis très-
obligée d'avoir fait pour moi tous ces agréables enchantemens, qui
lui ont assurément coûté plus de peines & de soins qu'il ne veut
nous faire croire.
La baronne de Sugarde ayant aussi reconnu les comédiens, jugea
que c'étoit Tadillac qui donnoit cette fête. Mais le seigneur de la
Maison-brillante l'embarrassoit toujours; il avoit tant d'esprit, & l'air
si poli, qu'elle ne pouvoit le prendre pour un comédien de
campagne, ni pour un provincial.
Ce seigneur, accompli de toutes manières, qui étoit cause de la
jalousie qui se glissoit parmi les dames, se leva aussi-tôt que la
comédie fut finie; fit une grande révérence à madame la vicomtesse,
& commença le bal avec elle. Les dames craignant que M. de Livry &
le baron de Tourmeil ne se fatiguassent trop à danser, prièrent
chacune à leur tour ceux d'entre les acteurs qui se distinguoient
dans cet exercice. Les hommes en firent de même à l'égard des
comédiennes; la compagnie, par ce moyen, étant devenue plus
nombreuse, le bal dura plus long-temps, & le plaisir n'en fut pas
moins agréable.
Il y avoit déjà deux heures qu'on étoit occupé à ce
divertissement, quand on vit tout à coup entrer quatre sauvages qui
portoient chacun deux flambeaux. D'abord le seigneur de la maison
présenta la main à madame la vicomtesse, & la conduisit dans la
salle où l'on avoit soupé; toute la compagnie suivit, ainsi que les
comédiens; enfin, on servit des rafraîchissemens, que l'exercice de la
danse rendit plus agréables. Les uns prirent du chocolat, les autres
du café, d'autres des liqueurs, dont il y avoit à profusion; enfin
chacun trouva de quoi se satisfaire selon son goût, car les glaces &
les confitures sèches & liquides n'y manquoient pas.
Cela fait, on retourna dans la salle du bal; mais quel fut
l'étonnement de la compagnie, lorsqu'elle vit le théâtre illuminé de
nouveau, avec une décoration qui représentoit un bois si
naturellement, que peu s'en fallut qu'on ne crût s'être égaré, comme
on avoit fait en venant du château de Kernosy à la Maison-brillante.
La symphonie se faisoit entendre; dès qu'elle eut fini, l'on chanta les
paroles qui suivent, que Tourmeil avoit composées, & où il n'avoit
pas oublié madame de Briance, sachant bien qu'elle seroit présente
à ce petit opéra, qui n'étoit que de deux scènes, comme Tadillac
l'avoit souhaité.
(Si, dans quelques endroits, on trouve peu de justesse, c'est
moins la faute de l'auteur que de celle qui raconte ces faits; car
n'ayant entendu qu'une fois ces paroles, il est bien difficile de les
avoir retenues exactement.)

SCENE Iere.

TIRCIS, PHILEMON.
Philemon.
Quand l'amour, dans ces lieux tranquilles,
Veut rassembler les Plaisirs les plus doux,
Pourquoi, Tircis, les troublez-vous,
Par des soupirs & des soins inutiles?

Tircis.

Je cherche en vain dans ce bois écarté,


Un doux repos qui me rende à moi-même.
Hélas! est-il pour moi quelque tranquillité?
L'impitoyable amour a résolu que j'aime.
J'ai fui pour m'affranchir de ses barbares lois;
Mais il a fait ma bergère si belle,
Qu'à nos regards, dès qu'il l'offre une fois,
Ce n'est plus l'éviter que de s'éloigner d'elle.

Philemon.

En faveur d'un amant si tendre & si fidelle,


Amour, lancez, lancez vos traits.
Percez le cœur de cette belle,
Puisqu'elle a déjà vos attraits.
En faveur, &c.

Tircis.

Percez le cœur de cette belle.

Philemon.

En faveur d'un amant si tendre & si fidelle.


Tircis & Philemon.

Amour, lancez, lancez vos traits.

Tircis.

L'ingrate vient dans ces forêts.

Philemon.

Je ne veux point troubler les amoureux secrets.

SCENE II.

T I R C I S, S I LV I E .
Silvie.

Je viens chercher dans cette solitude


A me plaindre des maux de l'empire amoureux.
N'y calmerai-je point ma triste inquiétude....?
Ah! je vous trouve ici (à part), que mon sort est heureux!

Tircis.
Cessez, cessez de fuir un amant malheureux.
Pourquoi déchaînez-vous votre injuste colère
Contre une si parfaite ardeur?
Quelque dieu qui me soit contraire,
L'amour, le tendre amour vous répond de mon cœur.
Je jure à vos attraits une ardeur immortelle;
Je brûlerai toujours d'une flamme si belle:
Et si j'osois trahir de si tendres sermens,
Que des dieux le plus redoutable,
Le dieu qui fait le bonheur des amans,
Ne me soit jamais favorable.

Silvie.

Je veux croire enfin vos sermens;


Ils ont désarmé ma colère;
Une jeune & vaine bergère
S'applaudissoit de causer vos tourmens,
Mais mon amour m'assure à tous momens,
Que je mérite un cœur sincère.
Je veux croire enfin vos sermens,
Ils ont désarmé ma colère.

Tous deux.

Redoublons nos vives ardeurs,


Bannissons les tristes alarmes;
Que tout ce qu'amour a de charmes
Règne à jamais dans nos cœurs.

Silvie.
En vain j'ai cru rompre ma chaîne;
C'est mon destin de soupirer pour vous.
Je ne m'oppose plus au penchant qui m'entraîne;
Loin de me plaindre de ma peine,
Je me plaindrai toujours de l'injuste courroux.
Qui me fit préférer les fureurs de la haîne
Aux plaisirs d'un amour si charmant & si doux.
En vain, &c.

Tircis.

Rossignols de ce lieu paisible,


Oubliez, s'il se peut, vos plus tendres amours?
A chanter la beauté qui m'a rendu sensible,
Employez les beaux jours.
Retenez bien les chants que je vais vous apprendre,
Eux seuls doivent plaire toujours,
Jamais mon cœur fidelle & tendre
Ne vous fera chanter de nouvelles amours;
Philomèle, venez m'entendre.
Amour, qui faites seul le bonheur de ma vie,
D'un mortel fortuné rendez les dieux jaloux.
Leur destin glorieux ne me fait point d'envie;
Etre aimé de Silvie
Est un destin cent fois plus doux.

Duo.

Redoublons, &c.

L'auteur de ces paroles, & celui qui les avoit mises en musique,
eurent sujet d'être contens des applaudissemens de la compagnie.
On sortit de cet endroit pour se rendre dans le salon, où l'on
s'entretint très-long-temps, en se chauffant, sur les beautés de ce
petit opéra. Le jour commençoit à paroître, & le seigneur de la
Maison-brillante, qui n'avoit pas discontinué de faire les honneurs de
chez lui, & à qui la fatigue d'avoir veillé la nuit avoit ouvert l'appétit
du matin, jugea bien que toute l'assemblée devoit être dans le
même besoin. Il donna ordre qu'on mît le couvert; & quoique le
repas fût aussi magnifique que celui du soupé, les plaisirs de la table
ne furent pas ceux qui occupèrent le plus; chacun paroisse ravi
d'être auprès de ses inclinations. MM. de Livry étoient à côté de
mesdemoiselles de Kernosy; le baron faisoit sa cour à madame la
vicomtesse; le comte de Tourmeil, indifférent pour tous les mets
délicieux qui étoient devant lui, ne pensoit qu'à entretenir madame
de Briance, de l'autre côté, madame de Salgue se félicitoit de voir
que Tadillac ne rendoit ses hommages qu'à madame la vicomtesse.
La baronne seule, dévorée par sa jalousie, ne pouvoit souffrir qu'une
autre personne qu'elle eût su gagner, par ses charmes, le cœur du
seigneur de la maison. La compagnie étoit si comblée de joie, qu'on
auroit insensiblement gagné l'heure de midi à table, si les
domestiques de madame la vicomtesse n'etoient venus avertir que
les carrosses étoient prêts. Le grand jour qu'il faisoit alors, ayant
dissipé les enchantemens de la nuit passée, donna lieu de
reconnoître que la maison où l'on étoit appartenoit à un
gentilhomme voisin de madame la vicomtesse, qui, depuis trois ou
quatre ans, en avoit fait un gros pavillon à la moderne.
Ce gentilhomme n'y venoit jamais que dans la belle saison. Son
absence facilita les moyens au baron de gagner le concierge, & de le
faire consentir, moyennant une honnête récompense, qu'il y célébrât
cette fête, dont l'invention plut si fort aux dames, qu'elles lui en
donnèrent mille louanges. Depuis ce temps-là madame la vicomtesse
ne pouvoit plus vivre sans lui; elle étoit enchantée de ses manières
nobles & magnifiques; & le seigneur de la Maison-brillante, avec
toutes ses qualités avantageuses, n'avoit point altéré la passion que
cette dame sentoit pour Tadillac. Il n'y a pas lieu de s'en étonner; ce
seigneur de la Maison-brillante l'avoit laissée dans l'erreur où elle
étoit de le croire sincèrement le maître de la troupe de comédiens.
On n'arriva qu'après midi au château de Kernosy; les gens de la
vicomtesse ne furent point en peine de son absence; Saint-Urbain
avoit eu soin de les avertir qu'on ne reviendroit que le matin; ils
dirent au baron en entrant, qu'un courrier étoit arrivé en poste pour
lui rendre une lettre en main propre; qu'il paroissoit très-pressé de
lui parler. Le baron fit comme si cette nouvelle l'eût fort surpris,
parce qu'on lui parloit en présence de la vicomtesse, qui prit part à
ce qu'on lui disoit, & lui ordonna de venir à son réveil l'instruire des
nouvelles que ce courrier lui apportoit; elle alloit prendre quelques
heures de repos, pour se remettre des fatigues de la nuit passée.
Avant d'entrer dans sa chambre, elle lui conseilla aussi d'aller se
reposer, & d'avertir ses gens qu'ils ne manquassent pas de faire
monter ce courrier quand il viendront le demander. Les dames, à
l'exemple de madame la vicomtesse, se mirent au lit. MM. de Livry,
& le comte de Tourmeil qui étoit arrivé avec les comédiens, dont il
paroissoit être le chef, passèrent le reste de la journée à se divertir
entre eux. Le baron de Tadillac ne put être de la compagnie; car le
prétendu courrier revint justement dans le moment qu'ils entroient
dans leur appartement. Les domestiques le firent monter, suivant
l'ordre qu'ils en avoient reçu, & Tadillac le retint long-temps exprès,
pour empêcher que personne ne se défiât de la supposition de cet
homme.
Le baron alla chez la vicomtesse aussi-tôt qu'elle fut éveillée. Son
air triste la fit frémir; elle voulut savoir le sujet de cet abattement qui
paroissoit sur son visage; & pour toute réponse, elle n'entendit que
de profonds soupirs; enfin le baron lui dit qu'il étoit bien
malheureux, qu'on l'arrachoit d'auprès de sa personne. Eh! pourquoi,
reprit la vicomtesse tout étonnée. Voyez, madame, s'il vous plaît, la
lettre que j'ai reçue, dit le baron; c'étoit celle que Tourmeil avoit
écrite. L'ayant lue, elle tâcha de le consoler par un discours qui
effectivement partoit du cœur. Votre oncle est bien pressant, dit-elle;
je vois qu'il vous offre un parti considérable, & qu'il prétend que
vous alliez, sans perdre un moment, tenir la parole qu'il a donnée
pour vous; mais vous pourriez trouver ailleurs une fortune aussi
considérable. Je..... Comme elle alloit continuer, madame de Sugarde
entra; le baron fut obligé de se retirer, & ne se trouva point le soir à
la comédie.
Madame la vicomtesse y passa le temps à faire des réflexions sur
l'absence de Tadillac; enfin craignant qu'il ne prît son parti, & qu'il
n'obéît à son tuteur, elle sortit seule, & alla se mettre sur un petit lit
de repos qui étoit dans son cabinet; son inquiétude l'avoit abattue, &
son esprit ne fut tranquille qu'après l'arrivée du baron qu'elle avoit
fait appeler. Vous allez voir, dit-elle des qu'il fut entré, à quel point je
suis touchée d'un véritable mérite.
Je ne saurois souffrir qu'un homme tel que vous cherche ailleurs
une fortune qu'il dépend de moi de rendre aussi agréable que celle
qui se présente de la part de votre oncle. Je vous déclare que je
consens de vous épouser, & que rien désormais ne pourra nous
séparer, si vous m'aimez autant que je m'en suis flattée. Le baron
l'interrrompit en se jetant à ses genoux, & lui dit quantité de choses
que la vicomtesse prit pour un excès de sa passion. Saint-Urbain vint
dans ce moment avertir qu'on avoit servi le souper. Ils sortirent
ensemble du cabinet de la vicomtesse; le baron lui donna la main
pour descendre, & entra dans la salle la tenant encore, avec une
gaîté qui fut d'un bon augure aux deux aimables sœurs & à leurs
amans.
La soirée ne fut pas longue; chacun se sépara en sortant de
table, parce que les divertissemens de la nuit précédente causoient
une nécessité indispensable de prendre du repos. Le baron, après
avoir fait sa cour à madame la vicomtesse, qu'il venoit de conduire
dans son appartement, passa chez madame de Briance, où il savoit
que le comte de Tourmeil, MM. de Livry & mesdemoiselles de
Kernosy étoient. Il y rendit compte du bon succès de sa lettre; on
l'en félicita, & il en reçut les complimens de si bonne grace, qu'on vit
bien qu'il étoit content. Ce n'étoit pas sans sujet; il savoit qu'en
épousant madame la vicomtesse, comme il l'avoit toujours désiré, il
assuroit, par ce mariage, sa fortune & son bonheur.
Vos souhaits sont accomplis, lui dit le chevalier; que deviendrons-
nous à présent? Rien ne flatte encore nos espérances. Vous êtes
bien prompt, lui répondit le baron; à peine ai-je eu un moment pour
remercier madame la vicomtesse; demain je travaillerai pour vous:
j'espère que M. le comte de Livry sera content, & que mademoiselle
de Saint-Urbain ne deviendra jamais l'épouse de M. de Fatville. J'ose
même me flatter que si l'occasion se présente de faire connoître M.
le comte de Tourmeil à madame la vicomtesse, elle sera ravie
d'apprendre sa passion pour madame de Briance, & qu'elle se servira
de tout son crédit pour avancer leur mariage.
Le lendemain, le baron, qui désiroit sincèrement de contribuer au
bonheur de ses deux cousins, alla du matin rendre visite à madame
la vicomtesse, afin de l'entretenir en particulier. Il lui proposa
l'alliance de MM. de Livry pour les deux nièces. La vicomtesse
accepta la proposition de donner Kernosy au comte de Livry; mais,
dit-elle au baron, puisque je vous accorde une partie de ce que vous
demandez, faites-moi le plaisir de parler à Saint-Urbain, & de la
disposer à m'obéir; j'ai des raisons qui m'obligent à vouloir
absolument son mariage avec M. de Fatville: si je pouvois m'en
dispenser, je le ferois pour vous plaire. Allons donc lui annoncer que
MM. de Fatville & leur oncle arrivent ici aujourd'hui.
La commission que le baron venoit de recevoir, contre son
attente, l'embarrassa; il ne crut pas à propos de découvrir au
chevalier la vérité du fait, ni de désoler Saint-Urbain, en lui
apprenant l'intention de sa tante; il lui dit seulement que MM. de
Fatville devoient arriver le soir. Cette aimable personne,
extrêmement affligée d'entendre une nouvelle si terrible, feignit de
se trouver mal, & alla se mettre au lit, afin de n'être pas obligée de
paroître. Madame de Briance lui tint compagnie; Kernosy ne vouloit
point la quitter: mais madame la vicomtesse voulut absolument
qu'elle vînt faire les honneurs de la maison.
Fatville le conseiller & son oncle arrivèrent sur le soir; un peu
après, le frère de Fatville vint en litière, parce qu'il n'étoit pas encore
assez bien guéri de sa chûte pour se tenir à cheval, & entra dans la
salle de la comédie, où l'on étoit alors. La vicomtesse le reçut
agréablement, & lui dit qu'aussi-tôt que la pièce seroit finie, elle le
présenteroit à sa nièce, qui s'étoit trouvée mal. Le chevalier de Livry
sentit des mouvemens de colère à la vue de son rival, & sa prudence
n'auroit pu les retenir, si elle n'avoit été secondée de celle de son
frère & des conseils que Tourmeil lui avoit donnés.
Après la comédie, la vicomtesse mena Fatville & la compagnie
dans la chambre de Saint-Urbain. Cette visite inopinée embarrassa
beaucoup la nièce. Mais quel que fût son embarras, celui qu'on
remarqua sur le visage du frère aîné de Fatville étoit bien plus grand:
il ne put dire deux paroles de suite, & ne cessa point de regarder
Tourmeil qu'il trouva dans la chambre. Madame de Briance qui étoit
auprès de lui, dit à la vicomtesse qu'elle l'avoit envoyé chercher pour
apprendre quelques morceaux de leur petit opéra. Ce discours
augmenta le soupçon de Fatville; il le regarda encore fixément.
Tourmeil, ne voulant pas être connu, sortit aussi-tôt; mais le
provincial n'en parut pas plus tranquille.
La vicomtesse ne pouvant comprendre quelle étoit la cause de
cette agitation d'esprit qui régnoit de part & d'autre, emmena MM.
de Fatville, & laissa Saint-Urbain en liberté avec madame de Briance.
Après leur sortie, elles raisonnèrent touchant l'émotion qui avoit paru
sur le visage du provincial à la vue de Tourmeil, & n'y trouvant rien
de vraisemblable, elles conclurent qu'il ajoutoit à beaucoup d'autres
défauts, celui d'être jaloux sans sujet.
Cependant le chevalier étoit au désespoir; il ne trouvoit point
Saint-Urbain assez résolue pour désobéir à sa tante. Ah! mon frère,
disoit-il à Tourmeil, car il l'appeloit souvent de ce nom, que je suis
malheureux! que j'envie votre destinée! vous êtes tendrement aimé,
& rien ne s'oppose à vos espérances. Vous êtes aimé de même,
répondit Tourmeil; & quand on est aimé, c'est offenser l'amour que
se plaindre avec tant de violence. Vous n'aimez point, si vous
n'espérez rien. L'espoir est inséparable de l'amour; & dans le même
temps que l'on croit aimer sans ce secours flatteur, on mourroit de
douleur, si l'espérance n'étoit cachée au fond du cœur qui croit
l'avoir perdue.
Tourmeil essaya inutilement de consoler le chevalier; ce fut
beaucoup de le résoudre à retourner dans la chambre de la
vicomtesse; il y alla enfin, & regarda en entrant son rival avec une
jalousie terrible, dont il n'auroit pu être le maître, s'il n'avoit senti à
son côté son ami, qui ne voulut point l'abandonner dans cette
occasion.
Tourmeil, moins prévenu que le chevalier, considéra le provincial
avec plus d'attention qu'il n'avoit fait dans la chambre de Saint-
Urbain, & après l'avoir entendu parler plusieurs fois: C'est lui-même,
dit-il au chevalier; oui, c'est lui-même. Le chevalier lui demanda
l'explication de ces paroles. Sortons, lui dit Tourmeil, en baissant la
voix, je vais relever vos espérances.
La vicomtesse proposoit alors à MM. de Fatville de signer, après
le souper; les articles qu'elle avoit dressés avec leur oncle. Kernosy,
que cette proposition affligea, sortit de la chambre, pour avertir sa
sœur du dessein de leur tante.
Cependant Tourmeil ayant appris au chevalier le secret qui devoit
contribuer à le rendre heureux, fit avertir le baron de le venir
trouver. La vicomtesse, qui remarquoit un grand mouvement dans
toute la compagnie, craignant que Saint-Urbain, peu disposée à
suivre ses volontés, ne songeât à lui échapper, pour aller dans un
couvent, ou chez quelqu'une de ses parentes, donna secrètement
ses ordres pour faire fermer les portes du château; mais on lui en
apporta les clefs avec moins de discrétion: un valet étourdi les lui
donna devant MM. de Fatville.
La présence de Tourmeil & du chevalier de Livry, le murmure qui
se répandoit dans le château, la vue de ces clefs qu'on venoit
d'apporter; tout sembloit annoncer à Fatville l'aîné l'impossibilité de
son mariage. L'appréhension de quelque malheur troubla son esprit
de telle sorte, que se jetant tout à coup aux pieds de la vicomtesse:
Ah! madame, lui dit-il, voulez-vous me perdre? On m'a reconnu; je
n'en saurois douter. M. de Tourmeil & le chevalier de Livry sont ici;
faites ma paix. J'accepte toutes les conditions qu'ils voudront
m'imposer. De quoi donc est-il question? dit la vicomtesse, surprise
des paroles & de l'action du provincial; quelle querelle avez-vous
avec le chevalier de Livry? & où avez-vous vu ici ce M. de Tourmeil
dont vous parlez? Ah! mon neveu, s'écria l'oncle de Fatville, vous
vous perdez vous-même par votre frayeur; sans elle madame la
vicomtesse ignoreroit absolument la malheureuse aventure qui vous
est arrivée. Oui, dit le chevalier en entrant, madame ne la savoit
point, mais je venois l'en instruire.
Fatville, que vous voyez, madame, continua-t-il en remarquant
qu'on l'écoutoit avec attention, est complice de cet assassinat dans
Rennes, qui suivit la querelle que j'avois eue avec un gentilhomme
de la province: j'y fus blessé, & M. de Tourmeil, le plus cher de mes
amis, pensa y perdre la vie, en défendant généreusement la mienne.
Ce fut de la main de ce lâche que Tourmeil reçut un coup par
derrière. Nous avions ignoré son nom, parce que celui des assassins
qui fut pris ne le savoit pas lui-même; il déposa seulement que celui
qui avoit blessé Tourmeil, étoit un ami du provincial avec qui j'avois
eu querelle.
L'oncle de Fatville, qui avoit de l'esprit, jugeant bien, par la
confusion où il vit son neveu, qu'il n'étoit pas en état de répondre,
dit au chevalier de Livry toutes les raisons qu'un honnête homme
peut donner pour défendre une mauvaise cause, & pour tâcher de
terminer l'affaire à l'amiable. Voilà, dit alors Fatville le conseiller, voilà
sans doute ce que les maudits lutins étoient venus prédire. Cette
sottise ne seroit pas tombée à terre, & l'on s'en seroit diverti, si l'on
n'avoit pas été trop occupé d'ailleurs.
La vicomtesse, qui se piquoit de grandeur d'ame, parut indignée
de la mauvaise action de Fatville, & pourtant, à la considération de
son oncle, elle pria le chevalier de pardonner à ce malheureux
gentilhomme. Le chevalier, qui étoit véritablement généreux, accorda
Welcome to Our Bookstore - The Ultimate Destination for Book Lovers
Are you passionate about testbank and eager to explore new worlds of
knowledge? At our website, we offer a vast collection of books that
cater to every interest and age group. From classic literature to
specialized publications, self-help books, and children’s stories, we
have it all! Each book is a gateway to new adventures, helping you
expand your knowledge and nourish your soul
Experience Convenient and Enjoyable Book Shopping Our website is more
than just an online bookstore—it’s a bridge connecting readers to the
timeless values of culture and wisdom. With a sleek and user-friendly
interface and a smart search system, you can find your favorite books
quickly and easily. Enjoy special promotions, fast home delivery, and
a seamless shopping experience that saves you time and enhances your
love for reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!

ebooksecure.com

You might also like