Immediate download JAVA Illuminated An Active Learning Approach 5th Edition Julie Anderson ebooks 2024

Download as pdf or txt
Download as pdf or txt
You are on page 1of 81

Visit https://ebookgate.

com to download the full version and


explore more ebooks

JAVA Illuminated An Active Learning Approach 5th


Edition Julie Anderson

_____ Click the link below to download _____


https://ebookgate.com/product/java-illuminated-an-
active-learning-approach-5th-edition-julie-anderson/

Explore and download more ebooks at ebookgate.com


Here are some recommended products that might interest you.
You can download now and explore!

Introductory Chemistry An Active Learning Approach 3rd


Edition Mark S. Cracolice

https://ebookgate.com/product/introductory-chemistry-an-active-
learning-approach-3rd-edition-mark-s-cracolice/

ebookgate.com

Analysis of Algorithms An Active Learning Approach 1st


Edition Jeffrey J. Mcconnell

https://ebookgate.com/product/analysis-of-algorithms-an-active-
learning-approach-1st-edition-jeffrey-j-mcconnell/

ebookgate.com

Learning Java 5th Edition Marc Loy

https://ebookgate.com/product/learning-java-5th-edition-marc-loy/

ebookgate.com

Public Policymaking An Introduction 5th Edition James E.


Anderson

https://ebookgate.com/product/public-policymaking-an-introduction-5th-
edition-james-e-anderson/

ebookgate.com
Java Studio Creator Field Guide Anderson

https://ebookgate.com/product/java-studio-creator-field-guide-
anderson/

ebookgate.com

Core Java An Integrated Approach 2nd Edition R. Nageswara


Rao

https://ebookgate.com/product/core-java-an-integrated-approach-2nd-
edition-r-nageswara-rao/

ebookgate.com

Active Skills for Reading 2 3rd Edition Neil J Anderson

https://ebookgate.com/product/active-skills-for-reading-2-3rd-edition-
neil-j-anderson/

ebookgate.com

Value Base of Social Work and Social Care An Active


Learning Handbook 1st Edition Adam Barnard

https://ebookgate.com/product/value-base-of-social-work-and-social-
care-an-active-learning-handbook-1st-edition-adam-barnard/

ebookgate.com

Learning Java 4th Edition Patrick Niemeyer

https://ebookgate.com/product/learning-java-4th-edition-patrick-
niemeyer/

ebookgate.com

JAVA
Illuminated
An Active Learning Approach

FIFTH EDITION

Julie Anderson
Rollins College

Hervé Franceschi
Loyola University Maryland

JONES BARTLETT
LEARNING
World Headquarters
Jones & Bartlett Learning
5 Wall Street
Burlington, MA 01803
978-443-5000
[email protected]
www.jblearning.com

Jones & Bartlett Learning books and products are


available through most bookstores and online
booksellers. To contact Jones & Bartlett Learning
directly, call 800-832-0034, fax 978-443-8000, or visit
our website, www.jblearning.com.

Substantial discounts on bulk quantities of Jones


& Bartlett Learning publications are available to
corporations, professional associations, and
other qualified organizations. For details and
specific discount information, contact the special
sales department at Jones & Bartlett Learning via
the above contact information or send an email to
[email protected].
Copyright © 2019 by Jones & Bartlett Learning, LLC,
an Ascend Learning Company

All rights reserved. No part of the material protected


by this copyright may be reproduced or utilized in
any form, electronic or mechanical, including
photocopying, recording, or by any information
storage and retrieval system, without written
permission from the copyright owner.

The content, statements, views, and opinions herein


are the sole expression of the respective authors and
not that of Jones & Bartlett Learning, LLC. Reference
herein to any specific commercial product, process,
or service by trade name, trademark, manufacturer,
or otherwise does not constitute or imply its
endorsement or recommendation by Jones & Bartlett
Learning, LLC and such reference shall not be used
for advertising or product endorsement purposes. All
trademarks displayed are the trademarks of the
parties noted herein. Java Illuminated, Fifth Edition,
is an independent publication and has not been
authorized, sponsored, or otherwise approved by the
owners of the trademarks or service marks
referenced in this product.

There may be images in this book that feature


models; these models do not necessarily endorse,
represent, or participate in the activities represented
in the images. Any screenshots in this product are
for educational and instructive purposes only. Any
individuals and scenarios featured in the case
studies throughout this product may be real or
fictitious, but are used for instructional purposes only.

23993-5

Production Credits
Director of Product Management: Matthew Kane
Product Manager: Laura Pagluica
Product Assistant: Rebecca Feeney
Production Manager: Carolyn Pershouse
Production Manager: Dan Stone
VP, Manufacturing and Inventory Control: Therese
Connell
Media Development Editor: Shannon Sheehan
Rights & Media Specialist: Thais Miller
Cover & Title Page Design: Kristin E. Parker
Cover Image (Title Page, Part Opener, Chapter
Opener): © itsskin/Getty Images
Printing and Binding: LSC Communications
Cover Printing: LSC Communications
Library of Congress Cataloging-in-Publication
Data
ISBN13: 978-1-284-23993-5

Application submitted.

6048

Printed in the United States of America


22 21 20 19 18 10 9 8 7 6 5 4 3 2 1
Dedications

To the memory of my parents, Glenn and Rosemary


Austin, my first teachers. – Julie Anderson

A ma mère, trop tôt disparue, et à mon père. – Hervé


Franceschi
Contents
Preface
Turing’s Craft CodeLab Student
Registration Instructions
Acknowledgments

Chapter 1 Introduction to Programming and the


Java Language
1.1 Basic Computer Concepts
1.1.1 Hardware
1.1.2 Operating Systems
1.1.3 Application Software
1.1.4 Computer Networks and the Internet
1.2 Practice Activity: Displaying System
Configuration
1.2.1 Displaying Windows Configuration
Information
1.2.2 Displaying Mac OS Configuration
Information
1.3 Data Representation
1.3.1 Binary Numbers
1.3.2 Using Hexadecimal Numbers to
Represent Binary Numbers
1.3.3 Representing Characters with the
Unicode Character Set
1.4 Programming Languages
1.4.1 High- and Low-Level Languages
1.4.2 An Introduction to Object-Oriented
Programming
1.4.3 The Java Language
1.5 An Introduction to Programming
1.5.1 Programming Basics
1.5.2 Program Design with Pseudocode
1.5.3 Developing a Java Application
1.5.4 Programming Activity 1: Writing a
First Java Application
Debugging Techniques
Testing Techniques
1.5.5 Making a JAR File
1.6 Chapter Summary
1.7 Exercises, Problems, and Projects
1.7.1 Multiple Choice Exercises
1.7.2 Converting Numbers
1.7.3 General Questions
1.7.4 Technical Writing
1.7.5 Group Project (for a group of 1, 2, or 3
students)

Chapter 2 Programming Building Blocks—Java


Basics
2.1 Java Application Structure
2.2 Data Types, Variables, and Constants
2.2.1 Declaring Variables
2.2.2 Integer Data Types
2.2.3 Floating-Point Data Types
2.2.4 Character Data Type
2.2.5 Boolean Data Type
2.2.6 The Assignment Operator, Initial
Values, and Literals
2.2.7 String Literals and Escape
Sequences
2.2.8 Constants
2.3 Expressions and Arithmetic Operators
2.3.1 The Assignment Operator and
Expressions
2.3.2 Arithmetic Operators
2.3.3 Operator Precedence
2.3.4 Programming Activity 1: Converting
Inches to Centimeters
2.3.5 Integer Division and Modulus
2.3.6 Division by Zero
2.3.7 Mixed-Type Arithmetic and Type
Casting
2.3.8 Shortcut Operators
2.4 Programming Activity 2: Temperature
Conversion
2.5 Chapter Summary
2.6 Exercises, Problems, and Projects
2.6.1 Multiple Choice Exercises
2.6.2 Reading and Understanding Code
2.6.3 Fill In the Code
2.6.4 Identifying Errors in Code
2.6.5 Debugging Area—Using Messages
from the Java Compiler and Java
JVM
2.6.6 Write a Short Program
2.6.7 Programming Projects
2.6.8 Technical Writing

Chapter 3 Object-Oriented Programming, Part 1:


Using Classes
3.1 Class Basics and Benefits
3.2 Creating Objects Using Constructors
3.3 Calling Methods
3.4 Using Object References
3.5 Programming Activity 1: Calling Methods
3.6 The Java Class Library
3.7 The String Class
The length Method
The toUpperCase and
toLowerCase Methods
The charAt Method
The indexOf Methods
The substring Methods
String Processing
3.8 Formatting Output with the
DecimalFormat Class
3.9 Generating Random Numbers with the
Random Class
3.10 Input from the Console Using the
Scanner Class
3.11 Calling Static Methods and Using
Static Class Variables
3.12 Using System.in and System.out
3.13 The Math Class
The pow Method
The round Method
The min and max Methods
3.14 Formatting Output with the
NumberFormat Class
3.15 The Integer, Double, Character, and Other
Wrapper Classes
3.16 Programming Activity 2: Using Predefined
Classes
3.17 Chapter Summary
3.18 Exercises, Problems, and Projects
3.18.1 Multiple Choice Exercises
3.18.2 Reading and Understanding Code
3.18.3 Fill In the Code
3.18.4 Identifying Errors in Code
3.18.5 Debugging Area—Using Messages
from the Java Compiler and Java
JVM
3.18.6 Write a Short Program
3.18.7 Programming Projects
3.18.8 Technical Writing
3.18.9 Group Project (for a group of 1, 2, or
3 students)

Chapter 4 Introduction to Graphical


Applications
4.1 JavaFX Application Structure
4.2 The Graphics Coordinate System and Color
4.3 Drawing Shapes and Text
4.4 Drawing Custom Shapes
4.5 Programming Activity 1: Writing an
Application with Graphics
4.6 Chapter Summary
4.7 Exercises, Problems, and Projects
4.7.1 Multiple Choice Exercises
4.7.2 Reading and Understanding Code
4.7.3 Fill In the Code
4.7.4 Identifying Errors in Code
4.7.5 Debugging Area—Using Messages
from the Java Compiler and Java
JVM
4.7.6 Write a Short Program
4.7.7 Programming Projects
4.7.8 Technical Writing
4.7.9 Group Project (for a group of 1, 2, or 3
students)

Chapter 5 Flow of Control, Part 1: Selection


5.1 Forming Conditions
5.1.1 Equality Operators
5.1.2 Relational Operators
5.1.3 Logical Operators
DeMorgan’s Laws
5.2 Simple Selection with if
5.3 Selection Using if/else
Block Scope
5.4 Selection Using if/else if
5.5 Sequential and Nested if/else Statements
5.5.1 Sequential if/else Statements
Finding the Minimum or
Maximum Values
5.5.2 Nested if/else Statements
Dangling else
5.6 Testing Techniques for if/else Statements
5.7 Programming Activity 1: Working with if/else
5.8 Comparing Floating-Point Numbers
5.9 Comparing Objects
5.9.1 The equals Method
5.9.2 String Comparison Methods
5.10 The Conditional Operator (?:)
5.11 The switch Statement
5.12 Programming Activity 2: Using the
switch Statement
5.13 Chapter Summary
5.14 Exercises, Problems, and Projects
5.14.1 Multiple Choice Exercises
5.14.2 Reading and Understanding Code
5.14.3 Fill In the Code
5.14.4 Identifying Errors in Code
5.14.5 Debugging Area—Using Messages
from the Java Compiler and Java
JVM
5.14.6 Write a Short Program
5.14.7 Programming Projects
5.14.8 Technical Writing
5.14.9 Group Project (for a group of 1, 2, or
3 students)

Chapter 6 Flow of Control, Part 2: Looping


6.1 Event-Controlled Loops Using while
6.2 General Form for while Loops
6.3 Event-Controlled Looping
6.3.1 Reading Data from the User
6.3.2 Reading Data from a Text File
6.4 Looping Techniques
6.4.1 Accumulation
6.4.2 Counting Items
6.4.3 Calculating an Average
6.4.4 Finding Maximum or Minimum Values
6.5 Type-Safe Input Using Scanner
6.6 Constructing Loop Conditions
6.7 Testing Techniques for while Loops
6.8 Event-Controlled Loops Using do/while
6.9 Programming Activity 1: Using while Loops
Task Instructions
Troubleshooting
6.10 Count-Controlled Loops Using for
6.10.1 Basic Structure of for Loops
6.10.2 Constructing for Loops
6.10.3 Testing Techniques for for Loops
6.11 Nested Loops
6.12 Programming Activity 2: Using for Loops
Instructions
Troubleshooting
6.13 Chapter Summary
6.14 Exercises, Problems, and Projects
6.14.1 Multiple Choice Exercises
6.14.2 Reading and Understanding Code
6.14.3 Fill In the Code
6.14.4 Identifying Errors in Code
6.14.5 Debugging Area—Using Messages
from the Java Compiler and Java
JVM
6.14.6 Write a Short Program
6.14.7 Programming Projects
6.14.8 Technical Writing
6.14.9 Group Project (for a group of 1, 2, or
3 students)

Chapter 7 Object-Oriented Programming, Part 2:


User-Defined Classes
7.1 Defining a Class
7.2 Defining Instance Variables
7.3 Writing Class Methods
7.4 Writing Constructors
7.5 Writing Accessor Methods
7.6 Writing Mutator Methods
7.7 Writing Data Manipulation Methods
7.8 Programming Activity 1: Writing a Class
Definition, Part 1
7.9 The Object Reference this
7.10 The toString and equals Methods
7.11 Static Class Members
7.12 Graphical Objects
7.13 Enumeration Types
7.14 Programming Activity 2: Writing a Class
Definition, Part 2
7.15 Creating Packages
7.16 Generating Web-Style Documentation with
Javadoc
7.17 Chapter Summary
7.18 Exercises, Problems, and Projects
7.18.1 Multiple Choice Exercises
7.18.2 Reading and Understanding Code
7.18.3 Fill In the Code
7.18.4 Identifying Errors in Code
7.18.5 Debugging Area—Using Messages
from the Java Compiler and Java
JVM
7.18.6 Write a Short Program
7.18.7 Programming Projects
7.18.8 Technical Writing
7.18.9 Group Project (for a group of 1, 2, or
3 students)

Chapter 8 Single-Dimensional Arrays


8.1 Declaring and Instantiating Arrays
8.1.1 Declaring Arrays
8.1.2 Instantiating Arrays
8.1.3 Combining the Declaration and
Instantiation of Arrays
8.1.4 Assigning Initial Values to Arrays
8.2 Accessing Array Elements
8.3 Aggregate Array Operations
8.3.1 Printing Array Elements
8.3.2 Reading Data into an Array
8.3.3 Summing the Elements of an Array
8.3.4 Finding Maximum or Minimum Values
8.3.5 Copying Arrays
8.3.6 Changing the Size of an Array
8.3.7 Comparing Arrays for Equality
8.3.8 Displaying Array Data as a Bar Chart
8.4 Programming Activity 1: Working with Arrays
Instructions
Troubleshooting
8.5 Using Arrays in Classes
8.5.1 Using Arrays in User-Defined Classes
8.5.2 Retrieving Command Line Arguments
8.6 Searching and Sorting Arrays
8.6.1 Sequential Search of an Unsorted
Array
8.6.2 Selection Sort
8.6.3 Insertion Sort
8.6.4 Sorting Arrays of Objects
8.6.5 Sequential Search of a Sorted Array
8.6.6 Binary Search of a Sorted Array
8.7 Programming Activity 2: Searching and
Sorting Arrays
Instructions
Troubleshooting
8.8 Using Arrays as Counters
8.9 Methods Accepting a Variable Number of
Arguments
8.10 Chapter Summary
8.11 Exercises, Problems, and Projects
8.11.1 Multiple Choice Exercises
8.11.2 Reading and Understanding Code
8.11.3 Fill In the Code
8.11.4 Identifying Errors in Code
8.11.5 Debugging Area—Using Messages
from the Java Compiler and Java
JVM
8.11.6 Write a Short Program
8.11.7 Programming Projects
8.11.8 Technical Writing
8.11.9 Group Project (for a group of 1, 2, or
3 students)

Chapter 9 Multidimensional Arrays and the


ArrayList Class
9.1 Declaring and Instantiating Multidimensional
Arrays
9.1.1 Declaring Multidimensional Arrays
9.1.2 Instantiating Multidimensional Arrays
9.1.3 Combining the Declaration and
Instantiation of Multidimensional
Arrays
9.1.4 Assigning Initial Values to
Multidimensional Arrays
9.2 Accessing Multidimensional Array Elements
9.3 Aggregate Two-Dimensional Array
Operations
9.3.1 Processing All the Elements of a Two-
Dimensional Array
9.3.2 Processing a Given Row of a Two-
Dimensional Array
9.3.3 Processing a Given Column of a Two-
Dimensional Array
9.3.4 Processing a Two-Dimensional Array
One Row at a Time
9.3.5 Processing a Two-Dimensional Array
One Column at a Time
9.3.6 Displaying Two-Dimensional Array
Data as a Bar Chart
9.4 Two-Dimensional Arrays Passed to and
Returned from Methods
9.5 Programming Activity 1: Working with Two-
Dimensional Arrays
Instructions
Troubleshooting
9.6 Other Multidimensional Arrays
9.7 The ArrayList Class
9.7.1 Declaring and Instantiating
ArrayList Objects
9.7.2 Methods of the ArrayList Class
9.7.3 Looping Through an ArrayList Using
an Enhanced for Loop
9.7.4 Using the ArrayList Class in a
Program
9.8 Programming Activity 2: Working with the
ArrayList Class
Instructions
Troubleshooting
9.9 Chapter Summary
9.10 Exercises, Problems, and Projects
9.10.1 Multiple Choice Exercises
9.10.2 Reading and Understanding Code
9.10.3 Fill In the Code
9.10.4 Identifying Errors in Code
9.10.5 Debugging Area—Using Messages
from the Java Compiler and Java
JVM
9.10.6 Write a Short Program
9.10.7 Programming Projects
9.10.8 Technical Writing
9.10.9 Group Project (for a group of 1, 2, or
3 students)

Chapter 10 Object-Oriented Programming, Part


3: Inheritance, Polymorphism, and
Interfaces
10.1 Inheritance
10.2 Inheritance Design
10.2.1 Inherited Members of a Class
10.2.2 Subclass Constructors
10.2.3 Adding Specialization to the
Subclass
10.2.4 Overriding Inherited Methods
10.3 The protected Access Modifier
10.4 Programming Activity 1: Using Inheritance
Instructions
10.5 Abstract Classes and Methods
10.6 Polymorphism
10.7 Programming Activity 2: Using
Polymorphism
Instructions
10.8 Interfaces
10.9 Chapter Summary
10.10 Exercises, Problems, and Projects
10.10.1 Multiple Choice Exercises
10.10.2 Reading and Understanding Code
10.10.3 Fill In the Code
10.10.4 Identifying Errors in Code
10.10.5 Debugging Area—Using
Messages from the Java Compiler
and Java JVM
10.10.6 Write a Short Program
10.10.7 Programming Projects
10.10.8 Technical Writing
10.10.9 Group Project (for a group of 1, 2,
or 3 students)

Chapter 11 Exceptions and Input/Output


Operations
11.1 Simple Exception Handling
11.2 Catching Multiple Exceptions
11.3 Reading Text Files Using Scanner
11.4 The java.io Package
11.5 Recovering from an Exception
11.6 Writing and Appending to Text Files
11.6.1 Writing to Text Files
11.6.2 Appending to Text Files
11.7 Reading Structured Text Files
11.7.1 Parsing a String Using Scanner
11.7.2 Reading Structured Data Using
Scanner
11.8 Programming Activity 1: Reading from a
Structured Text File
Instructions
If you have time …
Troubleshooting
11.9 Streams
11.10 Reading Formatted Open Data from a
Remote Location
11.10.1 Accessing Remote Data
11.10.2 JSON Formatting and Parsing
11.10.3 Reading, Parsing, Streaming, and
Processing Remote Data
11.11 Reading and Writing Objects to a File
11.11.1 Writing Objects to Files
11.11.2 Reading Objects from Files
11.12 Programming Activity 2: Reading Objects
from a File
Task Instructions: Reading from
the transactions.obj File
If you have time …
Troubleshooting
11.13 User-Defined Exceptions
11.14 Chapter Summary
11.15 Exercises, Problems, and Projects
11.15.1 Multiple Choice Exercises
11.15.2 Reading and Understanding Code
11.15.3 Fill In the Code
11.15.4 Identifying Errors in Code
11.15.5 Debugging Area—Using
Messages from the Java Compiler
and Java JVM
11.15.6 Write a Short Program
11.15.7 Programming Projects
11.15.8 Technical Writing
11.15.9 Group Project (for groups of 2, 3,
or more students)

Chapter 12 Graphical User Interfaces Using


JavaFX
12.1 The Structure of a JavaFX Application
12.2 GUI Controls
12.3 A Simple Control: Label
12.4 Event Handling: Managing User
Interactions
12.5 Text Fields and Command Buttons
12.6 Radio Buttons and Checkboxes
12.7 Programming Activity 1: Working with
Buttons
Instructions
Troubleshooting
12.8 Combo Boxes
12.9 Sliders
12.10 Building a GUI Programmatically
12.11 Layout Containers: Dynamically Setting Up
the GUI Using GridPane
12.12 BorderPane Layout, Animations, Sounds,
and Lambda Expressions
12.13 Nesting Components
12.14 Mouse and Touch Events
12.15 Using a List to Display a Pie Chart
12.16 Using a List to Display a Dynamic Bar
Chart
12.17 Using a Style Sheet to Style the View
12.18 Programming Activity 2: Working with
Layout Containers
Instructions
12.19 Chapter Summary
12.20 Exercises, Problems, and Projects
12.20.1 Multiple Choice Exercises
12.20.2 Reading and Understanding Code
12.20.3 Fill In the Code
12.20.4 Identifying Errors in Code
12.20.5 Debugging Area—Using
Messages from the Java Compiler
and Java JVM
12.20.6 Write a Short Program
12.20.7 Programming Projects
12.20.8 Technical Writing
12.20.9 Group Project (for a group of 1, 2,
or 3 students)

Chapter 13 Recursion
13.1 Simple Recursion: Identifying the General
and Base Cases
13.2 Recursion with a Return Value
13.2.1 Computing the Factorial of a
Number
13.2.2 Computing the Greatest Common
Divisor
13.3 Recursion with Two Base Cases
13.4 Programming Activity 1: Checking for a
Palindrome
Instructions
Task Instructions
Troubleshooting
13.5 Binary Search: A Recursive Solution
13.6 Programming Activity 2: The Towers of
Hanoi
Instructions
Task Instructions
Troubleshooting
13.7 Recursion Versus Iteration
13.8 Chapter Summary
13.9 Exercises, Problems, and Projects
13.9.1 Multiple Choice Exercises
13.9.2 Reading and Understanding Code
13.9.3 Fill In the Code
13.9.4 Identifying Errors in Code
13.9.5 Debugging Area—Using Messages
from the Java Compiler and Java
JVM
13.9.6 Write a Short Program
13.9.7 Programming Projects
13.9.8 Technical Writing
13.9.9 Group Projects (for a group of 1, 2,
or 3 students)

Chapter 14 An Introduction to Data Structures


14.1 Linked Lists
14.1.1 Linked-List Concepts and Structure
14.1.2 Linked-List Basics
14.1.3 Methods of a Linked List
14.1.4 Testing a Linked-List Class
14.2 Linked Lists of Objects
14.2.1 A Linked-List Shell
14.2.2 Generating an Exception
14.2.3 Other Methods of a Linked List
14.2.4 Testing a Linked-List Class
14.3 Implementing a Stack Using a Linked List
14.4 Implementing a Queue Using a Linked List
14.5 Array Representation of Stacks
14.6 Programming Activity 1: Writing Methods
for a Stack Class
Instructions
Troubleshooting
14.7 Array Representation of Queues
14.8 Sorted Linked Lists
14.9 Programming Activity 2: Writing Insert and
Delete Methods for a Sorted Linked List
Instructions
Troubleshooting
14.10 Doubly Linked Lists
14.11 Linked Lists Using Generic Types
14.12 Recursively Defined Linked Lists
14.13 Chapter Summary
14.14 Exercises, Problems, and Projects
14.14.1 Multiple Choice Exercises
14.14.2 Reading and Understanding Code
14.14.3 Fill In the Code
14.14.4 Identifying Errors in Code
14.14.5 Debugging Area—Using
Messages from the Java Compiler
and Java JVM
14.14.6 Write a Short Program
14.14.7 Programming Projects
14.14.8 Technical Writing
14.14.9 Group Project (for a group of 1, 2,
or 3 students)

Chapter 15 Running Time Analysis


15.1 Orders of Magnitude and Big-Oh Notation
15.2 Running Time Analysis of Algorithms:
Counting Statements
15.3 Running Time Analysis of Algorithms and
Impact of Coding: Evaluating Recursive
Methods
Handwaving Method
Iterative Method
Proof by Induction Method
Other Methods
15.4 Programming Activity: Tracking How Many
Statements Are Executed by a Method
Instructions
Troubleshooting
15.5 Running Time Analysis of Searching and
Sorting Algorithms
15.6 Chapter Summary
15.7 Exercises, Problems, and Projects
15.7.1 Multiple Choice Exercises
15.7.2 Compute the Running Time of a
Method
15.7.3 Programming Projects
15.7.4 Technical Writing
15.7.5 Group Project (for a group of 1, 2,
or 3 students)

Appendix A Java Reserved Words and


Keywords

Appendix B Operator Precedence

Appendix C The Unicode Character Set

Appendix D Representing Negative Integers

Appendix E Representing Floating-Point


Numbers
Appendix F Solutions to Selected Exercises

Index
Preface
Purpose of This Text and Its Audience
Java Illuminated, Fifth Edition, covers all of the material
required for the successful completion of an introductory
course in Java. While the focus is on the material required for
the Computer Science I (CS1) and Computer Science II (CS2)
curricula, students enrolled in Information Systems,
Information Technology, or self-directed study courses will find
the text useful as well. It has been written to provide
introductory computer science students with a comprehensive
overview of the fundamentals of programming using Java as
the teaching language. In addition, the text presents other
topics of interest, including graphical user interfaces (GUI),
data structures, file input and output, and graphical
applications.

Throughout the text, we take an “active learning” approach to


presenting the material. Instead of merely presenting the
concepts to students in a one-sided, rote manner, we ask
them to take an active role in their understanding of the
concepts through the use of numerous interactive examples,
exercises, and projects.
Coverage and Approach
Our approach is to teach object-oriented programming in a
progressive manner. We start in Chapter 1 by presenting an
overview of object-oriented programming. In Chapter 3, we
delve a little deeper into the concepts of classes and objects
and introduce the student to many of the useful classes in the
Java Class Library. Our emphasis at this point is on using
classes; we teach the student how to read APIs in order to
determine how to instantiate objects and call methods of the
classes. In Chapter 7, we move on to designing user-defined
classes, and in Chapter 10, we present inheritance,
polymorphism, and interfaces. Throughout the text, we
present concepts in an object-oriented context.

Our philosophy is to emphasize good software engineering


practices by focusing on designing and writing correct,
maintainable programs. As such, we discuss pseudocode,
testing techniques, design trade-offs, and other software
engineering tips.

We teach the student basic programming techniques, such as


accumulation, counting, calculating an average, finding
maximum and minimum values, using flag and toggle
variables, and basic searching and sorting algorithms. In
doing so, we emphasize the patterns inherent in
programming. Concepts are taught first, followed by fully
implemented examples with source code. We promote Java
standards, conventions, and methodologies.
What’s New in Java Illuminated
In this edition, we have incorporated the latest features of
Java in Java 8 and Java 9: the jshell sandbox, Streams,
functional interfaces and lambda expressions, the use of
default methods in interfaces, JavaFX graphics, using FXML
in JavaFX applications, tying a JavaFX GUI component to
data in a Collection, JavaFX animations, and the StackWalker
class. We have converted all graphics examples and
graphical Programming Activities to JavaFX.

Throughout the book, we updated, improved, and replaced


examples.

In Chapter 1, we added instructions for making a JAR file.

In Chapter 2, we use the Java 9 jshell sandbox to


demonstrate the definition of variables, assigning of values to
variables, and the results of performing arithmetic
calculations.

In Chapter 3, we augmented the existing example on Strings


with more explanations of Strings methods, and added
another example with illustrations to demonstrate Strings
Processing techniques. In both examples, we emphasize
sending arguments to methods and receiving return values.

We converted Chapter 4 to JavaFX. To make it easier for the


students to write JavaFX applications, we provide a utility
class that encapsulates the overhead code to create a
window. As a result, the students can concentrate on calling
methods of the GraphicsContext class. We provide an online
version of the Swing version of Chapter 4 from the 4th edition
for those instructors who prefer the Swing graphics system.

In Chapter 7, we modified mutator methods to change


instance variable values only if the parameter value is valid.
Otherwise, the instance variable value is unchanged and we
no longer output an error message. After we introduce the
implicit reference, this, we implement the standard Java
coding style of defining parameters with the same name as
the instance variable. Further, we allow mutator methods to
be chained by returning a reference to the object being
modified. We have also moved the material on creating
packages to an online supplement.

In Chapter 10, we converted the polymorphism example to


JavaFX. We revised our existing interface example to use a
default method and added an example demonstrating
polymorphism with interfaces.

In Chapter 11, we added sections showing how to read file


data into a Stream, and then filter and process that Stream
using lambda expressions. We also added an example that
reads and parses JSON data from a remote location on the
Internet.

We converted Chapter 12 from Swing to JavaFX (the Swing


version of Chapter 12 from the Fourth Edition is now available
online). We added how to define a View using FXML, as well
as programmatically, how to process touches, how to tie a
GUI component to a Collection so that it is automatically
updated as the data changes using ObservableLists, how to
play sounds, and how to perform animations using JavaFX.
We explain how to write event handlers using lambda
expressions.

In Chapter 13, we use the StackWalker class to illustrate the


state of the stack as recursive calls are made.
Learning Features
Recognizing today’s students’ growing interest in
visualization, we distribute techniques for producing graphical
output throughout the book, starting in Chapter 4 with
graphical applications. An example using either animation or
graphical output is included in most chapters. Instructors who
are not interested in incorporating graphics into their
curriculum can simply skip these sections. In addition, some
of our examples are small games, which we find motivational
for students.

In each chapter, we include one or two Programming


Activities, which are designed to provide visual feedback to
the students so that they can assess the correctness of their
code. In most Programming Activities, we provide a
framework, usually with a graphical user interface, to which
the student adds code to complete the application. The
student should be able to finish the Programming Activity in
about 15 to 20 minutes; thus, these activities can be used in
the classroom to reinforce the topics just presented. Each
Programming Activity also includes several discussion
questions that test the student’s understanding of the
concepts the activity illustrates. The Programming Activities
are also appropriate for a closed or open laboratory
environment. In short, this text can be used in a traditional
lecture environment, a computer-equipped classroom, or a lab
environment.

In addition, we supplement each chapter with a browser-


based module that animates sample code, visually illustrating
concepts such as the assignment of variable values,
evaluation of conditions, and flow of control.
We also provide the instructor and students with an extensive
variety of end-of-chapter material: multiple-choice questions,
examples that ask the student to predict the output of
prewritten code or to fill in missing code, debugging activities,
short exercises, programming projects, technical writing
assignments, one or more learning-to-learn exercises called
Look It Up, and a higher-difficulty group project.
Chapter-by-Chapter Overview
The chapters are logically organized from simple to more
difficult topics, while incorporating object orientation as
needed, taking into account the specifics of the Java
language. Here is a brief summary of the topics covered in
each chapter:

Chapter 1: Introduction to Programming


and the Java Language
We introduce the student to the concept of programming, first
covering computer hardware and operating systems, and
following with a brief evolution of programming languages,
including an introduction to object-oriented programming. We
explain programming basics and pseudocode as a program
design technique. The student writes, compiles, and debugs
their first program using an integrated development
environment.

Chapter 2: Programming Building


Blocks—Java Basics
In this chapter, we concentrate on working with variables and
constants of primitive data types and composing arithmetic
expressions. We illustrate the differences between integer and
floating-point calculations and introduce operator precedence.
We introduce jshell, the programming sandbox now available
with Java 9. We use a combination of jshell sessions and
complete programs to demonstrate the concepts at hand.
Chapter 3: Object-Oriented
Programming, Part 1: Using Classes
Chapter 3 introduces classes from the user, or client,
standpoint and discusses the benefits of encapsulation and
code reuse. The student learns how to instantiate objects and
call methods. We also demonstrate useful Java classes for
console input and output, formatting output, performing
mathematical calculations, generating random numbers, and
using methods of the Wrapper classes. We use methods of
the String class to visually illustrate the passing of arguments
and receiving of and use of return values.

Chapter 4: Introduction to Graphical


Applications
Chapter 4 presents several methods of the JavaFX
GraphicsContext class that can be used to create graphical
output by drawing shapes, text, and sprites. The windowing
graphics coordinate system is explained and using color is
also explored. We demonstrate these graphics methods in
JavaFX applications. Instructors wishing to postpone or skip
graphics coverage altogether can use as little or as much of
this chapter as they desire.
Chapter 5: Flow of Control, Part 1:
Selection
Various forms of the if, if/else, and if/else if statements are
presented, along with the appropriate situations in which to
use each form. We also demonstrate nested if/else
statements and testing techniques. We begin our coverage of
scope by introducing block scope. Later chapters build upon
this foundation. As part of our object-oriented programming
coverage, we teach the importance of comparing objects
using the equals method. This chapter also covers the
conditional operator and the switch statement.
Chapter 6: Flow of Control, Part 2:
Looping
This is probably the most important chapter in the book. We
have found that looping and repetition are the most difficult
basic programming concepts for the average student to grasp.
We try to ease the student’s understanding of looping
techniques by presenting patterns to follow in coding basic
algorithms: accumulation, counting, calculating an average,
and finding minimum and maximum values. Looping is further
explored as a tool for validation of input values. We also
introduce toggle variables and flag variables as tools to
facilitate writing loops. We continue our coverage of scope by
illustrating the scope of variables declared within the while
loop body and for loop header. We concentrate on using the
while loop for event-controlled and sentinel-controlled
repetition and the for loop for count-controlled looping. A large
section focuses on constructing loop conditions, which is often
a challenging task for the student. Sections are also provided
on testing techniques for loops. In this chapter, we also
introduce reading data from a text file using the Scanner
class.
Chapter 7: Object-Oriented
Programming, Part 2: User-Defined
Classes
In this chapter, we teach the student to write classes, as well
as client applications that instantiate objects and call methods
of the class. We present class design techniques and
standard patterns for writing constructors, mutators and
accessors, and the toString, equals, and other user-defined
methods. We further explain scope in the context of class
members and method parameters. We also explain how to
write classes with static methods and static data. Additionally,
we illustrate how to write methods so that the method calls
can be chained. Enum is also covered as a user-defined class
type. Finally, we teach the student how to use Javadoc.

Chapter 8: Single-Dimensional Arrays


This chapter begins with the declaration, instantiation, and
initialization of single-dimensional arrays. From there, the
student learns to perform the basic programming techniques
(accumulation, counting, calculating an average, and finding
maximum and minimum values) on array elements. We also
cover arrays as instance variables of a class, and
demonstrate maintaining encapsulation while accepting
arrays as method parameters and returning arrays from
methods. We demonstrate how to represent an array as a bar
chart. Basic searching and sorting algorithms are also
presented, including sequential and binary searches and
Selection and Insertion sorts.
Chapter 9: Multidimensional Arrays and
the ArrayList Class
We focus in this chapter on two-dimensional array processing,
including techniques for processing the elements in the entire
array, or the elements in a specific column or row. We also
demonstrate the extra processing needed to handle arrays
with rows of different lengths. Creating a bar chart of the data
in the array is also demonstrated. In addition, we extrapolate
the concepts from two-dimensional arrays to discuss
multidimensional arrays.

We present the ArrayList class as an expandable array and


demonstrate using classes with generic types, the enhanced
for loop, and autoboxing and unboxing.
Random documents with unrelated
content Scribd suggests to you:
János már máskor is volt vacsorán Gotthelféknál, de mindig csak
hivatalos vacsorákon és mindig csak aranyszegélyü nyomtatott
meghivókra.
Ez volt az első eset, hogy Elza irása a kezébe került. Elza irása:
barátságos, szabályos gömbölyü betük voltak, nem a rendes
hosszuszáru női irás, amiket János eddig látott. Ugy látszik: hogy
Elza azt sem tartotta magára kötelezőnek, hogy ugy legyen szép és
nőies, ahogy a többi nők, az irásra sem engedte rá az egyenruhát.
János örült a néhány sornak, alig várta, hogy este legyen, hogy
muljon az idő, bement a redakcióba, be a klubba, sakkozott fogadott
apjával, beszélgetésbe vonatta magát a miniszterelnökkel, aki ugy
kegyeskedett, mintha ő adoptálta volna a képviselőt. Aztán
negyedkilenckor otthagyott csapot-papot és elvágtatott
Gotthelfékhez.
Mikor megérkezett és a szobalány levette róla a kabátját, Elza és
Emma és mamzelle Nitouche libasorban kivonultak az előszobába,
megálltak előtte és háromszor egymásután meghajtották magukat.
Erre Elza tanitotta be őket és bárhogy nem akartak, kényszeritette
őket rá, hogy végigjátszák ezt a kis komédiát.
Az első meghajlásnál Elza mondta:
– Nagyságos uram!
A másodiknál oldalba könyökölte Emmát, aki csakugyan el is
mondta szerepét:
– Méltóságos uram!
A harmadiknál Nitouchera került volna a sor, aki azonban
duzzogva ezt mondta:
– Mais quelle bêtise!
– Nitouche! – szólt rá Elza – teljesitsd kötelességedet, különbeni
elbocsáttatás terhe alatt!
Nitouche is mondta:
– Kezselmes urunk.
Majd mindhárman feléje léptek és nyujtották a kezüket,
egyszerre ejtve ki:
– Gratulálunk.
És mind a hárman elnevették magukat és János is nevetett velük.
Jól esett neki a tréfa, pedig Emma már aggódott:
– Még megsértődik a szerkesztő ur!
– Meg-aragszik! – mondta Nitouche.
– Persze hogy meg, ha szerkesztő urnak szólitjátok a báró urat.
– Nem haragszom meg! – mondta János – föltéve, hogy üdvözlő
szónoklatot nem tartanak.
– Mi azt nem. De maga tartson czerczlét – (Elza nem szerklnek
mondta), – tüntessen ki bennünket megszólitásával. És aztán
kerüljön beljebb.
A szalonban Gotthelf és Gotthelfné vártak.
– Itt hozzuk a bárót! – Megrohanhatjátok már a gratulával.
S mert Elza ezt előre bemondta, Gotthelfék csak néma
kézszoritással gratulálhattak.
– Leülni! leülni! – vezényelte Elza. – Őméltósága el fogja
mondani, hogy hogvan történt. Őméltósága el fogja mondani, mert
ha nem mondaná el, akkor papa abba a kényelmetlen helyzetbe
kerülne, hogy meg kellene kérdeznie őméltóságától: hogyan is ment
a dolog.
– Elza! Elza! – neheztelt Gotthelfné.
– Nagy csacsi az én lányom – egészitette ki Gotthelf.
– Hát mondd, hogy nem vagy kiváncsi reá?
– Mért mondanám? Egy ilyen kedves barátomnak, mint a… –
Gotthelf elakadt.
… Mint a báró ur, – szólt Elza szigoruan – tessetek hozzászokni!
– Igenis, egy ilyen kedves barátomnak a sorsa érdekel.
– Akkor ne zavarj, ha diplomatikusan ugy vezetem a tárgyalást,
hogy megtudd, amit akarsz, anélkül, hogy kiváncsinak látszanál.
János is megszólalt:
– Mit mondjak el?
– Nem a mandátumot, Szépember… mert én tovább is
szólithatom igy?
– Csak tessék!
– Nem a mandátumot, mert azon semmi különös nincs, hogy egy
szerkesztő mandátumot kap. Mandátuma minden sliffentyünek van
már, pardon… Hanem a báróságot, amely szokatlan és rendkivüli
ebben a formájában, s azonkivül papa vágyainak netovábbját képezi.
– Elzus! ezt azért mégse… – szólt közbe Gotthelf papa…
– Igaz… ezt nem mondhatom. Mert a papa vágyainak netovábbja
nem lehet ez a báróság. Ki a manó adoptál egy koros izraelitát?
Hogy jutott magának eszébe, hogy ezt a kedves-kedves Frideczky
bárót, akit mi csak a korzóról ismerünk, apjává degradálja, illetve
neki az, hogy magát fiává léptesse elő? Halljuk! Halljuk!
János mosolygott:
– Igazán, nincs rajta mit elbeszélni!
– Na tessék! Mondja, hogy ez a legtermészetesebb dolog a
világon! Mondja, hogy maga voltaképpen bárónak született már
eredetileg, csak nem viselte a cimet.
– Azt nem mondom. De részleteket sem tudok mondani.
– Azt beszélik, mert tegnap is voltak nálunk emberek, hogy
voltaképpen sakkon nyerte…
– Ebben van valami.
– Hogy először elnyerte tőle a készpénzét, aztán a családi
birtokát, aztán a nevét, mert az öregnek már nem volt mit föltenni
az utolsó partira. Igaz?
– Valahogy igy van.
– És hogy most maga lesz a szabadelvü párt elnöke, csak az a
feltétel, hogy szép fehér szakállt kell ragasztania, mint a papájának,
a Frideczky bárónak van.
Ezen mind nevettek.
János is nevetve felelt:
– Ezt még nem közölték velem.
– Azt is beszélik, hogy visszaállitják a nádorispáni méltóságot és
jövő őszszel magát a Rákoson nádorispánná választják.
– Maga örülne neki? – kérdezte János.
– Hogyne!
– Akkor én sem bánnám – felelte János.
– De van még tovább is – folytatta Elza.
– Hagyd már abba a bolondságot – szólt csittitóan Gotthelfné.
De Elza tovább füzte:
– Sajnos, már csak egy etapp van. Őszszel lesz a nádorispánság,
a városi emberek csak megvárják, hogy elkövetkezzék a tél, akkor a
Duna jegére vonulnak, amit külön ez alkalomra a rendőrség is
engedélyezni fog s ott kikiáltják Senkhy urat királylyá, mint boldogult
Mátyásunkot. És a suszterinasok, ahelyett, hogy a Vigözvegy valcerét
fütyülnék az uccán, ezt fogják énekelni hangosan:

Jánost mostan választotta


Mind-ez ország királyságra,
Mert őt adta nékünk Isten
Menyországból ótalmunkra.

– Igy van-e a vers, báró ur?


– Igy tanultam az iskolában, de én már elfelejtettem.
– Látja, én nem mertem elfelejteni, mert tudtam, hogy szükség
lesz rá a maga végső előlépésénél. A maga számára megvan az a
lehetőség is, hogy király legyen.
– Ugyan, ugyan! – csóválta fejét Gotthelf papa.
– Megvan, ha mondom!
– De miért?
– Mert keresztény.
János megint elnevette magát:
– Elzácska, ugy rémlik nekem, mintha ezt már hallottam volna
valakitől… Csak nem jut az eszembe, hogy ki volt.
– Akárki volt, okos ember volt.
A vacsora következett és a vacsora alatt is ugyanezt üzte Elza.
– Nem fér a bőrébe! – mondta szeretettel Gotthelfné.
És János örült, mert kezdte azt hinni, hogy ő okozza azt az
örömet.
Elza jókedvéből még vacsora utánra is maradt. Éjféltájban a
sárga szalónban, amelyben János most nagyszerüen érezte magát,
mert nem volt ott a másik, Elza hirtelen ezt mondta:
– Mi leányok és kiséretünk most visszavonul.
– Szóval menjek már? – kérdezte János.
– Nem, nem, maga még marad, mert most a programmnak az az
ünnepélyes pontja következik, melyben jó atyám és jó anyám
megkérik a méltóságos ur kezét számomra.
– Elza! – csattantak fel az öregek.
– Mi van azon? – kacagott Elza. – Ilyen csodákat már látott a
világ! Bárót kapni pénzért, de ilyen bárót aligha! Aki uj és mégis a
legrégibb! Aki nincs elzüllve! Aki még nem is kopasz, hanem
Nitouche által joggal Szépembernek volt keresztelhető. Rajta, rajta,
szüleimék! Viszontlátásra brr urr!
És Elza kivitte magával Emmát és a mamzelt, a legnagyobb
zavarban hagyta ott az öregeket és Jánost.
Az öregeket, akik tényleg szerettek volna néhány enyhe célzást
tenni ebben az irányban és Jánost, aki olyan nagyon szivesen
hallgatta volna ezeket a célzásokat.
XXII. FEJEZET.

Altalános beszámoló János eleintén való parlamenti


müködéséről
Báró Frideczky János, az érdekes ifju publicista, a tófalusi kerület
képviselője, a parlamentben a jobb mező második cikkelyének
második sorában, a legszélső ülésen ült. Ezt a helyet még Rásay
Emőd kérte magának, nem mintha e legrégibb magyar család
ivadéka nagyon közel akart volna lenni a miniszterekhez, amiről csak
járatlanok hiszik, hogy jelent valamit, hanem mert nem akart
tulmessze esni az érdekesebb ellenzéki szónokoktól. S a legszélső
ülést azért választotta, amiért az emberek a szinházban sarokülésen
szeretnek ülni, hogy, ha unta már a szónokokat, akkor szép
csendesen kivonulhasson, anélkül, hogy ezzel másokat zavarna, vagy
ebben őt mások kényelme akadályozná.
Egyébként a parlament semmi uj érzést nem hozott János
számára, ahogy általában nem hozhat olyan ujságiróknak, vagy
szerkesztőknek, akik megszokták a parlamentbe való bejárást.
Senkhy János szerkesztő ur épp ugy az Andrássy-szobor felől járt be
a parlamentbe annak idején, mint most Frideczky báró, a képviselő.
A portás épp ugy szalutált neki akkor, mint most, mert akkor sem
tudhatta, nem képviselő-e, most sem tudhatta, nem ujságiró-e? A
parlament portásától igazán nem lehet kivánni, hogy ismerje mindazt
a háromszázegynehány semmitmondó arcot, amelyet a honatyák
viselnek a nyakkendőjük felett. A különbség ujságiró és képviselő
közt csak annyi, hogy, bemenve a kapun, az ujságiró balra fordul, a
képviselő jobbra.
Mondom, Jánosnak a képviselőség nem adott uj szenzációt.
Aki az ujságirók karzatán ül, ha nem csinál parlamenti riportot,
vagyis, ha nem igyekszik rövidebb mondatokban papirra sietni azt a
hosszu levü valamit, amit előtte, a korláton kivül, mondanak, épp
ugy képviselőnek érezheti magát, mint aki öt lépéssel odébb ül, de
már nem a parlamenti ujságirók Szindakója, hanem az Elnök
fenhatósága alá tartozik. Épp ugy hallgatja a beszédeket, épp ugy
unatkozik, épp ugy mondja félhangon maga elé: „Ökörség!“ mintha
képviselő volna. A terem izgalma, ha van izgalom a teremben, épp
ugy végigmegy ezeken a padsorokon, mint a belsőbbeken, sőt az
emberek itt épp ugy pártokra oszolnak, mint odabenn, azzal a
különbséggel, hogy beljebb a kormánypárti esetleg csakugyan
kormánypárti, az ellenzéki valóban ellenzéki (noha vannak kivételek),
– de itt, a karzaton, a kormánypárti ujság embere mindig ellenzéki s
az ellenzéki lapé kivétel nélkül kormánypárti. Ez egyáltalán nem
valami paradox ösztön következménye, hanem azért van igy, mert az
ellenzéki ujságiró az ellenzéki politikusokat, a kormánysajtó
zsurnalisztája a kormánypárti politikusokat ismeri közelről, kulissza
mögülről s mindegyik a maga pártjának embereiről tudja, hogy egy
ütet taplót, egy pipa dohányt nem érnek, tehát azt hiszi, hogy a
kiváló emberek – mert hiszen csak kell valahol kiváló embereknek
lenniök egy egész ország kiválogatott első négyszáz embere közt! –
hogy a kiváló emberek a másik oldalon vannak. Persze, hogy
nincsenek, hogy ott sincsenek, mert a közélet mai szervezetében
sehol sincsenek, de az emberekből nem lehet kiirtani azt, hogy
higyjenek és reménykedjenek a jobban.
Az ujságiró ahhoz is hozzászokott már, hogy a parlament
folyosóján képviselőkkel, államtitkárokkal és miniszterekkel
érintkezzék. Jánosnak, aki közpályáját egy miniszterrel való egészen
közvetlen tárgyalással kezdte, ez sem volt uj.
Legföljebb, ha az irigység volt neki uj, amelylyel régi és uj
kollégái egyaránt rápillantottak. Amig János az ujságiráson belül
futott előre, bent alig csodálkoztak rajta. Hogy szerkesztő mindenki
lehet, azt mindenki tudja a zsurnalisztikában. A mandátumot
azonban már nem szivesen juttatták neki volt pályatársai. Az ujak
sem a báróságot. Mert viszont az uj pályatársak nagyon jól tudták, a
maguk esetéből, hogy képviselő mindenki lehet, de hogy báró is
legyen, azt fölöslegesnek vélték.
Az első hetek egyikében János föl is kérette magához feketére
Prokescht és megmondta neki:
– Te, nem jó szemmel néznek rám az emberek.
– Nagyon jó! – nevetett Proksay – azt akarod, hogy még jó
szemmel is nézzenek rád. Nem vagy szerény, méltóságos gazdám.
– Nem bántottam őket.
– Ahhoz, hogy az emberek haragudjanak, nem is kell bántani
senkit. Te mindent tudsz, vagy legalább tudtál, ezelőtt három évvel,
amikor, emlékszem, nagyszerü jártasságod volt a mitológiában; tehát
fizikát is tudsz.
– Valami keveset.
– Ott hallhattad, hogy minden test annyit nyom, amennyi az
általa kiszoritott viznek a sulya.
– Nem annyit nyom, csak a fajsulya annyi.
– Az nem baj. A példa azért jó. Sőt annál jobb! Minden embernek
annyi a fajsulya, amennyit az általa kiszoritott többi embernek az
irigysége nyom. És minden embernek annyi az irigye, ahány ember
általa kiszoritottnak véli magát. S az sok. A tófalusi képviselő te vagy,
báró Frideczky te vagy, a többiek mind nem azok. Tehát mindenki,
akihez közöd volt, van, vagy lesz, vagy neked, vagy valamely
minőségednek: mindenki irigyed.
– Ez nem jó.
– Nem; sőt veszedelmes. Neked jobban is kell vigyáznod
magadra, mint a többinek.
– Hogy-hogy?
– Ugy, hogy neked kétfelé kell vigyáznod. Te valami tulságosan
kormányos kormánypárti nem lehetsz, mert a sajtó kivégez. De
viszont a pártban sem fejthetsz ki valami nagy ellenkezést, mert
akkor bent végeznek ki.
– Miért fejtenék ki ellenkezést a pártban?
– Mert nem jó a kormány állandó leltárához ugy hozzátartozni,
hogy mindig és minden körülmények közt számithassanak az
emberre. Aki ugyis megvan, az nem érték.
– Hm… – mondta János – ez komplikált.
– De azért elintézhető. Erről már akartam beszélni veled. A
szereplésedről egyáltalán. Most már hetek óta vagy bent és még
nem nyitottad ki a szádat. Ez nem jó. Persze az sem jó, ha valaki
minden másodnap idegesiti a többit felszólalásokkal. Ellenben
körülbelül minden két héten egy-egy kis hozzászólást ki lehet vágni.
Valami kis módositványost.
– Milyet?
– Módositványost. Ezt ugy értsd: kormánypárti képviselő el kell
hogy fogadja a kormány törvényjavaslatait. Ez a párthüséghez
tartozik. De mindig van valahol egy csekélység, amiben módositást
lehet kivánni s amiért a kormány nem haragszik, mert a dolog
lényegén nem változtat a módositás. Az ilyet jobb, ha egy
kormánypárti képviselő kéri, mint hogyha ellenzéki, mert annak nem
teszik meg, nehogy koncessziónak lássék az ellenzék számára.
– Mikor csináljam?
– Majd én mindig szólok. Sőt azt is megmondom, hogy mit
módosittass.
– És ez egy jó müködés?… Az irigység miatt gondolom, amit az
előbb emlitettél.
– Ez a legjobb müködés. Igazán közhasznu munkásság ellen az
irigység sem szólalhat fel. Még jobban pukkadoz ugyan, hogy: „nézd
csak, ez a bitang még közhasznu is, nem lehet vele birni“ – de nem
bánt. Már pedig jegyezd meg magadnak, hogy Szólon óta minden
törvény rossz s aki csak egy szót, egy betüt, vagy egy vesszőt
változtat rajta: áldása az emberiségnek. Nincs könnyebb, mint az
emberiség áldásának lenni.
– Miért?
– Annyi az átok az emberiségen.
Ez volt a Prokesch általános használati utasitása János parlamenti
szereplése számára. János elfogadta, mert nem volt sem kedve, sem
ideje másikat kigondolni helyette.
Már a következő héten megtartotta szüzbeszédét. Valami galád
adójavaslatról volt szó s János azt az óhaját fejezte ki – Prokesch
inditványára –, hogy az adómentes létminimum ebben az esetben ne
százhuszonöt, hanem kettőszáz korona legyen.
Ez mindenkinek tetszett.
– Brávó – orgonázott egy gyönyörü hangu ellenzéki vezér.
A pénzügyminiszter is bólongatott. Sőt a beszéd után szólt
Jánosnak, akit a Podolányi-ügy miatt rossz szemmel, de a
miniszterelnökemlegette felsőbb összeköttetés miatt jó szemmel
nézett:
– Köszönöm, hogy figyelmeztettél. Az illetékes ügyosztálynak,
amelytől a terv származik, nyilván elkerülte a figyelmét. Az előadó
majd megfogalmazza a módositványt.
A továbbiakban János mindig Prokesch utmutatásai nyomán,
csendes és rendes parlamenti müködést fejtett ki, amin aligha
lehetett volna kivetni valót találni.
Kétszer vezetett küldöttséget, egyszer az igazságügyminiszter,
egyszer a kereskedelemügyi elé.
Az első eset volt az érdekesebb. Az történt, hogy egy fiatal irót az
ügyészség előzetes letartóztatásba helyezett, mert egy hetilapban
folyó regényét tul-erotikusnak itélte. A lapot elkobozták, amibe
mindenki belenyugodott volna, mert a lap valóban nem éppen
erkölcsnemesitő tartalommal boldogitotta minden szombaton a
mindkét nembeli s inkább serdületlen fiatalságot.
De az ügyészség tovább ment. Beidézte a regény iróját, aki
persze, hogy nem sietett az idézésre megjelenni, mert idézéseket
nem szokás komolyan venni. A vizsgálóbiró azonban, akinek az ügy
ki volt osztva, kicsit hirtelen ember volt. Derék fiu különben, de
keveset aludt általában, mert minden éjszaka legalább kettőig-
háromig ült a kávéházban, ahol a jövő turf- és sporteseményeit
kellett megbeszélnie asztaltársaságával. Ez az asztaltársaság egy
nyugalmazott trénerből, egy sportlap-szerkesztőből és egy
istállótulajdonosból állott, amely istállóban egy lónál több soha nem
volt, de amelyből néha az az egy ló is zálogba ment szomszéd
istállókba.
Ez időben minden éjszaka hajnalig elvitatkoztak az urak azon,
hogy a jövő Derbyt Ripszrapsz vagy Pöttön nyeri-e, ami egyrészt
attól függött, hogy Ripszrapsznak és Pöttönnek kik voltak lói apái,
anyái, fölmenő és oldalági rokonai, másrészt attól, hogy Ripszrapsz
vagy Pöttön istállójának sikerül-e megnyernie a kitünő Rehákot, a
finish-lovaglás mesterét a Derby számára, harmadrészt attól, hogy a
könyveseknél melyik paripa lesz nagyobb tétekkel megterhelve, mert
akkor a könyvesek megkezdik mahinációikat, negyedrészt, ötödrészt,
hatodrészt…
A kérdésnek nagyon sok rétege volt és a vizsgálóbirót mind
érdekelte. Aznap virradóra, mikor az ifju irónak kellett volna a
vizsgálóbiró előtt megjelennie, a vizsgálóbiró reggel négykor került
ágyba és csak tizenegykor a hivatalába. A rendesnél is kialvatlanabb
volt tehát s végignézve azok listáját, akiknek ma meg kell jelenniök
szine előtt, tudakozódott, hogy az ifju iró – éppen az – jelen van-e?
Hát nem volt jelen. A vizsgálóbiró ragaszkodott ahhoz, hogy ő az ifju
irót akarja kihallgatni. Detektivet küldött érte, akinek kiadatta
parancsba, hogy legyen szigoru az ifju iróhoz.
A detektiv szigoru mosolylyal ültette fiakkerbe az ifju irót, elvitte
az Alkotmány-uccába, a biró elé állitotta. Az iró is keveset aludt, a
biró is. Ebből semmi jó nem jöhetett ki.
– Szelemen Ákos, – mondta a biró érdesen – maga idézésre nem
jött, karhatalommal vezettetett elő, tehát a szökés gyanuja forog
fenn magánál.
Szelemennek fejébe szállt a vér, hogy őt csak magázzák és még
székkel sem kinálják meg. Felelet nélkül leült a biró asztala elé egy
székre.
– Nem mondtam, hogy üljön le.
– Nem szokás uriembert le nem ültetni.
– Maga itt most nem mint uriember van jelen, hanem mint
terhelt. Viselkedjék tisztességesen.
– Kikérem magamnak ezt a hangot.
– Itt maga semmit sem kérhet ki magának. Keljen föl.
Szelemen fölkelt, de a biró ezzel még nem volt megelégedve:
– Vegye ki a kezét a zsebéből.
– Ott tartom a kezemet, ahol akarom!
– Otthon! De itt nem. Nézze meg az ember!
A biró rá akart térni a tárgyra, Szelemen azonban nem felelt a
kérdésekre.
– Felel? vagy nem felel? – kérdezte a biró.
– Nem felelek! – felelte az iró és menni akart.
– Itt marad! – kiáltotta a vizsgálóbiró, becsöngette a szolgáját,
fegyőrt hozatott és szép szabályosan lekisértette Szelemen Ákost az
ügyészség fogházába. Véletlenül a törvényszéki ujságirók közül egyik
sem látta ezt a levonulást, különben a dolog mingyárt rendbe jött
volna.
Igy azonban csak délután derült ki, hogy mi történt. Az
estilapokban már benne volt, éles kommentárokkal.
És lejátszódott másfél nap alatt ugyanaz a komédia, amely
mindig lejátszódik, valahányszor a hivatalos ranglétra alsó fokán álló
hivatalnok szamárságot követ el.
Az ügyészhelyettes, aki az aktát aláirta, ragaszkodott Szelemen
Ákos előzetes letartóztatásához, a lapok másnap reggel már
hangosan és bőven irták meg a sajtószabadság sérelmét.
A főügyész nem tudta, mit csináljon, nem csinált tehát semmit.
Szelemen Ákos az egész napot az ügyészség fogházában töltötte s
az irók és ujságirók küldöttsége már másnap délelőtt fent volt a
Házban, hogy az igazságügyminiszter előtt demonstráljon. A
küldöttség vezetésére egy koros ellenzéki képviselőt akartak felkérni,
aki huszonöt év óta volt szerkesztő és honatya, de a küldöttség
vezetését nem vállalta, mert az volt a véleménye, hogy legokosabb
volna, ha az egész ifju irodalmat, ugy, ahogy van, becsuknák, mert
határtalan orcátlanság, amit a fiatalok a nyomtatott betüvel
müvelnek. Igy fanyalodott rá a deputáció, noha nem szivesen tette,
Jánosra, aki negyedóra alatt rendbehozta az ügyet, nem ugyan a
kupolacsarnok előtermében tartott rendes szónoklattal, melyből a
miniszter semmit sem tudhatott meg s melyre a küldöttség
természetesen csak a rendes választ kapta, hogy a miniszter
behatóan fog foglalkozni a kérdéssel és hova-hamarabb megteszi
intézkedését, hanem azzal az információval, amit Prokeschtől kapott
és magánbeszélgetésben adott tudtára a miniszternek, hogy hivatali
tulbuzgóság mérgesitette el az ügyet.
A miniszter telefonált az ügyészségre, az ügyészség kibocsátotta
Szelemen Ákost és Prokesch megmondta Jánosnak:
– Megmentetted a sajtószabadságot. A sajtószabadság nyert. A
szörnyü precedens el van háritva.
A másik küldöttség egészen szürke küldöttség lett volna, ha
véletlenül nem éppen postatakarékpénztári tisztviselők küldöttsége,
melynek Rechnitz ur is tagja volt.
Ezek az urak előbb küldöttségileg keresték fel Jánost, amaz
alázatos kérelemmel, hogy vezesse küldöttségüket. A küldöttség
küldöttsége még nem emlitette, nem merte emliteni, hogy
összefüggést lát maguk és Frideczky János báró közt, Rechnitz akkor
nem volt velük.
A parlamentben azonban a többi ferencjózsef kabát közt ott volt
a Rechnitzé is, sőt volt hivatalfőnöke mingyárt megszólitotta Jánost,
kicsit izgatott hangon:
– Én mondtam nekik, hogy Hozzád forduljunk, méltóságos
uram…
(Rechnitz szeretett volna ugy emlékezni rá, hogy már a
hivatalban ilyen viszony volt köztük.)
János azonban kissé mereven adta vissza a szót:
– Nagyon köszönöm, hogy Ön hivta fel rám az urak figyelmét.
Rechnitz nem kisérletezett tovább, sőt kissé dadogni kezdett:
– Igen, igen… én mondtam az uraknak, hogy ha valaki szivén
hordozza sorsunkat, akkor Méltóságod az…
– Valóban.
– … aki ismeri nemcsak munkánk fontosságát… hanem nagy
mennyiségét is… s javadalmazásunk szük méreteit… lehet mondani,
hogy szük méreteit…
– Menjünk, uraim, – mondta János a többiekhez fordulva. – A
kegyelmes urat már értesitettem. S amig mentek a miniszter szobája
felé, János azt gondolta, hogy a tegeződést tulajdonképpen
engedélyeznie kellett volna Rechnitz urnak, mert ha van
köszönnivalója, akkor mindent Rechnitz urnak köszönhet és annak,
hogy Rechnitz ur egyszer goromba volt s neki azt mondta:
– Fogja be a száját!
A miniszter még nem volt a szobájában s mig vártak rá, Rechnitz
ujra János mellé furakodott és megpróbálta az előbbi csorbát
kiköszörülni.
– Ki gondolta volna, nemde, ezelőtt négy évvel, ki gondolhatta
volna, hogy mi, ha küldöttségbe jövünk őexcellenciájához, a
küldöttséget éppen Méltóságod fogja vezetni.
– Mulnak az idők – felelte János.
– Bizony mulnak… de nem mindenki számára mulnak olyan
értékesen. Méltóságod talán el sem hiszi, hogy én azóta mindössze
egy fizetési osztálylyal kerültem feljebb.
– Rosszak az előlépési viszonyok?
– Nagyon rosszak.
– Ezt is meg fogom emliteni a kegyelmes urnak.
– Kegyeskedjék. Az ember beleőszül a hivatalába. Tetszik látni –
és Rechnitz ur őszbe csavarodó fejére mutatott –, családja van,
felnőtt gyerekei, reprezentálnia is kell… És mi a fizetése? Nevetséges
összeg.
– Ezt is meg fogom emliteni a kegyelmes urnak.
– Kegyeskedjék…
A miniszter jött, János elmondta a kis beszédet, amelyben a
régóta huzódó fizetésrendezésre hivta fel a kegyelmes ur figyelmét –
erre kérték csak fel – de aztán megemlitette az előlépési viszonyok
gyatraságát és belefüzte ezt a mondatot is.
– S a postatakarék tisztviselőinek társadalmában még a
magasabb poziciót betöltők sem lehetnek javadalmazásukkal
megelégedve. Ha elnézem egyik vagy másik tisztelt barátomat
közöttük, aki őszbecsavarodó fejjel végez ifjui erőt kivánó munkát,
akinek családja van, felnőtt gyermekei vannak s akinek
reprezentálnia is kell már, éppen poziciójánál fogva, ha elnézem őket
s eszembe jut, hogy mi a fizetésük, csak azt mondhatom, anélkül,
hogy ezzel az állam gondoskodását megbántanám: Nevetséges
összeg.
Rechnitz ur hálásan pislogott. Neki most már mindegy volt,
emelik-e majd az ő rangosztályának a fizetését. Egy mondata,
csaknem szószerint, eljutott a kegyelmes fülekbe!
A miniszter persze megigérte, hogy a postatakaréktár (a
miniszter nem pénztárt mondott, csak tárt) tisztviselőinek fizetését
hova-hamarabb tanulmány tárgyává… stb., majd, a beszéd után
fesztelen beszélgetésbe elegyedett a… stb., ugy, ahogy ez már
ilyenkor szokás.
Kiki tudta, hogy a postatakaréktár tisztviselőinek fizetését nem
fogják rendezni. A küldöttség is, a miniszter is, János is tudta volna,
ha törődött volna vele.
De nem törődött.
Egész parlamenti müködése nagyon lagymatagon érdekelte.
Megtette ugyan, amit Prokesch esetenkint kivánatosnak vélt s az
ülésekre is eljárt, mert délelőtt amugy sem volt miegyebet csinálnia,
de különben az estéket várta, körülbelül minden harmadik nap
estéjét, amikor elmegy Gotthelfékhez és látja Elza hirtelen
mozdulatai nyomán a leány szoknyája libbenését, egész testének
rugalmasságát, hallja hangjának kapriciózus muzsikáját s
legfőképpen közelről kivánkozhatik göndör fekete haja és
szabálytalan, nagy vörös szája után.
János szerelmes volt, fájdalmasan és kényelmetlenül szerelmes,
de ügye csak a családnál haladt előbbre. Az öregeknél, akik enyhén
tervezgettek már.
Közönséges, rendes napokon János reménykedett. De
valahányszor Rózsa Rezső megjelent, látnia kellett, hogy van
különbség a két szivélyesség közt, amivel Elza őt és a másikat kezeli.
Abban a szivélyességben volt megbecsülés, tapadó melegség is, mig
ez csak kedves és játékos volt, sokszor nemcsak tréfásan gunyos,
hanem bántóan lenéző is.
Egyszer megpróbált az öregekkel beszélni erről a témáról:
– Elza furcsa kislány – mondotta, hogy megadja az irányt.
– Lejder! – felelte Gotthelf papa.
A mama csak sóhajtott.
– Nincsenek ambiciói – folytatta a papa.
– Ugy tesz, mintha nem akarna férjhez menni – mondta a mama.
– Hát tényleg nem akar? – kérdezte János.
– Hát tudjuk mi azt? – felelt kérdéssel Gotthelf.
– Hát kiösmerem én magamat az én lányomnál? – egészitette ki
a mama. – Egy aranyos teremtés, egy isten áldása…
– De egy veszedelem.
Ezt Gotthelf papa mondta.
– Beszélni kellene vele – kockáztatta meg János.
– De ki beszéljen vele? Jobban tud beszélni, mint mi mind
együttvéve. És erről csak ugy lehet beszélni vele, ahogy ő akar…
– Sohase komolyan. Mindig mondom az uramnak: Gotthelf, nem
lesz a lányodból báróné…
– Várjunk még, fiam. Majd megkomolyodik. Csak jőjjön hozzánk
minél gyakrabban báró ur, majd összeszoknak. Mi is összeszoktunk
az én Hanikámmal.
(Ha multba való emlékezésről volt szó, Gotthelf száján még
kiszaladt néha a felesége régi neve. Ilyenkor egy-egy szemrehányó
pillantás volt a nyugta felesége részéről. Ha Elza véletlenül jelen volt,
az népünnepélyt rendezett az ilyen elszólásokból.)
Ez a beszélgetés tehát nem lenditett Jánoson. A többi sem, amik
még közte és a szülők közt leperegtek. S az sem, amit Emma kezdett
Jánossal, mikor Elza egy este a rendesnél is gunyosabb volt a fiuhoz.
János félreült és lógatta a fejét.
Egyszerre csak a fotőj karjára melléje ült a kisebbik lány:
– Bánkódik? – kérdezte Jánostól.
– Nem. Miért bánkódnám?
– Mert… mert Elza megbántotta.
– Megszoktam.
Emma nagy elszánással mondta tovább:
– Mindig bánt… mindenkit.
– Ki?
– Elza.
– Maga azt hiszi, Emmi, hogy szándékkal… rossz szándékkal?
– Azt én nem tudom… De olyan a természete.
– Milyen? – kérdezte elcsodálkozva János.
– Gonosz – felelte kurtán és szárazon Emma és az arca tüzelt.
Most már akart, okvetlenül akart rosszat beszélni a nénjéről. Ennek
az embernek; hátha…
Jánosnak csak hagynia kellet volna és a legfurcsább dolgok
ömlöttek volna eléje. De ő csupán azt kérdezte, ami érdekelte.
– Mit gondol, Emma, szeret valakit Elza?
– Nem – mondta határozottan a kisebbik lány. Elza senkit sem
szeret. Nem tud szeretni. Egészen… – elakadt, de aztán csendesen
hozzátette mégis – egészen más, mint én vagyok…
– Emmike, maga azt hiszi, hogy Elza nem szeret engem?
– Ó magát? Biztosan nem.
– Hát kit?
– Senkit, mondom.
Jánosból kikivánkozott még egy kérdés:
– A másikat sem?
A kisebbik leány, akit elfogulttá tett a maga szerelme, most nem
tudta, hogy mit feleljen. De az ösztöne az volt, hogy tovább is
rosszat mondjon a nénjéről. Talán rosszabbat még annál is, amit
gondolt. Tehát azt felelte:
– Nem. Rózsát sem, senkit sem. Nem volt még szerelmes, nem is
lesz soha. Nem is lehet, nincs szive!
Ezzel a feleletével Emma hozzájárult ahhoz az öncsalási akcióhoz,
amit János önmaga ellen inditott. Le akarta disputálni önmaga előtt
azt, amit saját szemével látott: hogy Elza igenis a másik felé hajlik.
Sietett megállapodni önmagával abban, hogy ez a furcsa leány
egyelőre szerelemtelen jószág. Csakugyan senkit sem szeret még. S
ha igy van, akkor csakugyan várni lehet. Majd. És ha a leány nem
szerelmes senkibe, akkor miért engedje át másnak? Nem! Azt nem
lehet, nem szabad! És ha akarná, sem tudná megtenni.
És János, ahelyett, hogy a szemébe nézett volna a kisebbik
leánynak és meglátta volna, ami benne csillogott, csak megszoritotta
a leány kezét és ezt mondta:
– Köszönöm, Emmike, maga nagyon kedves hozzám…
– Én… igen… de lássa… – Emma szeretett volna még mondani
valamit, de Elza bejött a szobába és tréfásan rájuk kiáltott:
– Miért bujtok el? Mit csinálsz, hugicám? Eludvarlod tőlem az
udvarlómat? Azt ne tedd. Tisztességes családban előbb a nagyobbik
leány megy férjhez és addig a kisebbik meg se moccan. Kiki ehhez
tartsa magát!
És aztán elviccelte az egészet.
XX. FEJEZET.

Adél
Az erkély szük volt és keskeny; a két fekvőszék csak éppen elfért
rajta. A két fekvőszéken ketten feküdtek, nyakig betakarva, arccal a
szikrázó napfénynek fordulva. Az egyik fekvőszék körül könyvek
hevertek az erkély fenyőfa-padlózatán. A takarón is könyvek,
kinyitva, becsukva, félig felvágva, még egészen érintetlenül. A másik
takarón csak egy levél. A takaró alól néha kinyult egy finom fehér
kéz és felvette a levelet. Aztán visszatette gondosan, gyengéden.
A két beteg magasra párnáztatta a fejét, hogy keresztül lásson az
erkély párkányán. Bár mind a ketten jól ismerték a látnivalót. Zöld
ágak tengere, a fenyők haragos-szin teteje, aztán fehér hó tengere,
a havas mezők és a Királyhegy naptól ragyogó gleccser-mezeje és
mind a kettő fölött a kék tenger, az ég, rajta az égő aranytányér, a
nap.
A két beteg magasra párnáztatta a fejét, hogy kilásson, ha nézni
akar. De nem akart nézni egyikük sem. Nem telt már örömük a
vakmerően és valószinütlenül gyönyörü szinekben, a forróságban,
melylyel a nap pörkölte őket, noha köröskörül mindent hó és jég
takart, feküdtek és sóhajtottak néha egyet-egyet, aztán
beszélgettek, aztán megint hallgattak.
Az egyik olvasott, a másik lehunyt szemmel gondolkodott.
Már több mint három hete feküdtek igy egymás mellett Adél és
itt-szerzett uj barátnője, Kaczvinszky Viktória doktorkisasszony, a
széplaki szanatórium egyik erkélyén.
Együvé ugy kerültek, hogy egyszer, mikor még mind a ketten a
közös földszinti terraszon tartották a kurát s a véletlen aznap délelőtt
egymás mellé fektette őket, a doktorkisasszony átszólt Adélhez:
– Ne sirjon, édes nagysád, ne sirjon!
Adél szinte megijedt a hirtelen megszólitástól:
– Bocsánat, – mondta halkan – nem sirok.
– De igen, ön sir. Már tegnap láttam, hogy sir. Azt nem szabad.
– Erős a napfény, bántja a szememet.
– Ne tessék ezt mondani. Nincs az a napfény, ami a sárga
szemüvegen át bántaná a szemet. De már tegnap láttam, hogyan
folyik a szemüveg mögül a könnye. Sirni tilos. Az árt.
– Mi árthat még nekem?
– Nekünk – mondta Viktória – minden árt, ami a lélekből jön,
vagy odamegy. Nekünk most csak testünk van. Nem szabad, hogy
lelkünk legyen. Az egyik zavarja a másikat. Nekem elhiheti, én orvos
vagyok.
Adél arra forditotta a fejét, hogy megnézze az orvost.
Hegyesorru, keskeny arcocska volt. Adél visszaemlékezett rá, hogy
ez az arc egy kissé görbehátu apró testhez tartozik, melyet már
többször látott csendesen közlekedni a folyosókon. Igazán nem
nézte ki belőle az orvost.
A doktorkisasszony folytatta a beszélgetést.
– Ne haragudjon, hogy megszólitottam.
– Nem haragszom.
– … De itt hizlalnak, napfénynyel fürösztenek, borogatnak és
levegővel tömnek bennünket. Két napi munkájukat tönkreteszi egy
félórai sirás.
– Ön nem sir.
– De ha látom önt, ahogy némán bugyognak ki a könnyei, akkor
végül én is sirok. Látja, önzésből szóltam.
– Istenem… néha olyan jól esik.
– Ez az a luxus, amit szintén nem engedélyezhetünk magunknak.
Hiszen annyi el sirni valója volna az embernek, hogy akkor kevés
lenne a nap huszonnégy órája.
– Önnek is van? – kérdezte Adél, inkább részvétből, mint
érdeklődésből.
– Van. Hogyne volna. Kinek nincs itt?
A doktorkisasszony felkönyökölt, ugy beszélt Adélhoz.
– Tessék megnézni engem. Doktor Kaczvinszky Viktória. Hét
esztendeig jártam az egyetemet, hét évig tanultam és tanitottam,
tanultam és koplaltam, tanultam és lelkesedtem. Mig elkészültem.
Most aztán készen vagyok. Egészen.
– Most kezdett volna élni… – mondta Adél.
A doktorkisasszony hegyes orra alá szomoru, de kedves mosoly
telepedett.
– Bizony. És most kezdek meghalni.
– Én is… – mondta Adél.
– Ön nem tudhatja.
– Ugy érzem.
– Ha megengedi, este megvizsgálom.
– Vizsgáltak eleget.
– De azért engedje meg, hogy én is meg vizsgáljam.
És félénken hozzátette:
– Feltéve, hogy tudni akarja…
– Mit? – kérdezte Adél.
– Hogy lehet-e még…
– Az ember sohasem tudja, hogy akarja-e tudni. Néha szeretnék
egészen biztos lenni benne, néha meg kikergetek a fejemből minden
határozott gondolatot. Nem akarom tudni.
– Akkor nem vizsgálom meg. Még nem barátkozott meg vele.
– Mivel?
– Azzal, hogy…
Abbahagyta, aztán neki kezdett:
– Nem fél a szótól?
– Nem.
– Akkor kimondom: még nem barátkozott meg a halállal.
– Lehet-e megbarátkozni vele?
– Lehet.
Adél rázta a fejét. A doktorkisasszony erősitgette:
– Lehet. Kell is. Vagy kellene. De rosszul nevelik az embereket.
– Kik?
– A vallások. Mind az életre nevelik az embert, ami fölösleges.
– Élni is tudni kell.
– De azt ugyis megtanulja az ember, az élet ösztönénél fogva. S
aki nem tudná, azt a praktikus intézmények megtanitják rá. De a
halálra a vallásnak kellene oktatni. Csak arra, semmi egyébre.
– Hogyan lehetne?
– Oktatni, szoktatni. Nemcsak azt kell megmondani az embernek,
hogy minden ember halandó, hanem azt is, hogy minden ember
meghal, tényleg meghal.
– De hiszen tudjuk.
– Ó, dehogy tudjuk! Nem hiszünk benne. Az életben, amely rövid
és bizonytalan, mind hiszünk. A halálban, amely hosszu és biztos,
senki sem hisz, aki él. Pedig csak el kellene gondolni, hogy nem
mindenki születik meg, aki születhetnék, ellenben mindenki meghal,
aki született.
– Tudjuk – ismételte Adél.
– Nem. Minden nemzedék magára nézve abban reménykedik,
hogy vele ér véget a halál. Eddig volt, ezentul nem lesz. Minden
nemzedéknek ez a magára nézve való hite adta az általános
halhatatlanság gondolatát. Attól nem tudnak meghalni az emberek.
– Hát nem vagyunk halhatatlanok? – kérdezte Adél, aki erről még
sohasem gondolkodott.
A doktorkisasszony megint felkönyökölt és mosolygott:
– Tessék körülnézni ezen a terraszon.
Aztán még sokáig beszélgettek. És összebarátkoztak. Adél kivette
a doktorkisasszony szavaiból, hogy a pénze fogyatékán van, s hogy a
jövő héten már el kellene mennie haza Pestre. Mivel másképen nem
ajánlhatta fel neki a segitséget, megkérte, költözzék át a szobájába,
legyen az ápolónője. Viktória beleegyezett.
Azóta együtt laktak s nem jártak le a terraszra feküdni. Az
erkélyükön feküdtek s jobban eltelt az idejük is.
A doktorkisasszony, bár ő is volt olyan gyenge és lázas, mint
Adél, nagyon lelkiismeretesen fogta fel az ápolónői tisztet, mérte és
jegyezte mind a kettőjük lázát, megmondta mit egyék, mit ne egyék
meg Adél azokból az ételekből, amiket elébük adtak, este
megigazgatta Adél mellén a borogatást, ő maga csak aztán ment
ágyba s tette föl a maga priznicét.
Egy éjszaka, mikor Adél, mint rendesen, már órák hosszat
forgolódott ágyán anélkül, hogy el tudott volna aludni s a villanyt is
felgyujtotta, hogy olvasson, Viktória felébredt.
– Mért nem alszol? – kérdezte a beteg a betegét.
– Mert nem tudok.
– Megint bánkódol?
– Mindig bánkódom.
– Szoktál altatót szedni?
– Nem.
– Akkor jó volna valami.
– Itt nem adnak.
– Persze nem. Itt mindenkit pausáléban kezelnek. Mert általában
nem jó nekünk, ha porokat szedünk, hát soha senkise kap. Pedig
aludni kell. Anélkül nincs élet. Hogy’ volna meggyógyulás? Holnap
irok veronált és elhozatjuk a patikából.
– Köszönöm – felelte rá Adél és örült a veronálnak, hogy aludni
fog.
Sőt maga ez a gondolat is elaltatta. Másnap megkapta a porokat
s aztán mindig engedélyt kért rá Viktóriától, hogy bevegyen egyet,
ha érezte, hogy ismét álmatlan éjszakája következik.
S valahányszor Jánostól levelet kapott, vagy olvasott róla valamit
valamelyik lapban, mindig álmatlannak igérkezett az éjszakája.
*
Adél rettenetesen tusakodott önmagával.
Mindaddig, amig Pestről legutóbb el nem jött, világosan látta, mit
akar, minden cselekedetét egy szándék kormányozta, egyik lépést a
másik után tette meg okosan és céltudatosan, láncszemeket kapcsolt
egymás mellé és a keze sohasem reszketett, noha mindig a halálra
gondolt.
Most már hetek óta küzdött s közben nem irt Jánosnak, mert
valami vadul ösztökélte rá, hogy máskép irjon, mint ahogy eddig irt.
Mást akart akarni, mint amit eddig akart. Ezért voltak
gyötrelmesek az éjszakái s ezért volt hiába a kúra, a nap, a levegő, a
nyugalom, ezért ment a láza napról-napra följebb. A lelke kinozta. És
milyen fájdalmasan kinozta!
Január harmadikán vagy negyedikén Adél reggel ezt mondta a
doktorkisasszonynak:
– Viki, ma lemegyünk Kassára.
– Mi? Minek?
– Csak. Nekem oda kell mennem.
– De egyikünk sincs olyan állapotban, hogy utazhatna.
– Az mindegy.
– Nem is engednek bennünket.
– Nem kérdezzük. Ugy teszünk, mintha csak sétálni mennénk és
megszökünk a villamossal Poprádra, onnan a gyorsvonattal Kassára,
estére vissza is jövünk. Vagy nem akarsz velem jönni?
– De Adél, hogyne mennék, ha akarod. De gondold meg: muszáj
menned?
– Muszáj.
– Akkor gyerünk.
Elindultak a villamos felé. Az országutra érve sifutók keresztezték
őket, akik az ugratósáncról csusztak le szélsebesen és messziről
kiabáltak:
– Ujujuju! Utból, vigyázni!
Egy pillanat mulva az egész csoport tul volt az országuton. Hogy
lecsusszanak Gerlachfalvára és onnan lovakkal huzassák fel
magukat.
Adél megállt és nézett utánuk.
– Ilyen az élet – mondta csendesen.
– Ilyen sikos? – kérdezte mosolyogva a doktorkisasszony.
– Ilyen sebes – felelte Adél. – Csak az a kár, hogy aki lent van a
völgyben, nem jöhet fel többé.
– Ki tudja?
– Én tudom.
– Siessünk! – szólt Viktória – mert még lemaradunk a villamosról.
Beültek a fütött kocsiba és Adél kibámult az ablakon. Eszébe
jutott, hogy egyszer milyen boldogan tette meg ezt az utat lefelé.
Akkor.
Milyen régen volt. Pedig még egy esztendeje sincs egészen. A
tájék most is olyan, mint akkor volt. A hó épp olyan mereven fehér, a
fenyők épp olyan zordonan zöldek, a hegyeken a jég épp oly
feszesen csillog. Semmi sem változott.
És minden megváltozott.
Lent a völgyben, a nagyszalóki állomás táján, sok-sok varju
kerengett a hó felett. Aztán leszálltak és egy darabon feketére
változtatták a fehér mező szinét.
– Varjak – mondta Adél, vagy inkább csak fennhangon
gondolkozott. És hozzátette: – feketék, mint a gyász. Minden fekete.
Viktória csodálkozva nézett rá:
– Minden fehér – javitotta ki Adélt.
De Adél mégegyszer elmondta maga elé:
– Minden fekete.
A jegyváltást Kassára Viktória vállalta. Mig a leány a pénztárnál
járt, Adél leült a petróleumszagu váróteremben. A padló linóleummal
volt fedve, azt mosták végig petróleummal minden reggel. A levegőt
szinte nehéz volt a tüdőbe szivni.
Ahogy ott ült a kemény fakerevet sarkában, Adél érezte, hogyan
süti át egész testét a láz. Nem lesz hasznos ez a mai kirándulás. De
nem törődött vele. Csak a doktorkisasszonyt sajnálta.
– Különben… – gondolta magában – annak is mindegy.
Kassán a Kossuth Lajos-uccán az ékszerészhez vitte be Viktóriát
Adél. A lány elcsodálkozott.
– Ezért jöttünk?
– Ezért.
– Ékszer miatt?
– Ékszer miatt.
– Adélkám, az lehetetlen.
– Mi volna lehetetlen?
– Hogy te, ékszer miatt ebben az állapotban eljőjj onnan ide…
– És, hogy téged is magammal hurcollak, ugy-e?
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookgate.com

You might also like