100% found this document useful (1 vote)
25 views

Essential Java for AP CompSci - From Programming to Computer Science 1st Edition Doug Winnie 2024 Scribd Download

Essential

Uploaded by

mihevcodueke
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
25 views

Essential Java for AP CompSci - From Programming to Computer Science 1st Edition Doug Winnie 2024 Scribd Download

Essential

Uploaded by

mihevcodueke
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

Download Full Version ebook - Visit ebookmeta.

com

Essential Java for AP CompSci - From Programming


to Computer Science 1st Edition Doug Winnie

https://ebookmeta.com/product/essential-java-for-ap-compsci-
from-programming-to-computer-science-1st-edition-doug-
winnie-2/

OR CLICK HERE

DOWLOAD NOW

Discover More Ebook - Explore Now at ebookmeta.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

Essential Java for AP CompSci: From Programming to


Computer Science 1st Edition Doug Winnie

https://ebookmeta.com/product/essential-java-for-ap-compsci-from-
programming-to-computer-science-1st-edition-doug-winnie/

ebookmeta.com

Concise Guide to Object Oriented Programming An Accessible


Approach Using Java Undergraduate Topics in Computer
Science 1st Edition Kingsley Sage
https://ebookmeta.com/product/concise-guide-to-object-oriented-
programming-an-accessible-approach-using-java-undergraduate-topics-in-
computer-science-1st-edition-kingsley-sage/
ebookmeta.com

Java All in One For Dummies Fifth Edition Doug Lowe

https://ebookmeta.com/product/java-all-in-one-for-dummies-fifth-
edition-doug-lowe-3/

ebookmeta.com

The Global Politics of Artificial Intelligence Chapman


Hall CRC Artificial Intelligence and Robotics Series 1st
Edition Maurizio Tinnirello
https://ebookmeta.com/product/the-global-politics-of-artificial-
intelligence-chapman-hall-crc-artificial-intelligence-and-robotics-
series-1st-edition-maurizio-tinnirello/
ebookmeta.com
Hammered Love Trap 1st Edition Mila Crawford Aria Cole

https://ebookmeta.com/product/hammered-love-trap-1st-edition-mila-
crawford-aria-cole/

ebookmeta.com

Advanced Statistics in Criminology and Criminal Justice


5th Edition David Weisburd David B Wilson Alese Wooditch
Chester Britt
https://ebookmeta.com/product/advanced-statistics-in-criminology-and-
criminal-justice-5th-edition-david-weisburd-david-b-wilson-alese-
wooditch-chester-britt/
ebookmeta.com

Emmett Till The Murder That Shocked the World and


Propelled the Civil Rights Movement 1st Edition Devery S
Anderson Julian Bond
https://ebookmeta.com/product/emmett-till-the-murder-that-shocked-the-
world-and-propelled-the-civil-rights-movement-1st-edition-devery-s-
anderson-julian-bond/
ebookmeta.com

Washington, DC 8th Edition Karla Zimmerman

https://ebookmeta.com/product/washington-dc-8th-edition-karla-
zimmerman/

ebookmeta.com

Sammy Spider s First Wedding Sylvia A Rouss

https://ebookmeta.com/product/sammy-spider-s-first-wedding-sylvia-a-
rouss/

ebookmeta.com
Art and Culture Dancing Around the World Comparing Groups
Linda Claire

https://ebookmeta.com/product/art-and-culture-dancing-around-the-
world-comparing-groups-linda-claire/

ebookmeta.com
Essential
Java for
AP CompSci
From Programming to Computer Science

Doug Winnie
Essential Java
for AP CompSci
From Programming to Computer
Science

Doug Winnie
Essential Java for AP CompSci: From Programming to Computer Science
Doug Winnie
Mission Hills, KS, USA

ISBN-13 (pbk): 978-1-4842-6182-8 ISBN-13 (electronic): 978-1-4842-6183-5 


https://doi.org/10.1007/978-1-4842-6183-5

Copyright © 2021 by Doug Winnie


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Steve Anglin
Development Editor: Matthew Moodie
Coordinating Editor: Mark Powers
Cover designed by eStudioCalamar
Cover image by Devin Avery on Unsplash (www.unsplash.com)
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY 10004,
U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com, or visit
www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer
Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail editorial@apress.com; for reprint, paperback, or audio rights,
please e-mail bookpermissions@springernature.com.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub via the book’s product page, located at www.apress.com/9781484261828. For more
detailed information, please visit http://www.apress.com/source-­code.
Printed on acid-free paper
For Mike, and all of the great decisions we have made together.
Table of Contents
About the Author���������������������������������������������������������������������������������������������������xvii

About the Technical Reviewer��������������������������������������������������������������������������������xix

Sprint 1: Introduction����������������������������������������������������������������������������������������������� 1
What You Need������������������������������������������������������������������������������������������������������������������������������ 3

Sprint 2: Setting Up the Java JDK and IntelliJ��������������������������������������������������������� 5


Coding Tools and IDEs������������������������������������������������������������������������������������������������������������������� 5
Installation and Setup������������������������������������������������������������������������������������������������������������������� 6
Install the JDK������������������������������������������������������������������������������������������������������������������������� 6
Install IntelliJ��������������������������������������������������������������������������������������������������������������������������� 6

Sprint 3: Setting Up GitHub��������������������������������������������������������������������������������������� 9


GitHub������������������������������������������������������������������������������������������������������������������������������������������� 9
How GitHub Works���������������������������������������������������������������������������������������������������������������������� 10
Lifecycle of a Repository������������������������������������������������������������������������������������������������������������� 10

Sprint 4: Programming Languages������������������������������������������������������������������������� 13


Origin of Programming���������������������������������������������������������������������������������������������������������������� 13
Forms of Programming��������������������������������������������������������������������������������������������������������������� 14
Machine Language���������������������������������������������������������������������������������������������������������������� 14
Interpreted����������������������������������������������������������������������������������������������������������������������������� 14
Compiled������������������������������������������������������������������������������������������������������������������������������� 15
Object-Oriented��������������������������������������������������������������������������������������������������������������������� 15
Data��������������������������������������������������������������������������������������������������������������������������������������� 15
Functional������������������������������������������������������������������������������������������������������������������������������ 16
Scripting�������������������������������������������������������������������������������������������������������������������������������� 16

v
Table of Contents

Sprint 5: History and Uses of Java������������������������������������������������������������������������� 17


Java Beginnings�������������������������������������������������������������������������������������������������������������������������� 17
Java’s Primary Goals������������������������������������������������������������������������������������������������������������������� 17
Uses of Java�������������������������������������������������������������������������������������������������������������������������������� 18

Sprint 6: How Java Works�������������������������������������������������������������������������������������� 19


The Problem with Compiled Languages������������������������������������������������������������������������������������� 19
The JVM and JRE������������������������������������������������������������������������������������������������������������������������ 20
Compiling Java Bytecode������������������������������������������������������������������������������������������������������������ 21
Precompiled Files����������������������������������������������������������������������������������������������������������������������� 22
OpenJRE�������������������������������������������������������������������������������������������������������������������������������������� 22

Sprint 7: Flowcharting�������������������������������������������������������������������������������������������� 23
Flowcharting Tools���������������������������������������������������������������������������������������������������������������������� 23
Paper������������������������������������������������������������������������������������������������������������������������������������� 23
Tablet and Stylus������������������������������������������������������������������������������������������������������������������� 24
Apps�������������������������������������������������������������������������������������������������������������������������������������� 24
Flowcharting Basics�������������������������������������������������������������������������������������������������������������������� 24
Terminus�������������������������������������������������������������������������������������������������������������������������������� 24
Process/Action���������������������������������������������������������������������������������������������������������������������� 24
Input and Output�������������������������������������������������������������������������������������������������������������������� 25
Decisions������������������������������������������������������������������������������������������������������������������������������� 25
Annotations��������������������������������������������������������������������������������������������������������������������������� 25
Other Shapes������������������������������������������������������������������������������������������������������������������������� 25
Take Out the Trash���������������������������������������������������������������������������������������������������������������������� 26
But Is It Really That Simple?������������������������������������������������������������������������������������������������������� 26

Sprint 8: Hello, World���������������������������������������������������������������������������������������������� 29


Create Your IntelliJ Java Project������������������������������������������������������������������������������������������������� 29
IntelliJ IDEA��������������������������������������������������������������������������������������������������������������������������� 29
First Time Only: Configure the JDK���������������������������������������������������������������������������������������� 30
Create Project������������������������������������������������������������������������������������������������������������������������ 33
About Your Project����������������������������������������������������������������������������������������������������������������� 36

vi
Table of Contents

Coding Your Project��������������������������������������������������������������������������������������������������������������������� 38


Writing Your First Program���������������������������������������������������������������������������������������������������� 38
Create Your Repo in GitHub��������������������������������������������������������������������������������������������������������� 40
Upload Your Code to GitHub�������������������������������������������������������������������������������������������������������� 45
Sharing Program Output�������������������������������������������������������������������������������������������������������� 47

Sprint 9: Simple Java Program Structure��������������������������������������������������������������� 49

Sprint 10: Text Literals and Output������������������������������������������������������������������������� 51


Text Output���������������������������������������������������������������������������������������������������������������������������������� 51
Escape Sequences���������������������������������������������������������������������������������������������������������������������� 52

Sprint 11: Value Literals����������������������������������������������������������������������������������������� 55


Literal Formatting����������������������������������������������������������������������������������������������������������������������� 56

Sprint 12: Output Formatting���������������������������������������������������������������������������������� 59


Decimal Formatters�������������������������������������������������������������������������������������������������������������������� 59
Thousands Formatters���������������������������������������������������������������������������������������������������������������� 60
Currency Formatters������������������������������������������������������������������������������������������������������������������� 60
Spacing and Alignment Formatters�������������������������������������������������������������������������������������������� 61
Multiple Items in Formatters������������������������������������������������������������������������������������������������������� 62

Sprint 13: Comments and Whitespace������������������������������������������������������������������� 65

Sprint 14: Abstraction of Numbers������������������������������������������������������������������������� 67


Sprint 15: Binary���������������������������������������������������������������������������������������������������� 75
Binary Numbers�������������������������������������������������������������������������������������������������������������������������� 76
Bit Size and Values���������������������������������������������������������������������������������������������������������������������� 81
Overflow�������������������������������������������������������������������������������������������������������������������������������� 84

Sprint 16: Unicode�������������������������������������������������������������������������������������������������� 87


Text Encoding������������������������������������������������������������������������������������������������������������������������������ 87
ASCII + Unicode�������������������������������������������������������������������������������������������������������������������������� 88
Emoji������������������������������������������������������������������������������������������������������������������������������������������� 88

vii
Table of Contents

Sprint 17: Variables������������������������������������������������������������������������������������������������ 89


Essentials of Variables���������������������������������������������������������������������������������������������������������������� 89
Code Examples��������������������������������������������������������������������������������������������������������������������������� 90

Sprint 18: Math!����������������������������������������������������������������������������������������������������� 93


Basic Operators��������������������������������������������������������������������������������������������������������������������������� 93
Order of Operations��������������������������������������������������������������������������������������������������������������������� 93
String Concatenation������������������������������������������������������������������������������������������������������������������ 94
Code Examples��������������������������������������������������������������������������������������������������������������������������� 94

Sprint 19: Math Methods���������������������������������������������������������������������������������������� 97


Working with Simple Methods���������������������������������������������������������������������������������������������������� 97
Multiparameter Methods������������������������������������������������������������������������������������������������������������� 98
Illegal Value Types in Methods���������������������������������������������������������������������������������������������������� 98
Math Constants��������������������������������������������������������������������������������������������������������������������������� 99
Code Examples��������������������������������������������������������������������������������������������������������������������������� 99

Sprint 20: Managing Type������������������������������������������������������������������������������������� 101


Mixing Types in Evaluations������������������������������������������������������������������������������������������������������ 101
Numbers to Strings������������������������������������������������������������������������������������������������������������������� 102
Strings to Numbers������������������������������������������������������������������������������������������������������������������� 102
Casts����������������������������������������������������������������������������������������������������������������������������������������� 103
Cast Errors�������������������������������������������������������������������������������������������������������������������������������� 103
Code Examples������������������������������������������������������������������������������������������������������������������������� 104

Sprint 21: Random Numbers�������������������������������������������������������������������������������� 107


Create a Random Number Generator���������������������������������������������������������������������������������������� 107
Random Integers����������������������������������������������������������������������������������������������������������������������� 108
Random Decimals��������������������������������������������������������������������������������������������������������������������� 109
Code Examples������������������������������������������������������������������������������������������������������������������������� 110

viii
Table of Contents

Sprint 22: Capture Input��������������������������������������������������������������������������������������� 113


Hello, Scanner��������������������������������������������������������������������������������������������������������������������������� 113
Capturing Strings���������������������������������������������������������������������������������������������������������������������� 114
Capturing Integers�������������������������������������������������������������������������������������������������������������������� 114
Capturing Decimals������������������������������������������������������������������������������������������������������������������� 115
Code Examples������������������������������������������������������������������������������������������������������������������������� 115

Sprint 23: Creating Trace Tables��������������������������������������������������������������������������� 117


It’s a Spreadsheet��������������������������������������������������������������������������������������������������������������������� 117
Um. Why?���������������������������������������������������������������������������������������������������������������������������������� 118

Sprint 24: Methods����������������������������������������������������������������������������������������������� 119


Method Basics�������������������������������������������������������������������������������������������������������������������������� 119
Writing a Method����������������������������������������������������������������������������������������������������������������������� 119
Call a Method���������������������������������������������������������������������������������������������������������������������������� 120
Method Flow����������������������������������������������������������������������������������������������������������������������������� 120
Code Guide�������������������������������������������������������������������������������������������������������������������������������� 120
Code Examples������������������������������������������������������������������������������������������������������������������������� 121

Sprint 25: Calling Methods Within Methods��������������������������������������������������������� 123


Methods Within Methods���������������������������������������������������������������������������������������������������������� 123
Infinite Methods������������������������������������������������������������������������������������������������������������������������ 124
Code Examples������������������������������������������������������������������������������������������������������������������������� 125

Sprint 26: Methods and Values����������������������������������������������������������������������������� 127


Accepting Values in Methods���������������������������������������������������������������������������������������������������� 127
Returning a Value���������������������������������������������������������������������������������������������������������������������� 128
Overloading a Method��������������������������������������������������������������������������������������������������������������� 128
Code Guides������������������������������������������������������������������������������������������������������������������������������ 129
Code Examples������������������������������������������������������������������������������������������������������������������������� 132

ix
Table of Contents

Sprint 27: Methods and Scope����������������������������������������������������������������������������� 135


Variable Scope Errors��������������������������������������������������������������������������������������������������������������� 135
Defining Class-Scoped Variables���������������������������������������������������������������������������������������������� 135
Class Conflicts�������������������������������������������������������������������������������������������������������������������������� 136
Code Examples������������������������������������������������������������������������������������������������������������������������� 138

Sprint 28: Boolean Values and Equality���������������������������������������������������������������� 141


Creating a Boolean Variable������������������������������������������������������������������������������������������������������ 141
Boolean Logic Operators����������������������������������������������������������������������������������������������������������� 142
Altering a Boolean Value����������������������������������������������������������������������������������������������������������� 142
Combining Logic with Evaluations�������������������������������������������������������������������������������������������� 142
Compound Logic Operators������������������������������������������������������������������������������������������������������� 143
Code Examples������������������������������������������������������������������������������������������������������������������������� 143

Sprint 29: Simple Conditional Statements������������������������������������������������������������ 147


The if Statement����������������������������������������������������������������������������������������������������������������������� 147
The else Statement������������������������������������������������������������������������������������������������������������������� 147
The else if Statement���������������������������������������������������������������������������������������������������������������� 148
Understanding Conditional Flow����������������������������������������������������������������������������������������������� 148
Code Examples������������������������������������������������������������������������������������������������������������������������� 149

Sprint 30: Matching Conditions with the switch Statement��������������������������������� 153


Creating a switch Statement Code Block���������������������������������������������������������������������������������� 153
Things to Look Out for with the switch Statement�������������������������������������������������������������������� 155
Code Examples������������������������������������������������������������������������������������������������������������������������� 155

Sprint 31: The Ternary Operator��������������������������������������������������������������������������� 157


The if-else Statement Equivalent���������������������������������������������������������������������������������������������� 157
Converting to a Ternary Operator���������������������������������������������������������������������������������������������� 158
Using the Ternary Operator Inline with Code���������������������������������������������������������������������������� 158
Code Examples������������������������������������������������������������������������������������������������������������������������� 158

x
Table of Contents

Sprint 32: The Stack and the Heap����������������������������������������������������������������������� 161


Understanding the Stack����������������������������������������������������������������������������������������������������������� 161
Understanding the Heap����������������������������������������������������������������������������������������������������������� 162
Why This All Matters����������������������������������������������������������������������������������������������������������������� 162

Sprint 33: Testing Equality with Strings��������������������������������������������������������������� 163


When the Heap Throws Equality����������������������������������������������������������������������������������������������� 163
How to Better Compare String Values��������������������������������������������������������������������������������������� 164
Code Examples������������������������������������������������������������������������������������������������������������������������� 165

Sprint 34: Dealing with Errors������������������������������������������������������������������������������ 167


Coding to Catch Errors�������������������������������������������������������������������������������������������������������������� 167
“Catching” Specific Errors�������������������������������������������������������������������������������������������������������� 168
Code Examples������������������������������������������������������������������������������������������������������������������������� 169

Sprint 35: Documenting with JavaDoc����������������������������������������������������������������� 173


Using JavaDoc Syntax��������������������������������������������������������������������������������������������������������������� 173
Generating Documentation������������������������������������������������������������������������������������������������������� 175
Code Examples������������������������������������������������������������������������������������������������������������������������� 177

Sprint 36: Formatted Strings�������������������������������������������������������������������������������� 179


Creating a Formatted String Literal������������������������������������������������������������������������������������������� 179
Code Examples������������������������������������������������������������������������������������������������������������������������� 179

Sprint 37: The while Loop������������������������������������������������������������������������������������� 181


Create a while Loop������������������������������������������������������������������������������������������������������������������ 181
Code Examples������������������������������������������������������������������������������������������������������������������������� 182

Sprint 38: Automatic Program Loops������������������������������������������������������������������� 183


Creating a Program Loop���������������������������������������������������������������������������������������������������������� 183
Code Examples������������������������������������������������������������������������������������������������������������������������� 185

Sprint 39: The do/while Loop�������������������������������������������������������������������������������� 187


Creating a do…while Loop������������������������������������������������������������������������������������������������������� 187
Run at Least Once��������������������������������������������������������������������������������������������������������������������� 188

xi
Table of Contents

Sprint 40: Simplified Assignment Operators�������������������������������������������������������� 189


Combined Assignment�������������������������������������������������������������������������������������������������������������� 189
Increment and Decrement�������������������������������������������������������������������������������������������������������� 190
Placement and Program Flow��������������������������������������������������������������������������������������������������� 190
Code Examples������������������������������������������������������������������������������������������������������������������������� 191

Sprint 41: The for Loop����������������������������������������������������������������������������������������� 195


Creating a for Loop������������������������������������������������������������������������������������������������������������������� 195
Changing the Step��������������������������������������������������������������������������������������������������������������������� 196
Code Examples������������������������������������������������������������������������������������������������������������������������� 197

Sprint 42: Nesting Loops�������������������������������������������������������������������������������������� 199


Creating Nested Loops�������������������������������������������������������������������������������������������������������������� 199
Displaying as a Grid������������������������������������������������������������������������������������������������������������������ 200
Code Examples������������������������������������������������������������������������������������������������������������������������� 202

Sprint 43: Strings as Collections�������������������������������������������������������������������������� 203


Creating Strings Using the String Class������������������������������������������������������������������������������������ 203
Getting a String Length������������������������������������������������������������������������������������������������������������� 203
Getting a Specific Character from a String������������������������������������������������������������������������������� 203
Finding a Character in a String������������������������������������������������������������������������������������������������� 204
Extracting a Substring��������������������������������������������������������������������������������������������������������������� 205
Comparing Strings�������������������������������������������������������������������������������������������������������������������� 205
Code Examples������������������������������������������������������������������������������������������������������������������������� 206

Sprint 44: Make Collections Using Arrays������������������������������������������������������������ 209


Creating an Array with Values��������������������������������������������������������������������������������������������������� 209
Getting a Value from an Array��������������������������������������������������������������������������������������������������� 210
Creating an Array by Size���������������������������������������������������������������������������������������������������������� 210
Things to Avoid with Arrays������������������������������������������������������������������������������������������������������� 210
Getting the Number of Values in an Array��������������������������������������������������������������������������������� 211
Looping Through an Array��������������������������������������������������������������������������������������������������������� 211
Code Examples������������������������������������������������������������������������������������������������������������������������� 212

xii
Table of Contents

Sprint 45: Creating Arrays from Strings��������������������������������������������������������������� 215


Delimited Strings���������������������������������������������������������������������������������������������������������������������� 215
Splitting It Up���������������������������������������������������������������������������������������������������������������������������� 216
What About Numbers?�������������������������������������������������������������������������������������������������������������� 217
Code Examples������������������������������������������������������������������������������������������������������������������������� 218

Sprint 46: Multidimensional Arrays���������������������������������������������������������������������� 219


Define a Multidimensional Array����������������������������������������������������������������������������������������������� 220
Assign Values to Multidimensional Arrays�������������������������������������������������������������������������������� 221
Access Values in Multidimensional Arrays�������������������������������������������������������������������������������� 221
Rectangular and Irregular Arrays���������������������������������������������������������������������������������������������� 221
Code Examples������������������������������������������������������������������������������������������������������������������������� 222

Sprint 47: Looping Through Multidimensional Arrays������������������������������������������ 225


Creating Nested Loops for Arrays��������������������������������������������������������������������������������������������� 225
Code Examples������������������������������������������������������������������������������������������������������������������������� 227

Sprint 48: Beyond Arrays with ArrayLists������������������������������������������������������������ 229


Create an ArrayList�������������������������������������������������������������������������������������������������������������������� 229
Add Items to ArrayLists������������������������������������������������������������������������������������������������������������� 230
Get Elements in ArrayLists�������������������������������������������������������������������������������������������������������� 230
Remove Elements from ArrayLists�������������������������������������������������������������������������������������������� 231
Find Items in ArrayLists������������������������������������������������������������������������������������������������������������ 231
Replace Items in ArrayLists������������������������������������������������������������������������������������������������������� 232
Get the Size of an ArrayList������������������������������������������������������������������������������������������������������� 232
Copy Elements to a New ArrayList�������������������������������������������������������������������������������������������� 232
Clear an ArrayList���������������������������������������������������������������������������������������������������������������������� 232
Code Examples������������������������������������������������������������������������������������������������������������������������� 233

Sprint 49: Introducing Generics���������������������������������������������������������������������������� 235


Create an ArrayList with Generics��������������������������������������������������������������������������������������������� 235
Typing Using Generics��������������������������������������������������������������������������������������������������������������� 236
Code Examples������������������������������������������������������������������������������������������������������������������������� 237

xiii
Table of Contents

Sprint 50: Looping with ArrayLists����������������������������������������������������������������������� 239


Working with size( ) and get( ) Methods������������������������������������������������������������������������������������ 239
Code Examples������������������������������������������������������������������������������������������������������������������������� 240

Sprint 51: Using for…each Loops������������������������������������������������������������������������� 241


Mechanics of a for…each Loop������������������������������������������������������������������������������������������������ 241
This Is the Mechanics of the for…each Loop��������������������������������������������������������������������������� 242
ArrayLists Without Generics������������������������������������������������������������������������������������������������������ 243
Yep, Arrays Work Too����������������������������������������������������������������������������������������������������������������� 243
Code Examples������������������������������������������������������������������������������������������������������������������������� 244

Sprint 52: The Role-Playing Game Character������������������������������������������������������� 247


What Is a Role-Playing Game Character?��������������������������������������������������������������������������������� 247
Filling Out Our Character Sheet with Data�������������������������������������������������������������������������������� 248
Classes, Instantiation, and Construction����������������������������������������������������������������������������������� 250
Player Character Sheets����������������������������������������������������������������������������������������������������������� 250
Fighter��������������������������������������������������������������������������������������������������������������������������������������� 251
Mage����������������������������������������������������������������������������������������������������������������������������������������� 251
Paladin�������������������������������������������������������������������������������������������������������������������������������������� 252
Priest����������������������������������������������������������������������������������������������������������������������������������������� 252

Sprint 53: Polymorphism�������������������������������������������������������������������������������������� 253


Creating a Class Hierarchy�������������������������������������������������������������������������������������������������������� 253
Party Up—All the Same—but All Different at the Same Time�������������������������������������������������� 254
The Essential Tool: The Die�������������������������������������������������������������������������������������������������������� 255
Class Hierarchy, Polymorphism, Abstract, and Static���������������������������������������������������������������� 255

Sprint 54: Make All the Things…Classes������������������������������������������������������������� 257


Creating Some Class����������������������������������������������������������������������������������������������������������������� 257
Instantiate Thyself, Class!��������������������������������������������������������������������������������������������������������� 263

Sprint 55: Class, Extend Thyself!�������������������������������������������������������������������������� 269

xiv
Table of Contents

Sprint 56: I Don’t Collect Those; Too Abstract������������������������������������������������������ 283

Sprint 57: Access Denied: Protected and Private������������������������������������������������� 291

Sprint 58: Interfacing with Interfaces������������������������������������������������������������������ 305

Sprint 59: All I’m Getting Is Static������������������������������������������������������������������������ 309

Sprint 60: An All-Star Cast, Featuring Null����������������������������������������������������������� 315

I ndex��������������������������������������������������������������������������������������������������������������������� 321

xv
About the Author
Doug Winnie has been teaching programming in the
classroom or with online videos for over 15 years. Online, his
videos have over two million views on Adobe, Lynda.com,
and LinkedIn Learning. Doug’s courses cover topics like
computer science principles, Java, C#, JavaScript, product
management fundamentals, virtual machines, and other
products and technologies.
He has written two books on programming and
collaboration between user experience designers and
developers.
Currently, he is the Chief Learning Officer at
MentorNations, an international nonprofit focused on
evolving digital literacy and entrepreneurial skills across the world.
Previously, Doug was head of community for the LinkedIn Learning instructor
organization, representing the interests of over 1400 teachers and instructors worldwide.
He was an internal contributor to the Windows Insider Program and part of a global
initiative at Microsoft to teach 7.6 billion people around the world digital coding and
programming literacy skills. He was also a LinkedIn Culture Champion, working with
LinkedIn employees around the globe to put on employee cultual events on special days
called InDays.
Earlier, Doug was a principal product manager at Adobe and specialized working on
new products for the user experience, interactive design, and web design audiences.
You can find out more about Doug on his LinkedIn profile:

www.linkedin.com/in/sfdesigner

xvii
About the Technical Reviewer
Jeff Friesen is a freelance teacher and software developer with an emphasis on Java.
In addition to authoring Java I/O, NIO and NIO.2 (Apress) and Java Threads and the
Concurrency Utilities (Apress), Jeff has written numerous articles on Java and other
technologies (such as Android) for JavaWorld (JavaWorld.com), InformIT (InformIT.com),
Java.net, SitePoint (SitePoint.com), and other websites. Jeff can be contacted via his
website at JavaJeff.ca or via his LinkedIn profile ­(www.linkedin.com/in/javajeff).

xix
SPRINT 1

Introduction
Computer science has become a basic life skill that everyone is going to need to learn.
Whether you are going into a career or side hustle in business, technology, creativity,
architecture, or almost any other field, you will find programming, coding, and computer
science play a role.
In fact, if you look at the top skills on LinkedIn for the United States, in the last year
all ten of the top were programming, computer science, or code related. These include
cloud and distributed computing, statistical analysis, data mining, mobile development,
storage systems management, user interface design, network and information security,
middleware and integration software, web architecture and development frameworks,
algorithm design, and Java development.1
What is unique about computer science is how it has become a skill, and not just
a career. While there are jobs and titles of “Computer Scientist,” the skill of computer
science, and specifically coding and programming, is almost everywhere.
In marketing, you need to analyze and sift through tons of user data and metrics
on how people use your products, website, apps, or services. In medicine, doctors and
researchers need to gather and analyze data gathered from clinical studies or to find
new breakthroughs. In agriculture and farming, thousands of IoT devices need to be
deployed and managed to gather data on soil conditions, humidity, and crop health. In
architecture and construction, mapping out and analyzing how people use elevators,
building infrastructure, or public spaces can help design better buildings for people to
work and live in. Even when building a side business, or “hustle,” entrepreneurs may
need to perform research, build a website, program a mobile app or game, or perform
tons of different activities involving code, logic, automation, and programming.

1
“ The Top 10 Skills You Will Be Hiring For in 2017,” https://business.linkedin.com/talent-
solutions/blog/trends-and-research/2016/linkedin-new-report-reveals-the-latest-
job-seeking-trends

1
© Doug Winnie 2021
D. Winnie, Essential Java for AP CompSci, https://doi.org/10.1007/978-1-4842-6183-5_1
SPRINT 1 Introduction

When people create projects based on code, they organize their work into multiple
chunks or segments of development. They call these “sprints.” So, we will learn Java
in the same way, using multiple sprints that will teach a single topic to help us keep
pace with things along the way. Part of what makes learning coding difficult is it can be
difficult to find real-world examples to draw parallels from. If you are planning on taking
the AP Exam in Computer Science, many of the questions will not have any real-world
context and will require you to understand and follow code without that as a reference.
For you, this can make it confusing, but just remember: there are two sides to
programming—what is being done and how it happens.
The “what” is pretty easy, and this gives the code context, like parsing transit data,
rolling a virtual die, or adding sales data for a quarter together.
“How” it happens is a completely different story however. This is where you need to
break things down into individual steps and start to think like a computer. A computer
is going to think only about one single step at a time. It has no concept of what comes
next or what came before it. It only is concerned with the present. So, if it can’t find
something—you get an error. If it tries to do something that doesn’t exist—you get an
error. If you try doing something out of order—you guessed it, you get an error.
In fact, the computer is pretty dumb. I mean, like really dumb. What makes it smart
is how we are able to string multiple actions together to make something work. And
with growing advances in artificial intelligence, the computer itself can start making
adjustments. And then Skynet activates, and we all know what happens after that.
So when we learn programming, we are going to focus on three things:

• What is the process

• What is the syntax

• What is the flow

The process is represented as a flowchart. We will learn how to make these to


help you plan out what you are going to do before you write a line of code. At first, the
flowcharts will be pretty simple, but then they will get more complex. And yep, you will
get pretty annoyed with flowcharts before the year is over, but trust me…they help.
The syntax is the code; this is what you write that translates the process you create in
a flowchart to the instructions that the computer can understand.

2
SPRINT 1 Introduction

Finally, there is the flow. This is where you trace through the code and see how the
data and information it stores along the way changes, and you can see how the operation
of the program cascades from line to line. You will be building charts that will capture
the programming flow so you can better understand how the computer processes code
to make your next program easier to conceive and code.

What You Need


You will need a Windows or macOS computer to complete the projects in this book. You
will need to install and configure the Java JDK (Java Development Kit) and IntelliJ from
JetBrains (our IDE or code editor for the class). If you are on macOS, it is suggested that you
uninstall the built-in Java JRE (Java Runtime Environment) and use the one included in the
Oracle Java JDK. This will avoid warnings that appear when you build your projects.

3
SPRINT 2

Setting Up the Java JDK


and IntelliJ
To get started with our exercises, we need to set up our computers to work with Java code
and run it. This is called creating a development environment.
As you learn more about coding and programming, you will encounter many
different tools to help you do your job. There are so many in fact, that you might find
that one fits better than another. While they all essentially do the same thing, there are
features and options in different tools that mesh better with different types of coders.

Coding Tools and IDEs


Coding tools, and their more sophisticated brothers, the integrated development
environment, or IDE, can sometimes spark passionate debate on which one is
considered “the best,” but ultimately it comes down to you, the coder, to decide what is
best for you.
To help make this course and the tools we use easy to understand and the same
across Windows and macOS, the tool we will use is IntelliJ IDEA. IDEA is a free coding
tool from JetBrains that is easy to use, not very complicated, and it is the same across
platforms.
There are others that you can use for this course as well. Some examples are Eclipse
or NetBeans. These tools provide the same features, but I wouldn’t recommend using
them to help us all be consistent with our tools when working together.
The other key tool you will need is the Java Development Kit or JDK. In order for the
IDE to work, it needs to have the Java compiler to create your Java bytecode and then use
the Java Runtime Environment or JRE to run your program in a virtual machine, called
the JVM.

5
© Doug Winnie 2021
D. Winnie, Essential Java for AP CompSci, https://doi.org/10.1007/978-1-4842-6183-5_2
SPRINT 2 Setting Up the Java JDK and IntelliJ

The version that you will use is the Java SE or Standard Edition that you can
download for free from Oracle. Regardless if you use IDEA, or another IDE, you will need
to install the JDK in order to compile and build your programs.

Installation and Setup


If you want to follow along with the same tools that I’ll be using, you will need to install
the JDK and IntelliJ IDEA.
To install the tools I’m using, you will need a PC with Windows 7, 8, 8.1, or 10 already
installed.
For a macOS computer, you will need Yosemite, High Sierra, or Mojave. It is
recommended that you uninstall the version that Apple installs by default (called
OpenJDK). Refer to instructions online for how to do this.

Install the JDK


First, we need to install the JDK.
With your browser, go to the Oracle website:

www.oracle.com/technetwork/java/javase/downloads/index.html

From here, click the Java JDK download button.


Then accept the license agreement, and then select Windows which must be
installed on a 64-bit computer and operating system or for macOS.
Your browser will prompt you to save the installer to your computer. Save and run
the installer using the defaults for the configuration.
Remember the location of where the JDK is installed; you will need this later on to
connect IntelliJ IDEA to the JDK.

Install IntelliJ
Now we need to install IntelliJ IDEA.
With your browser, go to the JetBrains website:

www.jetbrains.com

6
SPRINT 2 Setting Up the Java JDK and IntelliJ

Under Tools, look for the column IDEs, and select IntelliJ IDEA. We will use the
Community Edition, which is free.
Your browser will prompt you to save the installer to your computer. Click Save to
continue and download.
Run the installer and accept the defaults for all the settings.
That’s it! IntelliJ IDEA and the Java Development Kit are successfully installed!

7
SPRINT 3

Setting Up GitHub
When you code, you need to have a location to store it and share that code with others
to work with it and review it. Tools called code repositories are ideal ways to do this,
and there are several different types that are available for developers to use; one of the
most popular is GitHub, and we will explore it here. GitHub, in the context of this book,
is a tool that you can use on your own. I’m introducing it here, because as you get more
familiar with programming, you’ll find it to be an indispensable tool.

G
 itHub
The one that we will use is called GitHub. GitHub is a free public code platform that
developers use to build, archive, and manage coding projects for individual or group
collaboration. It is built on the Git technology that is ordinarily used for private, internal
projects, but GitHub builds their public platform on Git to make it available to anyone.
To create a GitHub account is simple. Go to www.github.com/ and create an account
there. For our use in class, please create your account as your Serra email address so I
can easily identify your account.
When you create your account, be sure to go to GitHub Desktop to download the
desktop client for Windows or macOS. You can download the installer here: https://
desktop.github.com/.
Install the client and sign in to your account. You can then create a repository to keep
track of the changes you make in your classwork projects. You can create a single project
to capture all of your homework assignments, or you can create an individual repository
for each project. Whichever you choose is up to you.

9
© Doug Winnie 2021
D. Winnie, Essential Java for AP CompSci, https://doi.org/10.1007/978-1-4842-6183-5_3
SPRINT 3 Setting Up GitHub

How GitHub Works


GitHub and Git create a special directory that it uses to keep track of all changes that you
make to the files inside of it. When you make a change to a file, it tracks what the change
was and notes that.
This is different than a backup. A backup creates a copy of everything that is in a
folder. A change in Git and GitHub only records what changed, which can save a lot of
space and is much faster to process.
There are many advanced workflows and automations that you can tie into Git and
GitHub, but we will only be using the platform to store and share projects and homework
assignments.
There are ways to tie in GitHub directly into the IntelliJ IDEA IDE, but for simplicity,
we can use the GitHub Desktop client to make, track, commit, and sync changes to our
GitHub account.

Lifecycle of a Repository
A repository, or repo, starts with the master branch, sometimes known as a trunk. For
individual developers, or small teams, projects might only use a master branch and
never create alternate versions of it.
As the program evolves and new changes are made, they are saved to the repository
by making a commit. A commit contains the changes to the code and a brief comment
and description made by the developer on what changed for future reference. Over time,
there will be dozens or hundreds of commits on a repository.
At some point, a repository will need to split in some way. Either there needs to be
simultaneous work and they don’t want to have code conflict with others, or a project
needs to maintain an existing version and they want to do something else with it. In that
case, a branch is created from the main trunk, and development can happen in parallel
with the original code.
At some point, a branch will need to rejoin the main development, and this is done
by merging that branch back into the master trunk.
For open source repositories, it is common for a developer to find a helpful
framework and want to add it to their own development environment. To do that, they
would fork the repository, creating a copy in their own environment to work with and
potentially make changes.

10
SPRINT 3 Setting Up GitHub

When a developer makes changes or improvements to a forked repository, they


might want to contribute those changes back to the main repository they forked from.
To do that, they submit a pull request back to the original repository. As part of this
pull request, the developer outlines the changes that were made, and the person who
receives the requests can compare the proposed changes to the repo by performing a diff
that shows the changes side by side from one another.

Fork / Copy Pull Request

Branch

Merge

Master branch / Trunk Commit Diff /


Merge Pull Request

Figure 3-1. Repository lifecycle

Repositories can vary in complexity from something very simple with a single
or a handful of developers to a large open source project with tens of thousands of
developers. Code repos are the core of how software developers work together on
projects of any size.

11
SPRINT 4

Programming Languages
Programming languages started as an abstract concept and then adapted and changed
over time. From the origins of machine language, switch input, extending into the early
days of simple line-by-line coding like COBOL or BASIC to object-oriented languages
like Java and C#, to quantum computer languages like Q#, the evolution of programming
languages has developed over the course of many decades.

O
 rigin of Programming
In the early 1840s, Charles Babbage proposed a machine called the Analytical Engine.
It was only a proposal—no actual machine was built, but one inventive woman by the
name of Ada Lovelace decided to write an article that provided detailed instructions on
how to represent Bernoulli [ber-noo-li] numbers, a recursive equation based on number
theory, on the Analytical Engine. This article is considered to be the very first computer
program.
Since then the devices that can be programmed went from theoretical to physical,
manual to automatic, analog to digital. With each evolutionary step, the way we program
computers needed to evolve as well.
With the birth of mainframe computers, data processing required instructions to be
sent to the machine to process and interpret the instructions from the programmer. This
was then applied to data to organize and analyze the data. Instructions were entered
through a keyboard, but without the benefit of a monitor, so everything was done
through printouts on paper or storing data in the form of punched holes on cards that
were stored in stacks. If you look carefully at text encodings and at some programming
languages, you’ll see things like “carriage return” or “print” that are carryovers from
those printer days from decades ago.

13
© Doug Winnie 2021
D. Winnie, Essential Java for AP CompSci, https://doi.org/10.1007/978-1-4842-6183-5_4
SPRINT 4 Programming Languages

As computers got smaller and more powerful, more languages were created.
Languages also were created to serve specific types of projects and industries like
mathematics and science, data storage, and graphics.
Today, we work with programming languages that can serve many different
purposes. In fact, a programmer often needs to use multiple programming languages
to get a project completed. As languages have evolved, they have become specialized
to complete specific tasks. As a programmer, you will use the best languages for specific
tasks and combine them together to create your project.
The programming languages you learn today will continue to evolve and change in
the future. With future waves of new technology, new languages will be developed to
allow programmers to drive even more innovation.

Forms of Programming
As programming has evolved over the decades, the types of programming you can do
have changed as well. Depending on what you want to do, there are different types
or forms of programming languages that work in different ways. As a programmer,
some forms of programming give you direct access to the computer processor, while
others abstract the hardware into more human language that needs to be translated or
converted into the native language of the hardware. Here are some example forms of
programming that you might encounter.

Machine Language
Machine languages allow programmers to code instructions directly to the processor or
hardware. Processors can be programmed by sending sequences and patterns of ones
and zeros through the processor to enable actions to take place. As a result, the code that
is entered by the programmer is almost natively written. Assembly language, which is an
abstraction of machine language, uses special codes to modify processor registers and
perform functions.

Interpreted
Interpreted languages are readable by humans more easily than assembly or machine
languages. The programmer writes the code and then runs it. A component called an
interpreter reads each line of code and then “interprets” it into native instructions for
14
SPRINT 4 Programming Languages

the computer. The process is much slower than machine language since the interpreter
needs to convert each instruction provided by the programmer, even if it repeats a line
of code multiple times—it needs to interpret it each time. JavaScript is an example of
an interpreted language. A programmer can stop the execution of the program, make a
change to a line, and then run it again without any other steps.

Compiled
A compiled language takes instructions written by a human and sends that code to
something called a compiler. A compiler takes the program instructions and converts
it to binary bytecode or native code for the hardware and creates a program called an
executable. This program is native to the hardware and operating system and can’t easily
be converted back to the original programmed instructions. With the code now in the
native computer format, it runs much faster than interpreted code, but if you need to
make a change, you need to adjust the original program instructions and recompile it to
create a new executable. If you are creating programs for multiple types of processors,
you need to compile unique versions for each native instruction code for the target
platforms. C is an example of a compiled language.

Object-Oriented
Object-oriented programming, or OOP, treats everything as an object. An object can
store values; perform actions, called methods; and accept and return values. An
object is defined using a template, called a class, that defines what an object can do.
A programmer can then create an instance of that class that has all of the capabilities
defined by the class. Java and C# are examples of object-oriented languages.

Data
There are languages that are specifically designed at working with data. One example is
SQL, pronounced as see-quel, which is a language designed for working with databases.
This is a query language, where you ask a database a question and it gives you a set
of data as a result. You can use SQL to combine multiple databases together to create
combinations that you can then analyze. R is another example of a data language. R is
designed for statistical computing and graphing.

15
SPRINT 4 Programming Languages

Functional
Functional programming approaches programming in a much different way. Think
of it like this: In a traditional programming language, which is called imperative, you
are defining the state of a value, object, or component. You create and define tasks to
complete, called an algorithm, that go from beginning to end. Functional programming
isn’t bound by an algorithm. In a functional language, you perform transformations on
values, like a function in mathematics. You take a value or object and modify it, with the
ability to string multiple transformations together using functions. Functional languages
focus on what needs to be done, without much care for how it is performed. Examples of
functional languages include Haskell, Scala, and F#.

Scripting
Operating systems regularly need to execute commands to configure servers, install
software, or perform maintenance. To automate that process, there are scripting
languages that allow systems like Windows, Linux, and macOS to save common
commands as a script that can be run multiple times or distributed to multiple
computers. PowerShell, perl, and bash are examples of scripting languages.
As you can see, there are multiple types of programming languages that you can
work with to perform different types of tasks. This course will focus on concepts found in
object-oriented, compiled, and interpreted languages like JavaScript, Java, C#, and Swift.

16
Random documents with unrelated
content Scribd suggests to you:
– Már pedig én a tulajdon szemeimmel láttam, még a selymet is
megtapogattam.
– Hát akkor én bolond vagyok? ordítá az asztal közepére ütve
Borsos uram. Micsoda istentelen asszony az, a ki az urát erőnek
erejével bolondnak csinálja? No megállj te pokolra termett, majd
megtanítalak én tégedet, hogy hiresztelje ki egy rossz asszony az
urát bolondnak. Hol egy kötél?
A jámbor asszony most bánta csak meg, hogy az illuminatióról
beszélt; szerencsére a ruhaszárító kötél ott kinn az udvaron egyik
szederfától a másikhoz volt kötve; s míg azt onnan Borsos uram
nagy kínnal leoldogatta, addig az asszonynak ideje maradt ajtót,
ablakot bezárni és eltorlaszolni, ilyenformán kinn rekesztvén a
fenyegetőző férjet.
Borsos István uram meglevén a kötéllel s nem tudván bemenni
az ajtón, képzelhetni, micsoda pogány dörömbözést mívelt azon;
összefutott a lármára az egész utcza népe.
A nénémasszonyék, a bátyámuramék csitították, engesztelték a
haragba jött férfiút, a mitől az még szilajabb lett: esküdött menyre
földre, hogy szétszedi házát, úgy veszi ki belőle a feleségét; mégis
megveri szörnyen; abból neki nem is parancsol senki, mert a ház is
az övé, meg a feleség is; hát ő neki senki se beszéljen.
A mint így összeröffent nénémasszonyék húzzák, vonják,
csillapítják, odavetődik a lármára Galgó szomszéd.
Galgó szomszéd belső ember volt: harangozó volt. Nem csuda,
ha több esze volt, mint másnak.
– Hát mi baj, szomszéd uram? mi baj? kérdi részvevő tekintettel
Borsos István uramtól, mit vesződik kegyelmed ezzel a sok
asszonynéppel?
– Mi bajom van? Hát hogyne volna bajom? Az a bajom van, hogy
a feleségem engemet bolondnak tart. Mikor azt meri a szemembe
mondani, hogy a zsidóknak selyemből lesz a diadalívük, meg
bársonyból. Hát bolond vagyok én, mi? vagy ökör, vagy ló?
– Ki meri azt mondani kegyelmedről: Borsos uram ló? Borsos
uram ökör? Én verem meg azt, nem kegyelmed.
– Hát a feleségem, az istentelen asszony. De törjem csak be az
ajtót, majd megmutatom én, hogy ki a bolond?
– Azt ugyan jól teszi kegyelmed, biztatá Galgó szomszéd István
gazdát; meg kell verni az asszonyt, ha valamit vét: pénz olvasva,
asszony verve jó. Én is segítek kegyelmednek. Hát mivel akarja
kegyelmed megverni? Ezzel a hitvány kötéllel? Ér is az valamit így,
hisz ez száraz. Ezzel nem fáj az ütés, csak csattog. Hét bőre van az
asszonyszemélynek, fel sem veszi a száraz kötelet. No nézze csak
kegyelmed.
Azzal Galgó szomszéd megfogja a kötél másik végét,
próbabizonyság kedvéért a maga hátára ütött vele egyet, kicsit,
Borsos szomszédéra is kettőt – nagyot.
– No ugy-e hogy nem fáj?
– Nem ám. Bizonyítá István, pedig bizony fájt az.
– Nem így kell bánni az asszonynéppel. Mert azt megszokja és
aztán fel sem veszi. Tanulja meg azt kegyelmed tőlem: mikor én meg
akarom verni a feleségemet, elébb beáztatom a kötelet jól sós
vízben; ott ázik estétől reggelig, egy egész éjszakán át; akkor lehet
azután vele verekedni, tudom, hogy a kit egyszer megverek vele,
soha sem kivánja többet.
Borsos István uramnak nagy világosság támadt a fejében.
– Helyesen beszél a szomszéd. Egész igazsága van. Azért nem
veszi semmibe az én feleségem a verést. Se nem sír, mikor ütöm,
sem a szomszédoknak nem panaszkodik, még csak haza sem szökik
az anyjához soha. Mert nem fáj neki. No megállj, kitanultam már a
módját. Majd máskép lesz az ezután. Hol a sajtár?
Galgó szomszéd előkereste neki a sajtárt, tele is merítette vízzel,
abba azután beleáztatták a kötelet.
– Már most csak sót még bele egy marokkal, hogy jó szivós
legyen. Így ni. Holnap reggelig hadd ázzék itt ez a kötél, addig
feküdjék fel szomszéd a padlásra, ne féljen: majd felköltöm én jókor,
s úgy elverjük közakarattal azt a gonosz asszonyt, hogy példát vehet
róla valamennyi.
– Ez a becsületes ember ni! szólt István gazda, Galgó szomszédot
megölelgetve. Nem hiába belső ember, látszik, hogy igaz ember. No
ha valaha baja lesz a városházánál, ha valaha be találják csukni,
csak én nekem szóljon; – soha sem felejtem el, hogy igazságomban
pártomat fogta. Azt a kötelet el ne lopja valaki. Azután reggel korán,
tudja kegyelmed, mikor a kakas másodszor kukorít!
– Itt leszek, itt leszek! bizonyozott Galgó szomszéd, betuszkolva
Borsos uramat a fáskamrába s lefektetve őt szépen a hárs-ágyra, a
hol el is szunnyadt szépen.
Győztek a kakasok kukorítani, a míg Borsos uram ott a sötét
kamarában felébredt. Galgó szomszéd be is harangozott, vissza is
jött, mire fel birta költeni nagy czibálásokkal.
– No szomszéd, ugyan jól megázott az éjjel a kötél.
– Micsoda kötél? kérdezi Borsos uram, a ki hirtelenében azt
képzelte, hogy beesett a toronyba az eső s a harangkötél ázott meg.
– Hát a kivel a kegyelmed feleségét meg akarjuk verni.
– Az én feleségemet! kiálta Borsos uram felpattanva. Azt
szeretném csak látni, hogy ki akarja az én feleségemet megverni?
Galgó szomszéd elnevette magát, Borsos uram pedig haragudott.
– Ilyen tréfákkal ne jőjjön nekem Galgó uram korán reggel, mert
a milyen igaz, hogy Galgó uram belső ember, olyan igaz, hogy ha
megkapom a pruszlikgallérját, mindjárt külső ember lesz erről az
udvarról, csak nekem arról beszéljen, hogy a feleségemet
megverjük. Mikor olyan asszony nincs több a városban. Aztán soha
egy ujjal sem nyúltam hozzá, a mióta összekerültünk…
Erre a beszédre az asszony is kijött, hozta a jó szívvidámító
pálinkát jó puha czipóval, letette a malomkőasztalra a szederfa alá. A
két szomszéd ivott egyet barátságpohárnak, másikat egymás
egészségére, harmadszor pedig azokért az áldott jó asszonyokért, a
kik az uraikat úgy megbecsülik, mint Borsosné asszonyom.
– Aztán ma meg kell nézni a parádét, monda Borsos uram Galgó
szomszédnak, ez meglévén, – mert a mi ma lesz, azt nem látja ám
Galgó uram ebben a pulykanyomos világban többet. Még a
zsidóknak is olyan magas diadalívök lesz, hogy a kegyelmetek tornya
elsétálhatna alatta. Ugy-e asszony, te magad láttad? S végtül végig
be lesz vonva virágos selyem- és metszett bársonynyal; ugy-e
asszony? minden irás igazi aranyból ezüstből! Elhigyje Galgó uram,
mert a feleségem látta. Estére aztán együtt vacsorálunk s együtt
nézzük meg az illuminatiót.
A mint hogy úgy is történt nagy örömben és vigasságban.
***
Tanulság pedig ebből az, hogy a kinek kedve támad a
verekedéshez, soha se verekedjék azzal, a mi a kezébe akad –
szárazon, hanem előbb áztassa be azt jól sós vízbe; engedje ázni
egy egész éjszakán át; akkorra azután a verekedő eszköz
megkeményül, hanem a harag meglágyul.
VII. EMBEREK ÉS KÉTLÁBÚ
ÁLLATOK.
Orbis pictus.
Mióta a nagy Plato kimondá, hogy az ember nem egyéb, mint
kétlábú tollatlan állat, világos dolog, hogy tollas és tollatlan kétlábú
állatok között nagy a különbség.
Amazok közé tartoznak a strucczok, gólyák és pelikánok, melyek
szárnyaikban hordják a tollat; hasonlóképen nemes cortes atyánkfiai,
kik ugyanezt kékre, zöldre festve kalapjuk mellett viselik; nem
különben az irók minden nemei és fajai, melyek a tollat füleik mellé
dugva mutogatják; a tudósok, kiknek tulajdonképen csak a kaputjok
tollas, s az úgynevezett jó férjek, kik téli estéken kedélyes rokkahang
mellett a tollfosztás nemes gyönyöreit segítik élvezni; míg az
ellenlábasok osztályában minden rendű és rangú tánczmesterek és
kötélverők, hajóslegények, pálinkafőzők, népszónokok, szuroköntők
és általában mind azon nemes természetek, melyeknek nem jut
alkalom magukat betollazhatni, foglalnak kisebb, nagyobb helyet.
Jelen sorok irójának van szerencséje ezen osztályok egyikébe
sem tartozhatni, miután egy csetepaténál a spanyol örökösödési
háborúkban egyik lábát elhordta a szakálas golyóbis; az egylábú
állatokról pedig sem Plato, sem a Duzsárd nagynevű irója egy szóval
sem emlékszik.
Ilyeténképen ki levén felejtve az emberiség catalogusából, lógva
a semmiben, mint Mahomed koporsója, mit tehessen szegény sánta
lélek egyebet, mint hogy azokra, kiket lábaiknál fogva embereknek
hínak, irigykedjék s őket rágalmakkal kisebbítse.

Ő
Őszinte vagyok, de ez már nekem nyavalyám, mint Hugo
Károlynak a dicsekedés és egyikünk sem tehet róla.
Én ugyan csupán a magam számára szoktam az embereket
rágalmazni, privát szenvedélyből, melyet nem birok magamról
levetkőzni s annyira még nem qualificáltam az orrfintorgatást, hogy
azt emberijesztésre használjam, s ha csak e fiatal szerkesztő
mágneses álmomban meg nem igérteti velem, hogy olvasói előtt
nyilvánosan kötélen fogok tánczolni – egy lábon: eszem ágában sem
lett volna, hogy valaha a Népvilág tisztelt olvasóit ijesztgessem.
Azonban szavamon fogtak, e fiatal úr addig fenyegetett, míg
igéretem be nem váltottam, már most ő lássa, ha olvasói kétségbe
fognak esni.
Ezennel tehát kezdődik az emberszólás:

ELSŐ RÁGALOM.
Egy férj, ki mindig párbajt ví.
Soha olyan vérszopó hyénát, mint az én Bankó Lajos öcsém,
mióta megházasodott. (A néven ne tessék megütközni, szép név volt
az, míg börzeárfolyam meg nem rongálta s a zsidók hittek benne.)
Én nem tudok rá ismerni, úgy elváltozott. Nőtelen korában a
galamb is griffmadár volt hozzá képest, ki a légynek sem ártott s
képes volt a legboszantóbb vexát elszivelni (mire bizonyság az, hogy
két egész hónapig lakott a F–ts-házban). A nagy világban ő volt a
társaság bűnbakja, a kinek a contójára pulykapirossá nevette magát
ebéd-vacsorakor a bort ivott sereg, – az volt istenesebb, ki legtöbb
élczet mondhatott rá, s hogy ilyenkor leggyöngédebb érzelmei
(pedig azok voltak nagy rakással) sem maradtak kimélve, valószinű
dolog. De mind ezeket ő épen fel sem vevé, sőt ily alkalommal oly jó
kedvvel tudott saját rovására a többivel együtt röhögni, mikép az
ember azt hihette volna, hogy őt mind az rendkívül mulattatja, a
mitől más lélek embert ennék és tüzet okádnék.
Voltak, kik néha gonosz akaratból rá akarták beszélni, hogy ne
hagyja magát! de Bankó öcsém ilyenkor annyi dictiót tudott
könyvnélkül a párbajok czélszerűtlensége felől s annyira csordultig
volt keresztyén felebaráti bocsánatkészséggel, hogy könnyebb lett
volna valakit egy itcze vízzel lerészegíteni, mint őt megbántója ellen
feltüzelni.
Ő volt az, ki soha szinházban nem pisszegett, kinek soha más
véleménye nem volt, mint a szomszédjának; ki minden szerkesztő
előtt le szokta venni a kalapját; – egy szóval: rettentő félénk és
jámbor ember volt.
Azonban minden rútul megváltozott, mióta a fiu feleséges ember.
Garázda, házsártos, ákáczius lett egyszerre (persze oda haza),
finnyás, mint egy parvenu; kötekedő, mint egy előfizetőtlen lap
referense; impertinens, mint egy mazur-előtánczos; és dörmögő, a
milyen csak egy férj lehet – otthon.
Legalább ilyféléket beszéltek róla a szállongó hírek.
Annyi azonban historiai igazság, hogy tekintetes Bankóné
asszonyság szakácsnéja egyszer és másszor különös dolgokat hallott
a kulcslyukon keresztül, melyeket, minthogy titokban akartak
maradni, nagyon sokan tudnak.
Bankóné asszonyság egyike volt hajdankori choleraelőtti
ismeretségeimnek, kin legelőször tanultam a szépet tenni, mikor
külhoni utazásomból visszatérve, a præfectust lerázhattam
nyakamról.
Díván Euphemiának hítták az áldott lelket, míg meg nem
tekintetes asszonyosult; hajdanában nagyságos uramatyám
uriházánál nevelkedett – nem tudni, minő qualitásban –, később jól
megnövén, a méltóságos mama kisasszonyainak társalkodónéjává
neveztetett ki, mely hivatalban kisasszonyhugaim szeretetreméltó
capriceait tűrve, élt hosszú esztendőket, melyeknek folytában egy
quiétált major, ki gazdag volt és a mellett éktelenül ragyás, miután
legkisebbik kisasszony hugomtól, kit előttem két esztendővel
keresztelt maga az esperes Georginának, solemniter kosarat kapott,
úgy megharagudott, hogy boszujában Euphemiát megkérte és
elvette. Persze, hogy nem élt esztendeig.
Rövid idő mulva Bankó öcsém megismerkedett Euphemia
financialis állapotával s nyomára jött, hogy tizezer forintja van
készpénzben, készülőben levő pénzben talán több is, s mind ennek
az lett a vége, hogy Bankó öcsém megházasodott. Ez volt rá nézve a
tropicus capri corni.
Egy napon (sőt még tán reggel volt; ez az ostoba
paraszttermészetű nap sehogy sem tudja magát alkalmazni a bon
ton szabályaihoz; felkel, mikor a nobel világ még javában aluszik;
délt mutat, mikor a haute crême még a reggelihez készül, s feküdni
megy, mikor a fashionabel ember ebédhez ül) tehát egy reggel,
midőn kandallóm vidám melegénél fauteuillemben ülve,
csokoládémat szörpölgetém (a kandalló füstölt, a csokoládé pedig
keserű volt), egyetlen megmaradt lábamat az asztalnak vetve,
helyzetem comfortját azzal rongáltam, hogy a divatlapból
humoristicus dolgokat olvastattam fel magamnak (biztosíthatom
szerkesztő urat, hogy e felolvasásban sokszor keresek mulatságot,
mert tudvalevő dolog, hogy morva komornyikom egy drága kukkot
sem tud magyarul, s ezt hallani aztán, ha fennhangon el kezdi
olvasni a gyilkoségető novellát, melyből egy szót sem ért, s mellé
látni a savanyú morva pantomimicát, melylyel azt a legfonákabbul
illustrálni törekszik: e declamatorius czigánykerékhányásnál magának
a halálos spleennek is füléig repedne a szája nevettében), tehát
öltem az időt, midőn minden bejelentés nélkül, mire hajdani
ismeretség bizalma jogosítá, rámront Bankóné asszonyság iszonyú
derangirt állapotban, a shawlja visszájárul felkötve és plane keztyű
nélkül. (Meglehetősen megbarnultak a kezei, mióta férjnél volt.)
– Ah, édes Ó úr! végem van, oda vagyok!
(Közbenvetőleg mondva, ne méltóztassék azon hiszemben lenni,
mintha ez az Ó, mely iratom végén ragyog, valami szeszélyes álnév
hieroglyphja lenne; ez valóságos tisztességes vezetéknevem,
melyhez oly úton-módon jutottam, hogy idvezült nagyapámat, ki
becsületes serfőző volt, mielőtt magyar nemessé aranyoztatta
magát, Altnak hitták, s innét fordíttatta nevét magyarra, Ó-nak, mely
annyit tesz, mint régi. Kétségtelenül legrövidebb név a világon,
melynek mását John Bull hazája sem állítja elő.)
Tehát az asszony, úgy láttam, hogy szeretné, ha el tudna ájulni.
Inték a morvának, hogy tegyen neki széket.
– Ah, édes Ó úr! nézze csak, olvassa e levelet, sipánkodék a jó
hölgy nagy prosopopæával s egy meggyűrt levelet tett le elém az
asztalra, zsebkendőjével hol a szemeit, hol az orrát törülve. (Ah,
milyen prózai dolog az a sírás, milyen vörös lesz az embernek az orra
tőle!)
Alig várta, hogy végig olvassam a levelet. – Hát látott ön ily
iszonyú tigrist? kérdezé kezeit kulcsolva.
– Megvallom, hogy nem láttam. – Bankó öcsém azt irta a
feleségének, hogy ma reggeli nyolcz órakor a budai hegyek között
élethalálra víni fog N. N. urammal (itt egy vad pávián nevét irta oda,
melyet sem annakelőtte, sem annakutána nem hallottam).
– Mit csináljak, én uram Istenem? jajveszékelt a hölgy, mikor
látta, hogy meglepetésemben a kezemben levő csipővasat nem
nyeltem el.
– Menjen haza madame és olvassa Lamartinet.
– Könnyű önnek tréfálni, de Lajit megölik, megcsúfítják,
agyonszúrják s mi lesz én belőlem?
– Ugyan Euphemia, ne akarjon hát elbolondítani, tisztelje ősz
fürteimet; hitessen el ilyesmit fiatal szerkesztősegédekkel, vagy
orvosnövendékekkel, de ne én velem. Ön férje csupán érdekessé
akarja magát tenni, hisz a tranchirkésen kívül egyéb fegyver sem
volt a kezében soha.
– Dejszen. Laji igen hevesvérű ember, neki igen sok párbaja volt
már, tudom: maga kivallotta, sebeket is kapott.
– Ha csak a borbély meg nem metszette borotválás közben.
– Istenem! hisz én önhöz vigasztalásért jöttem, nem hogy
kicsufoljon.
– No, Euphemia, hisz azért ne haragudjék; tudhatja, hogy én
nőktől soha sem tagadtam meg a vigasztalást, hogy ezuttal épen a
gúnyt találom kegyed keservei leghatályosabb ellenszerének (volt
idő, mikor mást találtam, hanem azt hagyjuk abba, az nagyon régen
volt). Legyen megnyugodva a felől, hogy ha Laji valakivel csakugyan
verekedik, úgy azon valaki nem lehet félelmesebb vadállat egy
himszunyognál s választott fegyvere hihetőleg légycsapó lesz, vagy
vizipuska.
De hiába! az asszonynyal nem lehetett elhitetni Laji jámborságát
s mindaddig meg nem szabadultam tőle, míg kezem irását nem
adtam, hogy a mekkora sebet fog kapni Laji a hátára, vagy akárhova
máshova, én akkorát hagyok az orromon hasítani. Ez megnyugtatta
végre és elment. Szegény asszony! úgy szerette azt a himpellért. A
nők soha sem szünnek meg szeretni. – Nem reményleném, hogy
valaki e «sohasem» szóban czélzást vélne észrevenni Euphemia 49
éveire, hisz én magam is épen annyi idős vagyok, legfiatalabb
kisasszony hugom pedig, kit maga az esperes keresztelt
Georginának, pláne két évvel több.
Mint jó előre megjövendölém: Bankó öcsém késő este vetődött
haza; egy csontja sem hiányzott, hanem tetőtül talpig részeg volt.
Euphemia a fölötti örömében, hogy Lajikája nem fej nélkül jött haza,
nem sokat törődött annak rendkívüli bóbitájával s félrebeszéléseinek
okát hajlandó volt a lelkiismeret mardosásaiban keresni, erős
hiszemében azon szerelmetes hazugságnak, hogy Laji ma reggel
fentisztelt ellenfelét úgy lekaszabolta, hogy abból többet – ha csak
az angyalok nem – embert ugyan senki sem csinál. Egy hétig azután
azon imádkozott a szegény asszony, hogy bárcsak azon boldogtalan
ellenfél, kit Laji úgy feltranchirozott, meg ne haljon férje lelkére; a mi
csakugyan nem is történt meg; gondja levén a sorsnak arra az
egyre, hogy a ki nem született, meg se halhasson.
Ilyen ludat csinált Bankó öcsém az ő áldott feleségéből,
valahányszor excedálni akart. Minden héten volt valami párbaja.
Euphemia reggelenként egyremásra ilyen tartalmu czédulákat talált
asztalán: «ha holnap reggelig vissza nem térek, sirass meg; mert
többé nem látod – Lajidat»; – ismét másik: «midőn e sorokat
olvasod, már én akkor talán a halál hideg küszöbén állok, s ott is
reád emlékezem»; – majd megint: «imádkozzál érettem, könyörögj
az égnek, hogy fegyverem szerencsés legyen». «Iszonyú bűnt
megtorolni megyek: ha meghalok, tudd meg: hogy az te érted
történik és a szent becsületért.» – A szegény asszony ilyenkor majd
a várost vette fel siralmaival, Bankó öcsém pedig késő estig
tivornyázott korhely pajtások és szegődi tánczosnők társaságában;
tudva, hogy ha épkézláb hazatér, honn nemcsak hogy szidást nem
kap, sőt ölelő tárt karok fogadják. Egyszer azonban ily alkalommal
egy falhoz vágott boros palaczk forgácsai oly szerencsétlenül találtak
Bankó öcsém képének röpülni, hogy rögtön egész arczát,
nyakkendőjét és mellényét elborítá a vér, s másnap arcza úgy nézett
ki, mintha chaldeai betűket irtak volna rá. Ez idő óta Euphemia
tökéletesen hitt a duellumban; csak azt nem birta megmagyarázni:
vajjon gereblyével, vagy tojáshab-verővel duellálnak-e ott, hol az
ember ily czifra sebeket kap?
Ez így tartott hat hónapig.
Végtére is én voltam az első, ki meguntam a dolgot, nem is
annyira a kénytelen vigasztalás miatt, mint azon boszúságból, hogy
ez az ember félév óta mindig egy élczen nyargalózik. Nem, – Bankó
öcsém! találj ki már mást, ez elég sokáig tartott. Egyszer tehát,
midőn Euphemia ismét szívszakadva iramodott hozzám a rendes baj
panaszával s épen azt akarta tőlem megtudni, hogy mi vérengzőbb
állat az oroszlánnál, hogy Lajit ahoz hasonlíthassa? megkérdém tőle,
hogy nem volna-e kedve velem együtt a viadal helyén megjelenni s
ez által a veszedelemnek elejét venni?
A madame kapott az ajánlaton. Rögtön bérkocsit hozattam,
fogtam a mankómat, felültünk és legelőször is hajtattunk az akáczfa-
utczába; itt lakott Ludmilla kisasszony, tánczosnő a német szinháztól,
ki Don Sebastianban szokta a fátyoltánczot másod magával járni,
hogy akármely smirnai bajader se különben. Bankó öcsém ennek
szokott incognito koszorúkat hajigálni a karzatról, s gyakran lehete a
deli bajader táncza végeztével egyetlen egy szál tapsot hallani a
gallerián. Az Bankó öcsém volt. Ludmilla kisasszony pedig oly bókot
vágott vissza érte az egész közönségnek, mintha minden mécs egy-
egy claqueur-chef lett volna, mely az ő pas de merveillejeit
halhatatlanítni született.
A tisztelt mamsell nem volt otthon; szobaleánya, ki az ajtót
kinyitá, mindaddig nem tudta, hogy hova ment, míg egy tízpengőst
tenyerecskéjébe nem szoríték; attól nagynehezen eszébe jutott,
hogy a halhatatlan művésznő most alkalmasint a Városligetben lesz.
Mentünk tehát a Városligetbe. A sétány alatt egy üres bérkocsi
állt, itt mi is kiszálltunk s én Euphemiával lesántikáltam egész a
tópartig, hol magányosan elhagyatva, egy fűzfa alatti padon valami
fehér alak ült.
Messziről ráismerék a szinpadok és choreák királynéjára s
egyenesen neki tarték.
A Tündér Ilona úgy látszott, mintha nem akart volna bennünket
bevárni, hanem rá kiálték:
– Ah, bon jour, mademoiselle! De ne szaladjon hát, az Isten áldja
meg, hisz látja, hogy kettőnknek van három lába.
Megállt. – Ah, kegyed az Herr von Ó? sipegé nyájas coulissa-
mosolylyal; hol jár itt ily korán?
– Hála Istennek, hogy még korán járok; egy fiatal barátom e
helyen párbajt akar víni, azt kell megakadályoznom.
– Párbajt? viszhangzá Ludmilla kisasszony, s el nem tudta találni,
hogy milyen képet csináljon e szavaimra; párbajt! és kicsoda?
– Ennek a fiatal hölgynek a férje, a ki itt a karomba csibenkedik:
az a bohókás Bankó Lajos, hogy a tatár vigye el.
Az én tánczosném kicsinyben mult, hogy nem skizzirozta magát e
szóra; de megfogtam a kezét.
– Lássa kegyed, mondám, ez a vérszopó vadállat oly kényes a
point d’honneur dolgában, hogy mihelyt valaki görbén néz rá,
mindjárt provocálja. Csupa tréfadolgokért több embervért kiontott
már, mint Báthori Erzsébet.
Euphemia bizonyítá, hogy úgy van. Ludmilla pedig olyat csípett
kezemen, hogy elsikoltám magam.
– Emberdobogást hallok, ha nem csalódom. Oh maradjon itt,
kérem, szép kisasszony, kegyed is segítsen nekünk ezt a jaguárt
lebeszélni véres szándokáról, szép hölgyek szavai mindig
hatályosabbak szoktak lenni ilyen alkalommal, mint férfiak hideg
észlelései.
A kisasszony kénytelen volt engedni a szép szónak, hacsak egyik
kezét a tenyeremben nem akarta hagyni, a mivel megjártam volna.
Mind hárman leültünk egy közel bosquet alá. Euphemia engem
fogott, én pedig Ludmillát fogtam.
Kis idő mulva iszonyú füttyhangot hallánk közeledni, gyilkos czifra
csikós nótát, úgy kikanyargatva, hogy akármelyik czeglédi kisbéres
se szebben. A fütty később a torokra kezde szállni s hangzék a
legbájosabb borjutenorban «Oh égi üdv te vagy csupán»…
– Ez már hideg vér, mondám, halálos párbaj előtt így megütni a
magas E-t. Az én hölgyeim pedig reszkettek, egyik jobban, mint a a
másik. Mindenik tudta: miért?
Végre előtünt az én párbajt vívó pacsirtám s mintha bizonyos
volna dolgáról, egyenesen a bosquetnek tartott, melynek ágain
keresztül fehér ruhákat látott átcsillámlani, saját feketeségemet
észre nem véve.
Itt megállt, balkezét szivére tette s nyakát félreszegve, felmeredt
szemekkel épen oda ért már, a hol «lelkem az égbe száll», midőn
Euphemia nem tarthatva tovább magát, kirugaszkodik a bokorból s
Bankó öcsémet úgy nyakon öleli, hogy az rögtön sóbálványnyá
változott.
Még soha embert ijedtében meghalni nem láttam; de most
hittem, hogy látni fogok.
Annak a tátva maradt szája a benneszakadt trillával, a halálfehér
képe, felmeredő haja, megfagyott szeme, szétdermedt ujjai:
valóságos eleven mumia.
– Megijedtél tőlem, ugy-e rossz ember? feddé szelid
szemrehányással Euphemia, már megint verekedni akartál, nem elég
volt engem eddig busítani? te, te rossz ember!
Bankó beszélni látszott, de ez olyanformán ütött ki, mint mikor az
ember kénégeny-álomból ébred föl s azt hiszi, hogy igen okosat
mond.
– Én – imádott Phémi – talán – nem – haragszom, – akarom
mondani – ne haragudj; – nem erre – hiszen – sehogy – ma délután
(NB. még reggel volt) – a tenger, – akarom mondani, a piacz –
gyalog, – az óra – felment a toronyba, – kitörte a lábát; (Bankó
öcsém ijedtében arról akart beszélni, a mit útközben hallott, hogy a
piaczon az órásmester leesett a toronyból.)
Féltem tőle, hogy most mindjárt valami otrombát talál hazudni s
elárulja magát, s egyik kezemen mankómat, másikon a kékre zöldre
sápadt Ludmillát vezetve, eléje biczegtem én is.
A mint a fiu minket is meglátott, tökéletesen odalett és
megnémult mint Tigris Robertben a királyleány.
Magam pedig, hogy az érdekeltek megzavarodását elsimítsam,
roppant komoly dictiót tarték a fiunak a párbajok czélszerűtlensége s
az embernek saját maga és családja iránti kötelességei felől.
Megmondám Bankó öcsémnek, hogy ha máskor élethalálra
párbajt akar víni, azt ugyan okosan teszi, ha – mint jelenleg is –
tanúk nélkül végzi el; hanem még okosabban teendi, ha ily
gyilkosságok szinpadául kevésbbé nyilvános helyeket választ. Ő
azonban menyre-földre esküdött, hogy soha sem bánt többet senkit.
– Hát – igazság! – ellenfeleddel mi fog történni? kérdé Euphemia,
miután férje szakállát könyeivel és csókjaival illően benyirkosítá.
– Majd mi ketten elbánunk vele, mondám, karomat nyujtva a
szabadabban lélekző Ludmillának, melyet ő azonban – dicséretére
legyen mondva – el nem fogadott.
És ezen idő óta mind a hárman borzasztóan apprehendálnak rám.
Euphemia azért, hogy férje párbajaiban kételkedtem, Bankó öcsém
és Ludmilla pedig – Isten tudja miért?
Bankó öcsémmel, ha találkozom az utczán, úgy köszön, hogy rám
se néz, morogva magában: te sánta ördög; – Ludmilla még a
szinpadról is oly szemeket vet rám, ha meglát, mintha apját anyját
öltem volna meg; szinte látom, hogy másféllábú jambusnak nevez,
ha maga van; Euphemia pedig már messziről szemrehányó ujjakkal
fenyeget; mondva: ön, ön Istentagadó!»
VIII. SIC VOS NON VOBIS.
Lakott a mi városunkban egyszer egy anglus. Tekintetes
Hajmaföldy Sámuel úrnak hítták. Született itt a continensen, oda
lenn, Nyirbátorban. Soha, sem ő, sem valahány apja volt, édes apja,
nagyapja, ős apja, szép apja, csunya apja, és keserves apja egy szót
sem tudtak anglusul soha, még a tájára sem jártak annak az
országnak, egyenesen Ázsiából jöttek ki lóháton. Sámuel urat mégis
anglusnak hítták.
Mert ismerni kell azt a passióját ennek a mi városunknak, hogy
ez mindenkit, a ki nem szakasztott ismerőse, szeret újra keresztelni,
megbérmálni, megajándékozni extratitulusokkal; a hogy pedig a
nemzetiségi rovatokat szokta kezelni, az meg plane túl megy minden
egyenjogosításon.
A pápistát nevezi németnek, a kálvinistát magyarnak, a boltost
görögnek; a kire haragszik, zsidónak, a polgári zenekart polgári
czigánynak, sőt mióta egy hajdani franczia nyelvmester egyúttal a
város hivatalos levélkihordói hivatalát is viselte, azóta minden utána
következett levélkihordót francziának neveznek ott helyben.
Sámuel úr is ilyenformán jutott Angliához, s ezt némi részben
maga is úgy akarta. Eleinte tetszett neki ez az elnevezés, míg csak jó
pajtásaitól hallogatta, midőn ki-kijött az utczára valami bolondos
frakkban, derekával a hóna alatt, s hosszú fecskefarkával a lába
kásájában, a kis lencsényi gimbek gombok fel voltak varrva a háta
közepére; vagy mikor végig íjesztgette az utczát valami embertől
soha nem viselt alakú kaputrákkal, melynek azon felül hogy nyolcz
zsebje volt, zsemlyenagyságú gombjai hátul az inánál álltak meg.
Tetszett neki, hogy őt az emberek nézik, s hogy még jobban
megnézzék, leborotvált a képéről minden oda tartozó növevényt,
úgy mutogatta magát. Képzelhetni, hogy ez mekkora sensatiót
okozhatott, oly vidéken, a hol a papon kívül nem láttak még
bajusztalan férfit. Hanem mikor egyszer bement egy boltba vásárlani
s a fiu azzal fogadta, hogy «mivel szolgálhatok ő anglusságának?»
elkezde haragudni az elnevezésért, összeveszett, botba futott
mindenkivel, a kávéházban kiszúrta a parapléval egy embernek a
szemét, s azt nyerte vele, hogy ezt az experimentumot is valami új,
még eddig nem producált anglus maniernak vették tőle, s még
jobban rákaptak. Végre is azt találta ki, hogy nem jött ki a házból,
befalaztatta valamenyi utczára nyiló ablakát, a kerítését fölemeltette,
nem beszélt semmi élő teremtéssel s ily módon tökéletesen
meggyökeresíté azon elővéleményt, hogy anglus, melyet eleinte
különczködésből, később haragból, végre kénytelenségből idézett
magára.
Mikor én ismerni kezdtem, már akkor vén ember volt. Igazi nevét
annyira elfelejtették már, hogy csak hivatalos kérdezősködés után
lehetett hozzá jutni. Szomszédunkban lakván, pulykáink sokszor
átrepültek a kertjébe, s ha ilyenkor átmentem hozzá, mindig nagy
dohogva kergetett ki onnan, s midőn egyszer rajta kaptam, hogy a
kútban halászott egy hosszú horoggal, hova piaczon vett halakat
szokott eregetni, azt igérte, hogy meglő.
Egy időben különös fixa ideája kezdett támadni. Elhitette
magával, hogy neki feleség kell és e mellett azt is, hogy a már
meglevő, férjhez menendő némberek közől neki egyik sem kell; hogy
ő maga magának fog feleséget nevelni, egy növendék gyermekből,
ki még a világ hivalkodásai által nincsen bal útra vezetve.
Lakott vele átellenben egy hosszú, sovány, nagytenyerű borbély,
a kit, mivelhogy ha fázott, képe oly kék volt mindig, mint a szilva,
csakugyan szilvának is neveztek városszerte, a kinek kilencz
magzatja volt, mind a kilencz leány, a legidősebb kilencz esztendős
és így sorban a többi.
Ettől kért egyet az anglus. A borbély nyolczat akart neki adni. Az
anglus nem fogadott el annyit, ő csak egyet akart boldogítni.
Kiválasztá tehát a kilencz közől a legjámborabbat, a legpozsgásabbat
és a legkevésbbé kancsalt, mert a borbély szülöttei különös családi
jelességképen mind görbe szemmel nézték a világot.
Az örökbe fogadott leánykát Zsuzsánna névvel találták
keresztapjai megajándékozni, az anglusnak ez derogált s meghagyá,
hogy ezentúl Izabella kisasszonynak fog neveztetni.
A leány ezután szépen nőtt fölfelé. Fogyasztotta a czukrot, meg a
képes könyveket, s Sámuel úr örvendve tapasztalá, hogy már is mily
szeretettel ragaszkodik becses személyéhez, mily gyöngédséggel fut
eléje, ha valahonnan megjön, s mily szenvedélylyel kutatja ki mind a
nyolcz zsebét kaputján, füge és czukros mandola végett s ha néha a
szakácsné megengedte, hogy a konyhán egyik vagy másik lábosban
megforgassa a főzőkanalat, mily lekötelezőleg tudta mondani
ebédnél az öreg úrnak a kitálalt holmire: «ezt én főztem».
Az anglus el volt ragadtatva ennyi ragaszkodás által. Pedig abban
semmi rendkívüli sem volt, akárki is szereti az öreg apját, mind
addig, míg feleségül nem kell hozzá menni.
Mikor aztán már a leány annyira ment, hogy kezdett semmit sem
tudni, mikor már semmi cseléd nem állhatta ki tovább, Sámuel úr
jónak látta őt elküldeni a növeldébe, s ott hagyni, a míg megnő, s
majd csak készen venni át.
Ezentúl aztán egész tizennyolcz éves koráig nem látta Zsuzsabella
kisasszonyt az anglus, hanem minden évben kapott tőle rendesen
kétszer levelet, megtöltve irott szarkalábakkal, – minden
születésnapján egy kis fogpiszkálót vagy óratokot, s minden
évnegyedben egy nagy árjegyzéket: felfogyasztott tű, czérna,
papiros, plajbász, gyöngy, selyem, hárász, toll, tenta és kitörött
ablakokról s ilyenkor soha soha sem mulaszthatá el magával azon
észrevételt közleni, miszerint vannak piszkálók és óratokok, melyek
igen sokba kerülnek.
Mikor aztán a tizennyolcz évet ütötte az esztendő, nekiindult
Sámuel úr a szomszéd városnak, a hol a nevelőintézet lakott,
jövendőbelijét a szellemi üvegházból a házasság paradicsom-
kertjébe átültetendő.
Nyolcz esztendeig csak azért nem nézett felé sem, hogy majd ha
egyszerre meglátja, az e közben történt átváltozás hatása rettenetes
legyen. Csakugyan rettenetes is lett.
Zsuzsabella ez alatt megnyúlt, megnyurgult, keze-lába megnőtt,
képe neki terült s a mi legjellemzőbb lett benne, oly sárga színt ölte
magára, mintha kéngyertyával lett volna kifestve. Ez attól van,
biztosítá Sámuel urat a madame, mivel a kisasszony minden
elővigyázat daczára marokkal ette a meszet, meg a nyers pörkölt
kávét, mikor hozzá jutott.
Sámuel úr azt hitte, hogy nem tesz az semmit, nem venni azt
észre s felpakolta a csézába a sárga plusquamperfectumot, ki is az
egész úton olyformán tette próbára Sámuel úr türelmét, hogy
elmondott neki mindent, a mit a nevelőben tanult, geographiát,
physicát, Chinában lakó városokat, szárazföldi czethalakat,
technologiát, porczellánkészítést stb. stb.
Sámuel úr csak attól félt, nehogy angolul is tanult legyen. Azzal
megölte volna.
– Tudja bácsi, micsoda Pattagoniának a fővárosa? Látja én tudom
– «Dublin»…
– Tudja bácsi, mit eszik az armadilla?
– Az ármádia? Prófontot, fiam.
– Haha! az armadilla! a pikkelyes armadilla! Lám én azt is tudom.
Fülemüle-tojást. Nem biz az, a hangya eszik fülemile-tojást, az
armadilla, – magyarul hangyászmedve, – az – az – izé – izét eszik, –
édesgyökérrel él.
– Hát azt tudja-e bácsi, hogy miből csinálják a porczellántányért?
– Azt tudom fiam, hogy te minden héten eltörtél otthon kettőt.
– Haha! Hát egy adag szén, meg két adag salétrom és három
adag kéngyertya…
– Abból aztán majd lesz puskapor.
– Hát azt tudja-e bácsi, hogy ki hozta be Amerikából a krumplit?
– Nem bánnám én, fiam, ha ott hagyta volna is.
– Haha! Gutenberg…
– Hát azt tudja-e bácsi, hogy miért van holdfogyatkozás, lám én
tudom. Mert a nap eltakarja a holdat a föld elől.
– Hát azt a szép verset tudja-e bácsi: Kennst du das Land, wo die
Citronen blühen? Nagyon szép vers, Herr Wojta csinálta, a ki irni
tanított bennünket.
– Hát francziául tud-e bácsi? Barlé fu fránszé? Érti? Tudja-e, mit
tesz az, hogy «sé fu zém té dú mon kér?» Hihi, úgy-e furcsa?
Az anglust a veríték verte. Azt várta, hogy most mindjárt a
«haudujudú»-ra kerül a sor s nézte, hogy merre lehet kiugrani a
kocsiból? Szerencséjére azonban most a reáltudományokra tért át az
examen.
– Látta már bácsi a mustrapántlikámat? Melyik tetszik belőle
legjobbán?
– Ugy-e szép volt az a rózsa, a mit nevenapjára festettem?
– Hát az rózsa volt, fiam? én pipacsnak néztem.
– Ugy-e szépen tudok zongorázni, bácsi? Hát még ha a
«Potpourri für die Jugend»-et hallaná; az ám a szép opera.
– Tud-e bácsi kacsukát tánczolni? Látja, én azt is tudok.
– Kancsukát? Hisz az fájhat.

Ú
– Ugyan ne tréfáljon. Nem kancsukát. Úgy van irva, hogy
«chachucha».
– Kakuka? A kakuk tud, fiam. Elég, ha te tudsz.
– Főzni is tudok ám – szereti a dara smornit?
– Az apám is attól halt meg, hogy egyszer megkóstoltatták vele.
– Ugy-e még énekelni sem hallott. Disquantot énekelek, a
hangom igen szép, egy kicsinyt ternolo is, a mi nagy ritkaság.
– No fiam, majd megpróbáljuk otthon a templomban.
Az anglus nagyon meg volt elégedve, a leány mindent tudott a
világon, a mire csak szükség volt a háznál, mire nézve, a mint haza
értek, kezébe szolgáltatta a ház kormányzatát, hogy intézzen el
mindent, a mint legjobbnak látandja.
Lett is reorganisatio. A miniszterium tárczákat cserélt, a
szakácsnéból lett szobaleány, a kukta promoveáltatott tehenésznek s
a kocsisból lett kertész, a konyha belügyeit maga a kisasszony vette
kezei alá. A szállások új felosztásban részesültek, a pipázó szobából
lett ebédlő, a zongora a dolgozó-szobába ment, s Sámuel úr
hálószobája a legbelsőbe rendeztetett el, úgy hogy ő sohasem
kelhetett elébb, mint míg a közbeeső szobák népei felöltözködtek, s
ha dolgozni akart, tehette zongoraszó mellett, és mikor ebédelt, rajta
hordták keresztül a vizet a konyhába. A kert is nagy átváltozáson
ment keresztül, a luczernás helyébe tulipántokat telepítettek, a
veteményes kert helye bevettetett provisorie kaporral, s egy része
bekebeleztetett a virágágyak közé, a baromfias udvarba a
közbátorság fentartásául sinkoránok eresztettek a rókák és
menyétek elűzése végett. Ezek aztán maguk megették a libákat. A
teheneket fejték, de enni nem adtak nekik, s a tyúkokat hizlalták
paréjjal, tudván, hogy azt a malaczok szeretik. Egyszóval fenékkel
felfordult az egész administratió.
A mi pedig a konyhai igazság-kiszolgáltatást illeti, az épen
minden kritikán alul esett; a levesek meg voltak irgalmatlanul
fűszerezve borssal, gyömbérrel és kozmával; jöttek csudálatosnál
csudálatosabb ételek napvilágra, zsír helyett megvajazva, só helyett
megczukrozva, s fövés helyett megsütve, hogy jámbor ember félt
velök négy szem közt találkozni, jelentek meg savanyú káposzták
mandolával és mazsolaszőlővel, s hetenként kétszer járta a tejben
főtt dara, a mit pedig Sámuel úr szivéből gyűlölt és lenézett.
– Nem fiam, ez így még sem lesz jó, szólt végre egyszer
Zsuzsabellához az anglus, nem állhatván a dicsőséget tovább, csak
hadd főzzön ezután is a Jutka, te pedig légy kisasszony s ülj a
zongora mellett.
A conservativ rendszer helyre álltával, lőn kínja a füleknek. Mert
nemcsak az, hogy napestig vége nem szakadt a zongora-agyalásnak,
hanem a mellett hallhatta, a kinek kedve volt, azt a pípesen
nyekegő, nyafogó mik-mákolást, a mit merész phantasiával
éneklésnek is lehetett volna nevezni, azt a vékony, drótonhúzott
hangot, mely akár lenn járt, akár fenn, mindenütt egyforma
élességgel metélte a levegőt s illetőleg a közellevők füleit.
– Lelkem Bella, szólt egyszer az öreg úr a zongoradöngetőhez,
megsajnálván azt a szegény gyomrozott állatot, danoltál már nekem
eleget, danolj vagy egyet másnak is, lépj föl nagyobb közönség előtt,
nem mondom, hogy profánus szinházban, sőt inkább nagyon is
istenes helyen, a templomban.
Nem kellett neki sok biztatás, nem sokára híre terjedt, hogy
ekkor s ekkor az anglus kisasszonya énekelni fog a templomi
zenekarban.
Az nap a mise szokottnál látogatottabb volt, sokan kiváncsiak
voltak, ott volt maga Sámuel úr is, de biz abból nem hallott senki
semmit. A különben vékony hang a félelem miatt annyira elpusztult a
trombiták és bőgők kisérete mellett, hogy abból emberi fül egy igét
sem kapott el.
Sámuel úr hosszú képpel vezette haza karon fogva Zsuzsabellát
«nem tud biz ez semmit, mondá jó magában, no de legalább szép és
az enyim, s nekem ez is elég».
Ekkor valami ismerőse találkozott vele, a ki rég nem látta, ki is,
hogy megpillantá Sámuel úr karján azt a nem is annyira fehér
cselédet, mint sárga cselédet, féltréfálva azt találta tőle kérdezni,
hogy hol vette azt a birsalmát?
Minden illusio oda volt. Sámuel úr soha sem tudta többé kiverni
fejéből azt a «birsalma» szót, annyira megfeküdte a phantasiáját.
Tehát nem is szép, gondolá magában, Isten neki, de legalább szeret,
s olyan a milyen, be kell vele érni.
Ideje lőn azonban, hogy már egyszer meg kelle magyarázni a
leánynak, hogy mire való bölcs intézkedése az a természetnek,
miszerint az egyik ember férfi, a másik pedig asszony; mert ha meg
nem magyaráznák neki, hát nem is tudná meg azt soha.
– Látod fiam, szólt Sámuel úr komoly ünnepélyességgel a
birsalmához, maga mellé ültetve azt valami akáczfa alá, mert nagy
és nemes hivatása van ám az asszonyi nemnek.
Zsuzsabella kezdett elpirulni, mi arcza sárga voltára igen kedvező
változást gyakorolt.
Az emberi szívnek vannak titkos kivánatai, miket nem bir
magának kifejezni.
Zsuzsa felsóhajtott.
– Később azonban megtudja, hogy e titkos óhajtások kútfeje – a
szerelem.
Zsuzsa el akart szaladni.
– Bella lelkem, te sem vagy már gyermek, szólt megkapva a futni
akarót az anglus, ide s tova férjhez is kell menned.
– Nem merem én azt, szepegé az ártatlan.
– Kell merned, gyémántom, tőlem semmit se félj, én semmi
kivánatodnak ellene nem állok, teljesítem a mit akarsz, mert vétenék
a természet ellen, ha nagy és nemes kötelességedet elő nem
mozdítanám. Azt jól tudhatod, hogy én mindig különös szeretettel
viselkedtem irántad.
Zsuzsi lesütötte szemeit s a kezében levő batiszt kendőt félig
betömte a szájába.
– No én nem kivánom lelkem, hogy te kész felelettel állj elém,
hanem időt engedek, hogy szavaimat megfontold, gondolkozási időt,
teszem fel egy vagy két hónapot.
– Majd holnap, mondá a leány Sámuel úrnak, s azzal hirtelen
elszaladt.
– A tatárba! hisz ez túl a rendin jól megy, mondá magában a
kérő, én két hónapot akarok neki engedni s ő már holnapra biztat.
A másnap eljött, Zsuzsa rendkívül érdekes elfogultságban lépett
be Sámuel úrhoz, jól, illendően kisírt szemekkel s zsebkendője
szegletét rágicsálva, s midőn Sámuel úr kérdezé, hogy hát mire
határozta magát? elkezde sűrűn zokogni s a mennyire a szepegés
megengedé ismerni az emberi hangokat, ilyenforma vallomást tőn
előtte: Hm – hm. Édes bácsi. – Én az asszonyi nemnek nagy és
nemes hivatását – hm – hm – megértettem. – Az emberi szívnek –
hm – titkos óhajtásai – hm – s aztán minthogy kedves bácsi
megigérte – hogy ellene nem áll – hát én úgy tettem, a hogy
kivánta.
Tovább nem tudta mondani, semmi sem jutott eszébe s azzal oda
rogyott – nem Sámuel úr karjai közé, mint ő ezt várta és hitte,
hanem lábaihoz s kérte, hogy ne tagadja meg tőle áldását.
– Majd az csak a pap dolga lesz, fiam, biztatá Sámuel úr, fel
akarva őt emelni, a mi pedig sehogy sem ment, mert a leány addig
fel nem akart kelni, míg áldását ki nem nyeri.
– Magamat csak nem áldhatom meg, mondá magában Sámuel, s
a míg azt mondá magában, bebukik az ajtón egy piros pozsgás
siheder, két nagy, kifelé fordított vuklival a füle mellett, s az is oda
rogyik a lábaihoz, s szinte megragadja egyik kezét és áldását kéri.
– Hát te ki vagy?
Zsuzsabella hebegve, piszegve magyarázá, hogy vannak az
emberi szívnek titkos kivánatai, melyek ilyen nagy kifelé fordított
vuklikat viselnek, s minthogy már egyszer férjhez kell menni, hát
majd ő csak ezzel is beéri.
Sámuel úr kővé változott legottan. Sokáig nem birt szóhoz jőni;
hát ez a leány mindazt, a mit neki oly circumspecte elmagyarázott,
oda tudta magyarázni, mintha ő valaki máshoz akarná őt férjhez
adni? Világos volt, hogy a leányra még csak nem is haragudhatik,
mert őtet maga biztatta, hanem azokat a kifelé fordított vuklikat
nagy kedve lett volna megczibálni, mert azt már nem biztatta.
– Hát hogy mersz te ide furakodni?
– Mert velem jött a szerelem…
– Ne versificálj. Mi ember vagy, ki fia vagy, micsoda vagy?
– A bátyám Posenben Stadt-Commissæren-Hallunk.
– Adjunkt! szamár; nem azt kérdeztem; mi vagy magad?
– Hegedüvirtuoz leszek.
– Tán bizony czigány?
– Nem, a chorusban én húzom a bőgőt.
– Hát ott ismerkedtetek meg? S te akarod elvenni a birsalmát?
Te?
– Csak kegyes áldása vagyon még hátra.
– De biz abból semmi sem lesz.
– Hát ha már lett is valami?
– Megütheti a forgószél!
– Csak atyám uram meg ne üssön.
– Atyád urad? tán biz engem értettél alatta?
– Hát kit is mást, az én Izaballám atyja énnekem is atyám, mert
én neki férje vagyok, és ő nekem feleségem, és mi nem engedünk
szíveink fölött zsarnokságot gyakoroltatni, mi szeretjük egymást, és
mi itt akarunk lakni, az atyánknál.
Ezt mondván a fiatal bőgős, orlandói positurába vetette magát, s
szavainak elhatározottságát helybenhagyólag látszék igazolni a két
liffleffegő vukli.
– De már akkor eltévesztettétek az ajtót, röffent rá a felül
kerekedő Lear, itt lakik átellenben Szilva borbély, annak van
tizennégy gyermeke, tizenötödik a birsalma; oda menjetek lakni.
Az ifju fidicinnek torkán akadt a hang, ránézett azzal a két
kifodorított mopslifüllel Zsuzsabellára.
– Hisz te erről nem szóltál nekem semmit.
– Hát azért kevésbbé fognál szeretni, mivel rangom nem előkelő?
kérdé nemes érzékenységgel a birsalma.
– Igen, de hol fogunk lakni?
– A bátyád Posenben Stadt-Commissæren-Hajdunk…
– Igen, de meghalt.
– Erről meg te nem szóltál nekem semmit.
És nézének ők mind a ketten szörnyű határozatlan képpel Sámuel
úrra. Ez végre is megszánta őket.
– No hogy azt ne mondjátok, hogy soha sem adtam semmit,
megveszem számotokra az apátok műhelyét, üljetek be oda,
folytassátok a mesterséget; hanem én szakált növesztek, engem
nem borotváltok meg többet.
Izabella ajkait kezdte pittyeszteni, hanem a vukli odaszólalt
hozzá, mondván, ne válogass Zsuzska, mert a hegedűvirtuózság
mellett felkopik az állunk.
S tehát biz ők ismét térdre estek, mint feljebb, összecsókolták
Sámuel úr kezeit, a ki is nevének megfelelő phlegmával adta rájuk
áldását, mondván:
– Már most hát vigyen benneteket az ördög.
Az ekként vallott kudarcz annyira le találta verni Sámuel urat,
hogy e percz óta Szerényfi urat is okos embernek kezdé tartani, a ki
pedig nem volt az.
Nem volt pedig Szerényfi úr okos ember azért, mert poéta volt;
de nem azért, mert poéta volt, hanem azért, mert egy verset irt,
melynek az volt a refrainje, hogy «ördög az asszony».
És Sámul úr épen azért kezdé Szerényfi urat okos embernek
tartani, a mióta a birsalma rászedte. És valahányszor összejött
Szerényfi úrral, a poétával, mindig visszatért arra a furcsa végű
versre, és soha sem átallotta neki kinyilatkoztatni, miszerint azon
vers nagyon is igaz, mihez Szerényfi úr soha sem volt rest utána
tenni: «és nagyon szép».
IX. A HAZAJÁRÓ LÉLEK.
Érzékeny szívű olvasóm! meg ne rettenj ettől a kisértetes czímtől:
nem jelent ez valami lánczczal csörgő, fehér lepedőben járó, éjfélben
csavargó másvilági nem-tom kicsodát, a ki előkerül innen-onnan, s
búsultában nem talál különb mulatságot, mint hogy eleven
embereket ijesztgessen s a fonalat a motólán összerágja; – hanem
jelent ez a czím egy olyan asszonyszemélyt, a ki mihelyt valami
csekélységen összekap a férjével, rögtön szalad haza az édes
anyjához, a miért aztán csúfságból elnevezték «hazajáró léleknek».
Máki Juczinak hítták a lelkemet, férje után pedig Herczeg
Andrásné asszonyomnak. Herczeg András uram becsületes szekeres
gazda volt Komáromban; tartott ökröt, lovat, eljárt fuvarba is; viselt
ezüst gombos mellényt és a templomban a második padban szokott
ülni, még a tisztelendő úr is névszerint ismerte; egyszóval
tisztességes, jómódú ember volt. Máki Juczi apja pedig emberséges
kormányos volt nemzetes Nyirkos uram «Victoria gloria» nevű
tölgyfa hajóján, mely minden tavaszszal le szokott menni üresen a
Bánátba s minden őszszel nem tudom hány ezer mérő gabonával
terhelten szokott ismét visszakerülni a komáromi sziget alá, és soha
semmi baj az útközben nem érte, sem zátonyon nem akadt, sem
tőkére nem ment, sem oda nem fagyott. Maga Máki uram állván a
timon rúdjánál, úgy elvezette azt, mint a parancsolat s gyönyörűen
tudott az átvádoláshoz, mikor tudniillik meghajtják a hajóhúzó
lovakat víz ellenében a terhes hajóval s akkor egyszerre elcsapják
baltával a feszült kötelet, mire aztán sebesen átvág a hajó a tulsó
partra, mintha gőz lengetné; nem kellett az ilyen esetnél félteni Máki
uramat, inkább az életében ejtett volna kárt, mint a hajójában; mert
a milyen igaz, hogy ő fél fejjel magasabb volt termetre egyéb
kormányosoknál, olyan igaz az is, hogy a Viktoria gloria szebb volt
valamennyi hajónál, a mi a komáromi sziget alatt megfordult. Teteje
és oldalai szép csillogó feketére festve drága kalamászszal, az orrán
az a bolondság kiverve fehér bádoggal, a két csipejére odafestve
mindenféle színnel két piros pofájú szent, a kikről elmondta Máki
uram mindenkinek: «ez a Viktoria, az meg a Gloria; a mi azt teszi
diákul, hogy győzelem és dicsőség». Ezt tudta Máki uram, végezvén
a grammaticát tiszteletes Ónodi uram alatt a révkomáromi
gymnasiumban, melyet jól esik a nemzeti büszkeségnek
kollégiumnak nevezhetni.
De volt is jutalma Máki uram érdemeinek, nemzetes uram Nyirkos
uram nem hagyta őt jutalom nélkül; telt miből nemcsak kenyérre,
zsiradékra, de még czifra főkötőre is Mákiné asszonyomnak, s dupla
selyem keszkenőre Juczi leányának, úgy, hogy mikor
karácsonyünnepekre Máki uram megérkezett Ráczországból, előre
beszéltek a nénémasszonyok felőle: mennyi mindent hozott a
feleségének, leányának! S mikor aztán ünnep vasárnapján Juczi
lelkem hosszú arany függővel a fülében ült le a második padban,
mindjárt a tekintetes főkurátorné asszonyság háta mögé, a hátulsó
padokból felálltak a fehérszemélyek, úgy nézték, s tanakodtak
magukban, vajjon igazán arany-e vagy csak ezüst, futtatva
aranynyal? S szomszédasszonyom urának, becsületes Tuba Sándor
uramnak volt mit hallgatni egy hétig kedves élete párjától, hogy lám
a Máki Juczinak arany függőt tudott venni az apja, pedig az csak
kormányos, ő pedig még csak ki sem furatta a leánya füleit, pedig ő
már srájber. Tuba uram pedig egy héten egyszer szokott szólani,
akkor az egyszer azt mondta, hogy könnyű annak, mert csak egy
leánya van, neki pedig van hat.
De büszke is volt arra az egy leányára Máki uram, még tán
büszkébb volt rá, mint a hajójára, s azt már szóba sem engedte jőni,
hogy az ő Juczijánál Rév-Komárom városában szebb leány lehessen.
Olyan termetet lásson valaki! Hogy áll rajta az a meggyszin zsali
ruha; akár egy kisasszonyon. Földig ér a zöld selyem kendője, nagy
piros virágú. Keztyűt hord a kezén, el ne süsse a nap; hej azért a
szép fehér bőrért milyen nagy kár lenne, ha a nap elsütné, a hideg
megvenné, nagy munkában, dolgozásban kicserepesednék.
Te ülj a szobában, leányom, hideg van, meleg van idekinn. Édes
anyád asszony elvégez minden munkát, nem szorulsz te arra; ő
megfőz, kitakarít, szapul és mángorol, virágok közt gyomlál és
öntözget; neked csak az asztalhoz kell ülnöd, azt kérdik, mit
szeretsz? neked csak a tiszta ruhát kell fölvenned, jaj be gyöngyen
áll rajtad! neked csak a kész virágot kell leszakítanod, jaj be illik
hozzád!
Apjának, anyjának nincsen egyéb gondja, mint hogy
kényeztessék. Azon vesznek össze, melyik szereti jobban? No jaj
volna annak, a melyik megbántaná! Egy hétig nem hallaná szavát
Juczi leányának.
Juczinak jó nevelést is kellett adni, megtanították kötni,
horgacsolni, lyukacsos furcsákat varrni keszkenő szélére, tarka
madarakat himezni gyöngyből és selyemből, még gitározni is, a
subrector úr cselekedte ezt, a ki könyveket is hordott neki, a mikből
verseket lehetett olvasni.
Annyi bizonyos, hogy tetszésre való leány alig is volt különb
széles e városban, s mégis azt lehetett csodálni, hogy egyik farsang
elmúlik a másik után, Juczi még sem megy férjhez.
Pedig semmi rosszat nem lehetett felőle mondani, jámbor,
szemérmes volt, mikor az utczán ment, a fejét sem fordította félre,
úgy lépkedett, mintha a szombati utcza csupa tojással volna kirakva
s neki arra kellene ügyelni, hogy valamelyiket össze ne törje.
Nem is mondhatni, hogy kérői ne lettek volna. Sőt inkább nagyon
is sok volt, és mindenféle osztályból, gazdák, hajósok, hivatalos
állású emberek, még diplomaticusok is.
Elvette volna egy derék szekeresgazda, a kinek magának három
háza van, s kilencz szántóföldje, de Juczinak nem kellett, mert az
embernek olyan csunya hosszú bajusza van, mindig a szájába lóg.

You might also like