100% found this document useful (4 votes)
65 views

Test bank for Big Java: Early Objects 6th Edition by Horstmann instant download

The document provides information about the test bank for 'Big Java: Early Objects 6th Edition' by Horstmann, which includes updates for Java 8 and various learning aids. It highlights the book's focus on fundamental programming techniques, realistic examples, and problem-solving exercises. Additionally, links to other test banks and solution manuals for different textbooks are included.

Uploaded by

haddodmixal
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
65 views

Test bank for Big Java: Early Objects 6th Edition by Horstmann instant download

The document provides information about the test bank for 'Big Java: Early Objects 6th Edition' by Horstmann, which includes updates for Java 8 and various learning aids. It highlights the book's focus on fundamental programming techniques, realistic examples, and problem-solving exercises. Additionally, links to other test banks and solution manuals for different textbooks are included.

Uploaded by

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

Test bank for Big Java: Early Objects 6th

Edition by Horstmann download

http://testbankbell.com/product/test-bank-for-big-java-early-
objects-6th-edition-by-horstmann/

Find test banks or solution manuals at testbankbell.com today!


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

Test Bank For Big Java: Early Objects 5th Edition

http://testbankbell.com/product/test-bank-for-big-java-early-
objects-5th-edition/

Solution Manual for Big C++: Late Objects 3rd Edition, Cay
S. Horstmann

http://testbankbell.com/product/solution-manual-for-big-c-late-
objects-3rd-edition-cay-s-horstmann/

Test Bank for (Chapter 1 – 17) Big C++: Late Objects, 3rd
Edition, Cay S. Horstmann

http://testbankbell.com/product/test-bank-for-chapter-1-17-big-c-late-
objects-3rd-edition-cay-s-horstmann/

Discrete Mathematics and Applications 2nd Ferland Test


Bank

http://testbankbell.com/product/discrete-mathematics-and-
applications-2nd-ferland-test-bank/
Test Bank for Management, 12th Edition Ricky W. Griffin

http://testbankbell.com/product/test-bank-for-management-12th-edition-
ricky-w-griffin/

Solution Manual for International Business: The Challenges


of Globalization John Wild, Kenneth L. Wild, Halia
Valladares
http://testbankbell.com/product/solution-manual-for-international-
business-the-challenges-of-globalization-john-wild-kenneth-l-wild-
halia-valladares/

Human Physiology From Cells to Systems Sherwood 9th


Edition Test Bank

http://testbankbell.com/product/human-physiology-from-cells-to-
systems-sherwood-9th-edition-test-bank/

Test Bank for Biology: The Essentials 3rd Edition

http://testbankbell.com/product/test-bank-for-biology-the-
essentials-3rd-edition/

Solution Manual for Dynamics of Structures, 4/E 4th


Edition : 0132858037

http://testbankbell.com/product/solution-manual-for-dynamics-of-
structures-4-e-4th-edition-0132858037/
Solution Manual for Operations Research: An Introduction,
9/E 9th Edition Hamdy A. Taha

http://testbankbell.com/product/solution-manual-for-operations-
research-an-introduction-9-e-9th-edition-hamdy-a-taha/
Test bank for Big Java: Early Objects 6th Edition
by Horstmann
Full version at:
https://testbankbell.com/product/test-bank-for-big-java-early-objects-6th-edition-by-
horstmann/
Description:
Cay Horstmann's sixth edition of Big Java, Early Objects provides an approachable introduction to
fundamental programming techniques and design skills, helping students master basic concepts and
become competent coders. Updates for the Java 8 software release and additional visual design
elements make this student-friendly text even more engaging. The text is known for its realistic
programming examples, great quantity and variety of homework assignments, and programming
exercises that build student problem-solving abilities. This edition now includes problem solving
sections, more example code online, and exercise from Science and Business.

ISBN-10 : 1119056446
ISBN-13 : 978-1119056447

Table of contents:
Title Page
Getting the Most from Big Java, Early Objects, 6e
About the InterActivities
Source Code
Report a Problem
New to this Edition
A Tour of the Book
Content Overview
List of Features
Walkthrough of the Learning Aids
Acknowledgments
Quick Reference
1. Introduction
1.1 Computer Programs
InterActivities
1.2 The Anatomy of a Computer
InterActivities
Computing & Society 1.1 Computers Are Everywhere
1.3 The Java Programming Language
InterActivities
1.4 Becoming Familiar with Your Programming Environment
InterActivities
Programming Tip 1.1
Backup Copies
1.5 Analyzing Your First Program
Syntax 1.1 Java Program
InterActivities
More InterActivities
Common Error 1.1
Omitting Semicolons
1.6 Errors
InterActivities
Common Error 1.2
Misspelling Words
1.7 Problem Solving: Algorithm Design
1.7.1 The Algorithm Concept
1.7.2 An Algorithm for Solving an Investment Problem
1.7.3 Pseudocode
1.7.4 From Algorithms to Programs
InterActivities
How To 1.1
Describing an Algorithm with Pseudocode
Worked Example 1.1
Writing an Algorithm for Tiling a Floor
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
2. Using Objects
2.1 Objects and Classes
2.1.1 Using Objects
2.1.2 Classes
InterActivities
2.2 Variables
2.2.1 Variable Declarations
Syntax 2.1 Variable Declaration
InterActivities
2.2.2 Types
InterActivities
2.2.3 Names
InterActivities
2.2.4 Comments
InterActivities
2.2.5 Assignment
Syntax 2.2 Assignment
InterActivities
More InterActivities
Common Error 2.1
Using Undeclared or Uninitialized Variables
Common Error 2.2
Confusing Variable Declarations and Assignment Statements
Programming Tip 2.1
Choose Descriptive Variable Names
2.3 Calling Methods
2.3.1 The Public Interface of a Class
2.3.2 Method Arguments
2.3.3 Return Values
2.3.4 Method Declarations
InterActivities
Programming Tip 2.2
Learn By Trying
2.4 Constructing Objects
Syntax 2.3 Object Construction
InterActivities
Common Error 2.3
Trying to Invoke a Constructor Like a Method
2.5 Accessor and Mutator Methods
InterActivities
2.6 The API Documentation
2.6.1 Browsing the API Documentation
2.6.2 Packages
Syntax 2.4 Importing a Class from a Package
InterActivities
Programming Tip 2.3
Don’t Memorize—Use Online Help
2.7 Implementing a Test Program (Testing Track)
InterActivities
More InterActivities
Special Topic 2.1
Testing Classes in an Interactive Environment
Worked Example 2.1
How Many Days Have You Been Alive?
Worked Example 2.2
Working with Pictures
2.8 Object References
InterActivities
Computing & Society 2.1 Computer Monopoly
2.9 Graphical Applications (Graphics Track)
2.9.1 Frame Windows
2.9.2 Drawing on a Component
2.9.3 Displaying a Component in a Frame
InterActivities
More InterActivities
2.10 Ellipses, Lines, Text, and Color (Graphics Track)
2.10.1 Ellipses and Circles
2.10.2 Lines
2.10.3 Drawing Text
2.10.4 Colors
InterActivities
More InterActivities
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
3. Implementing Classes
3.1 Instance Variables and Encapsulation
3.1.1 Instance Variables
Syntax 3.1 Instance Variable Declaration
3.1.2 The Methods of the Counter Class
3.1.3 Encapsulation
InterActivities
3.2 Specifying the Public Interface of a Class
3.2.1 Specifying Methods
3.2.2 Specifying Constructors
Syntax 3.2 Class Declaration
3.2.3 Using the Public Interface
3.2.4 Commenting the Public Interface
InterActivities
Common Error 3.1
Declaring a Constructor as void
Programming Tip 3.1
The javadoc Utility
3.3 Providing the Class Implementation
3.3.1 Providing Instance Variables
3.3.2 Providing Constructors
3.3.3 Providing Methods
InterActivities
More InterActivities
Common Error 3.2
Ignoring Parameter Variables
How To 3.1
Implementing a Class
Worked Example 3.1
Making a Simple Menu
3.4 Unit Testing (Testing Track)
InterActivities
Computing & Society 3.1 Electronic Voting Machines
3.5 Problem Solving: Tracing Objects
InterActivities
3.6 Local Variables
InterActivities
Common Error 3.3
Duplicating Instance Variables in Local Variables
Common Error 3.4
Providing Unnecessary Instance Variables
Common Error 3.5
Forgetting to Initialize Object References in a Constructor
3.7 The this Reference
InterActivities
Special Topic 3.1
Calling One Constructor from Another
3.8 Shape Classes (Graphics Track)
InterActivities
More InterActivities
How To 3.2
Drawing Graphical Shapes
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
4. Fundamental Data Types
4.1 Numbers
4.1.1 Number Types
4.1.2 Constants
Syntax 4.1 Constant Declaration
InterActivities
Special Topic 4.1
Big Numbers
Programming Tip 4.1
Do Not Use Magic Numbers
4.2 Arithmetic
4.2.1 Arithmetic Operators
4.2.2 Increment and Decrement
4.2.3 Integer Division and Remainder
4.2.4 Powers and Roots
4.2.5 Converting Floating-Point Numbers to Integers
Syntax 4.2 Cast
InterActivities
More InterActivities
Common Error 4.1
Unintended Integer Division
Common Error 4.2
Unbalanced Parentheses
Programming Tip 4.2
Spaces in Expressions
Java 8 Note 4.1
Avoiding Negative Remainders
Special Topic 4.2
Combining Assignment and Arithmetic
Special Topic 4.3
Instance Methods and Static Methods
Computing & Society 4.1 The Pentium Floating-Point Bug
4.3 Input and Output
4.3.1 Reading Input
Syntax 4.3 Input Statement
4.3.2 Formatted Output
InterActivities
More InterActivities
How To 4.1
Carrying Out Computations
Worked Example 4.1
Computing the Volume and Surface Area of a Pyramid
4.4 Problem Solving: First Do It By Hand
InterActivities
More InterActivities
Worked Example 4.2
Computing Travel Time
4.5 Strings
4.5.1 The String Type
4.5.2 Concatenation
4.5.3 String Input
4.5.4 Escape Sequences
4.5.5 Strings and Characters
4.5.6 Substrings
InterActivities
More InterActivities
Programming Tip 4.3
Reading Exception Reports
Special Topic 4.4
Using Dialog Boxes for Input and Output
Computing & Society 4.2 International Alphabets and Unicode
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
5. Decisions
5.1 The if Statement
Syntax 5.1 if Statement
InterActivities
More InterActivities
Programming Tip 5.1
Brace Layout
Programming Tip 5.2
Always Use Braces
Common Error 5.1
A Semicolon After the if Condition
Programming Tip 5.3
Tabs
Special Topic 5.1
The Conditional Operator
Programming Tip 5.4
Avoid Duplication in Branches
5.2 Comparing Values
5.2.1 Relational Operators
Syntax 5.2 Comparisons
5.2.2 Comparing Floating-Point Numbers
5.2.3 Comparing Strings
5.2.4 Comparing Objects
5.2.5 Testing for null
InterActivities
More InterActivities
Common Error 5.2
Using == to Compare Strings
How To 5.1
Implementing an if Statement
Worked Example 5.1
Extracting the Middle
Computing & Society 5.1 Denver’s Luggage Handling System
5.3 Multiple Alternatives
InterActivities
More InterActivities
Special Topic 5.2
The switch Statement
5.4 Nested Branches
InterActivities
More InterActivities
Programming Tip 5.5
Hand-Tracing
Common Error 5.3
The Dangling else Problem
Special Topic 5.3
Block Scope
Special Topic 5.4
Enumeration Types
5.5 Problem Solving: Flowcharts
InterActivities
5.6 Problem Solving: Selecting Test Cases (Testing Track)
InterActivities
Programming Tip 5.6
Make a Schedule and Make Time for Unexpected Problems
Special Topic 5.5
Logging
5.7 Boolean Variables and Operators
InterActivities
More InterActivities
Common Error 5.4
Combining Multiple Relational Operators
Common Error 5.5
Confusing && and || Conditions
Special Topic 5.6
Short-Circuit Evaluation of Boolean Operators
Special Topic 5.7
De Morgan’s Law
5.8 Application: Input Validation
InterActivities
More InterActivities
Computing & Society 5.2 Artificial Intelligence
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
6. Loops
6.1 The while Loop
Syntax 6.1 while Statement
InterActivities
More InterActivities
Common Error 6.1
Don’t Think “Are We There Yet?”
Common Error 6.2
Infinite Loops
Common Error 6.3
Off-by-One Errors
6.2 Problem Solving: Hand-Tracing
InterActivities
More InterActivities
Computing & Society 6.1 Digital Piracy
6.3 The for Loop
Syntax 6.2 for Statement
InterActivities
More InterActivities
Programming Tip 6.1
Use for Loops for Their Intended Purpose Only
Programming Tip 6.2
Choose Loop Bounds That Match Your Task
Programming Tip 6.3
Count Iterations
Special Topic 6.1
Variables Declared in a for Loop Header
6.4 The do Loop
InterActivities
More InterActivities
Programming Tip 6.4
Flowcharts for Loops
6.5 Application: Processing Sentinel Values
InterActivities
More InterActivities
Special Topic 6.2
Redirection of Input and Output
Special Topic 6.3
The “Loop and a Half” Problem
Special Topic 6.4
The break and continue Statements
6.6 Problem Solving: Storyboards
InterActivities
More InterActivities
6.7 Common Loop Algorithms
6.7.1 Sum and Average Value
InterActivities
6.7.2 Counting Matches
InterActivities
More InterActivities
6.7.3 Finding the First Match
InterActivities
More InterActivities
6.7.4 Prompting Until a Match is Found
InterActivities
6.7.5 Maximum and Minimum
InterActivities
6.7.6 Comparing Adjacent Values
InterActivities
More InterActivities
How To 6.1
Writing a Loop
Worked Example 6.1
Credit Card Processing
6.8 Nested Loops
InterActivities
Worked Example 6.2
Manipulating the Pixels in an Image
6.9 Application: Random Numbers and Simulations
6.9.1 Generating Random Numbers
InterActivities
6.9.2 The Monte Carlo Method
InterActivities
More InterActivities
6.10 Using a Debugger (Testing Track)
InterActivities
How To 6.2
Debugging
Worked Example 6.3
A Sample Debugging Session
Computing & Society 6.2 The First Bug
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
7. Arrays and Array Lists
7.1 Arrays
7.1.1 Declaring and Using Arrays
Syntax 7.1 Arrays
InterActivities
More InterActivities
7.1.2 Array References
InterActivities
7.1.3 Using Arrays with Methods
7.1.4 Partially Filled Arrays
InterActivities
More InterActivities
Common Error 7.1
Bounds Errors
Common Error 7.2
Uninitialized and Unfilled Arrays
Programming Tip 7.1
Use Arrays for Sequences of Related Items
Programming Tip 7.2
Make Parallel Arrays into Arrays of Objects
Special Topic 7.1
Methods with a Variable Number of Arguments
Computing & Society 7.1 Computer Viruses
7.2 The Enhanced for Loop
Syntax 7.2 The Enhanced for Loop
InterActivities
7.3 Common Array Algorithms
7.3.1 Filling
InterActivities
More InterActivities
7.3.2 Sum and Average Value
InterActivities
7.3.3 Maximum and Minimum
InterActivities
7.3.4 Element Separators
7.3.5 Linear Search
InterActivities
More InterActivities
7.3.6 Removing an Element
InterActivities
7.3.7 Inserting an Element
InterActivities
7.3.8 Swapping Elements
InterActivities
7.3.9 Copying Arrays
InterActivities
More InterActivities
7.3.10 Reading Input
Common Error 7.3
Underestimating the Size of a Data Set
Special Topic 7.2
Visit https://testbankbell.com
now to explore a rich
collection of testbank,
solution manual and enjoy
exciting offers!
Sorting with the Java Library
7.4 Problem Solving: Adapting Algorithms
InterActivities
More InterActivities
How To 7.1
Working with Arrays
Worked Example 7.1
Rolling the Dice
7.5 Problem Solving: Discovering Algorithms by Manipulating Physical Objects
InterActivities
7.6 Two-Dimensional Arrays
7.6.1 Declaring Two-Dimensional Arrays
Syntax 7.3 Two-Dimensional Array Declaration
InterActivities
7.6.2 Accessing Elements
InterActivities
7.6.3 Locating Neighboring Elements
More InterActivities
7.6.4 Accessing Rows and Columns
InterActivities
More InterActivities
Worked Example 7.2
A World Population Table
Special Topic 7.3
Two-Dimensional Arrays with Variable Row Lengths
Special Topic 7.4
Multidimensional Arrays
7.7 Array Lists
Syntax 7.4 Array Lists
7.7.1 Declaring and Using Array Lists
InterActivities
7.7.2 Using the Enhanced for Loop with Array Lists
InterActivities
More InterActivities
7.7.3 Copying Array Lists
InterActivities
More InterActivities
7.7.4 Wrappers and Auto-boxing
InterActivities
More InterActivities
7.7.5 Using Array Algorithms with Array Lists
InterActivities
More InterActivities
7.7.6 Storing Input Values in an Array List
More InterActivities
7.7.7 Removing Matches
More InterActivities
7.7.8 Choosing Between Array Lists and Arrays
Common Error 7.4
Length and Size
Special Topic 7.5
The Diamond Syntax
7.8 Regression Testing (Testing Track)
Programming Tip 7.3
Batch Files and Shell Scripts
Computing & Society 7.2 The Therac-25 Incidents
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
8. Designing Classes
8.1 Discovering Classes
InterActivities
8.2 Designing Good Methods
8.2.1 Providing a Cohesive Public Interface
8.2.2 Minimizing Dependencies
8.2.3 Separating Accessors and Mutators
8.2.4 Minimizing Side Effects
InterActivities
More InterActivities
Programming Tip 8.1
Consistency
Special Topic 8.1
Call by Value and Call by Reference
8.3 Problem Solving: Patterns for Object Data
8.3.1 Keeping a Total
8.3.2 Counting Events
8.3.3 Collecting Values
8.3.4 Managing Properties of an Object
8.3.5 Modeling Objects with Distinct States
8.3.6 Describing the Position of an Object
InterActivities
More InterActivities
8.4 Static Variables and Methods
InterActivities
More InterActivities
Programming Tip 8.2
Minimize the Use of Static Methods
Common Error 8.1
Trying to Access Instance Variables in Static Methods
Special Topic 8.2
Alternative Forms of Instance and Static Variable Initialization
Special Topic 8.3
Static Imports
8.5 Problem Solving: Solve a Simpler Problem First
InterActivities
8.6 Packages
8.6.1 Organizing Related Classes into Pack-ages
8.6.2 Importing Packages
8.6.3 Package Names
Syntax 8.1 Package Specification
8.6.4 Packages and Source Files
InterActivities
Common Error 8.2
Confusing Dots
Special Topic 8.4
Package Access
How To 8.1
Programming with Packages
8.7 Unit Test Frameworks (Testing Track)
InterActivities
More InterActivities
Computing & Society 8.1 Personal Computing
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
9. Inheritance
9.1 Inheritance Hierarchies
InterActivities
Programming Tip 9.1
Use a Single Class for Variation in Values, Inheritance for Variation in Behavior
9.2 Implementing Subclasses
Syntax 9.1 Subclass Declaration
InterActivities
More InterActivities
Common Error 9.1
Replicating Instance Variables from the Superclass
Common Error 9.2
Confusing Super- and Subclasses
9.3 Overriding Methods
Syntax 9.2 Calling a Superclass Method
InterActivities
More InterActivities
Common Error 9.3
Accidental Overloading
Common Error 9.4
Forgetting to Use super When Invoking a Superclass Method
Special Topic 9.1
Calling the Superclass Constructor
Syntax 9.3 Constructor with Superclass Initializer
9.4 Polymorphism
InterActivities
More InterActivities
Special Topic 9.2
Dynamic Method Lookup and the Implicit Parameter
Special Topic 9.3
Abstract Classes
Special Topic 9.4
Final Methods and Classes
Special Topic 9.5
Protected Access
How To 9.1
Developing an Inheritance Hierarchy
Worked Example 9.1
Implementing an Employee Hierarchy for Payroll Processing
9.5 Object: The Cosmic Superclass
9.5.1 Overriding the toString Method
InterActivities
More InterActivities
9.5.2 The equals Method
InterActivities
More InterActivities
9.5.3 The instanceof Operator
Syntax 9.4 The instanceof Operator
InterActivities
Common Error 9.5
Don’t Use Type Tests
Special Topic 9.6
Inheritance and the toString Method
Special Topic 9.7
Inheritance and the equals Method
Computing & Society 9.1 Who Controls the Internet?
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
10. Interfaces
10.1 Using Interfaces for Algorithm Reuse
10.1.1 Discovering an Interface Type
10.1.2 Declaring an Interface Type
Syntax 10.1 Declaring an Interface
10.1.3 Implementing an Interface Type
Syntax 10.2 Implementing an Interface
10.1.4 Comparing Interfaces and Inheritance
InterActivities
More InterActivities
Common Error 10.1
Forgetting to Declare Implementing Methods as Public
Common Error 10.2
Trying to Instantiate an Interface
Special Topic 10.1
Constants in Interfaces
Java 8 Note 10.1
Static Methods in Interfaces
Java 8 Note 10.2
Default Methods
Java 8 Note 10.3
Conflicting Default Methods
10.2 Working with Interface Types
10.2.1 Converting from Classes to Interfaces
10.2.2 Invoking Methods on Interface Variables
10.2.3 Casting from Interfaces to Classes
InterActivities
More InterActivities
Worked Example 10.1
Investigating Number Sequences
10.3 The Comparable Interface
InterActivities
More InterActivities
Programming Tip 10.1
Comparing Integers and Floating-Point Numbers
Special Topic 10.2
The clone Method and the Cloneable Interface
10.4 Using Interfaces for Callbacks
InterActivities
Java 8 Note 10.4
Lambda Expressions
Special Topic 10.3
Generic Interface Types
10.5 Inner Classes
InterActivities
Special Topic 10.4
Anonymous Classes
10.6 Mock Objects (Testing Track)
InterActivities
10.7 Event Handling (Graphics Track)
10.7.1 Listening to Events
10.7.2 Using Inner Classes for Listeners
InterActivities
Common Error 10.3
Modifying Parameter Types in the Implementing Method
Common Error 10.4
Trying to Call Listener Methods
Java 8 Note 10.5
Lambda Expressions for Event Handling
10.8 Building Applications with Buttons (Graphics Track)
InterActivities
Common Error 10.5
Forgetting to Attach a Listener
Programming Tip 10.2
Don’t Use a Container as a Listener
10.9 Processing Timer Events (Graphics Track)
InterActivities
Common Error 10.6
Forgetting to Repaint
10.10 Mouse Events (Graphics Track)
InterActivities
Special Topic 10.5
Keyboard Events
Special Topic 10.6
Event Adapters
Computing & Society 10.1 Open Source and Free Software
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
11. Input/Output and Exception Handling
11.1 Reading and Writing Text Files
InterActivities
More InterActivities
Common Error 11.1
Backslashes in File Names
Common Error 11.2
Constructing a Scanner with a String
Special Topic 11.1
Reading Web Pages
Special Topic 11.2
File Dialog Boxes
Special Topic 11.3
Character Encodings
11.2 Text Input and Output
11.2.1 Reading Words
InterActivities
11.2.2 Reading Characters
InterActivities
More InterActivities
11.2.3 Classifying Characters
InterActivities
More InterActivities
11.2.4 Reading Lines
InterActivities
11.2.5 Scanning a String
InterActivities
More InterActivities
11.2.6 Converting Strings to Numbers
InterActivities
More InterActivities
11.2.7 Avoiding Errors When Reading Numbers
InterActivities
More InterActivities
11.2.8 Mixing Number, Word, and Line Input
InterActivities
More InterActivities
11.2.9 Formatting Output
InterActivities
Special Topic 11.4
Regular Expressions
Special Topic 11.5
Reading an Entire File
11.3 Command Line Arguments
InterActivities
More InterActivities
How To 11.1
Processing Text Files
Worked Example 11.1
Analyzing Baby Names
Computing & Society 11.1 Encryption Algorithms
11.4 Exception Handling
11.4.1 Throwing Exceptions
Syntax 11.1 Throwing an Exception
InterActivities
More InterActivities
11.4.2 Catching Exceptions
Syntax 11.2 Catching Exceptions
InterActivities
More InterActivities
11.4.3 Checked Exceptions
Syntax 11.3 The throws Clause
InterActivities
11.4.4 Closing Resources
Syntax 11.4 The try-with-resources Statement
InterActivities
11.4.5 Designing Your Own Exception Types
Programming Tip 11.1
Throw Early, Catch Late
Programming Tip 11.2
Do Not Squelch Exceptions
Programming Tip 11.3
Do Throw Specific Exceptions
Special Topic 11.6
Assertions
Special Topic 11.7
The try/finally Statement
11.5 Application: Handling Input Errors
Computing & Society 11.2 The Ariane Rocket Incident
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
12. Object-Oriented Design
12.1 Classes and Their Responsibilities
12.1.1 Discovering Classes
12.1.2 The CRC Card Method
InterActivities
12.2 Relationships Between Classes
12.2.1 Dependency
12.2.2 Aggregation
12.2.3 Inheritance
InterActivities
How To 12.1
Using CRC Cards and UML Diagrams in Program Design
Special Topic 12.1
Attributes and Methods in UML Diagrams
Special Topic 12.2
Multiplicities
Special Topic 12.3
Aggregation, Association, and Composition
12.3 Application: Printing an Invoice
12.3.1 Requirements
12.3.2 CRC Cards
12.3.3 UML Diagrams
12.3.4 Method Documentation
12.3.5 Implementation
InterActivities
Computing & Society 12.1 Databases and Privacy
Worked Example 12.1
Simulating an Automatic Teller Machine
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
13. Recursion
13.1 Triangle Numbers
InterActivities
Common Error 13.1
Infinite Recursion
Common Error 13.2
Tracing Through Recursive Methods
How To 13.1
Thinking Recursively
Worked Example 13.1
Finding Files
13.2 Recursive Helper Methods
InterActivities
13.3 The Efficiency of Recursion
InterActivities
13.4 Permutations
InterActivities
Computing & Society 13.1 The Limits of Computation
13.5 Mutual Recursion
InterActivities
13.6 Backtracking
InterActivities
Worked Example 13.2
Towers of Hanoi
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
14. Sorting and Searching
14.1 Selection Sort
InterActivities
14.2 Profiling the Selection Sort Algorithm
InterActivities
14.3 Analyzing the Performance of the Selection Sort Algorithm
InterActivities
Special Topic 14.1
Oh, Omega, and Theta
Special Topic 14.2
Insertion Sort
14.4 Merge Sort
InterActivities
14.5 Analyzing the Merge Sort Algorithm
InterActivities
Special Topic 14.3
The Quicksort Algorithm
14.6 Searching
14.6.1 Linear Search
14.6.2 Binary Search
InterActivities
Computing & Society 14.1 The First Programmer
14.7 Problem Solving: Estimating the Running Time of an Algorithm
14.7.1 Linear Time
14.7.2 Quadratic Time
14.7.3 The Triangle Pattern
14.7.4 Logarithmic Time
InterActivities
14.8 Sorting and Searching in the Java Library
14.8.1 Sorting
14.8.2 Binary Search
14.8.3 Comparing Objects
InterActivities
Common Error 14.1
The compareTo Method Can Return Any Integer, Not Just –1, 0, and 1
Special Topic 14.4
The Comparator Interface
Java 8 Note 14.1
Comparators with Lambda Expressions
Worked Example 14.1
Enhancing the Insertion Sort Algorithm
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
15. The Java Collections Framework
15.1 An Overview of the Collections Framework
InterActivities
15.2 Linked Lists
15.2.1 The Structure of Linked Lists
15.2.2 The LinkedList Class of the Java Collections Framework
15.2.3 List Iterators
InterActivities
Computing & Society 15.1 Standardization
15.3 Sets
15.3.1 Choosing a Set Implementation
15.3.2 Working with Sets
InterActivities
Programming Tip 15.1
Use Interface References to Manipulate Data Structures
15.4 Maps
InterActivities
Java 8 Note 15.1
Updating Map Entries
How To 15.1
Choosing a Collection
Worked Example 15.1
Word Frequency
Special Topic 15.1
Hash Functions
15.5 Stacks, Queues, and Priority Queues
15.5.1 Stacks
15.5.2 Queues
15.5.3 Priority Queues
InterActivities
15.6 Stack and Queue Applications
15.6.1 Balancing Parentheses
15.6.2 Evaluating Reverse Polish Expressions
15.6.3 Evaluating Algebraic Expressions
15.6.4 Backtracking
Visit https://testbankbell.com
now to explore a rich
collection of testbank,
solution manual and enjoy
exciting offers!
InterActivities
Worked Example 15.2
Simulating a Queue of Waiting Customers
Special Topic 15.2
Reverse Polish Notation
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
16. Basic Data Structures
16.1 Implementing Linked Lists
16.1.1 The Node Class
16.1.2 Adding and Removing the First Element
16.1.3 The Iterator Class
16.1.4 Advancing an Iterator
16.1.5 Removing an Element
16.1.6 Adding an Element
16.1.7 Setting an Element to a Different Value
16.1.8 Efficiency of Linked List Operations
InterActivities
Special Topic 16.1
Static Classes
Worked Example 16.1
Implementing a Doubly-Linked List
16.2 Implementing Array Lists
16.2.1 Getting and Setting Elements
16.2.2 Removing or Adding Elements
16.2.3 Growing the Internal Array
InterActivities
16.3 Implementing Stacks and Queues
16.3.2 Stacks as Arrays
16.3.3 Queues as Linked Lists
16.3.4 Queues as Circular Arrays
InterActivities
16.4 Implementing a Hash Table
16.4.1 Hash Codes
16.4.2 Hash Tables
16.4.3 Finding an Element
16.4.4 Adding and Removing Elements
16.4.5 Iterating over a Hash Table
InterActivities
Special Topic 16.2
Open Addressing
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
17. Tree Structures
17.1 Basic Tree Concepts
InterActivities
17.2 Binary Trees
17.2.1 Binary Tree Examples
17.2.2 Balanced Trees
17.2.3 A Binary Tree Implementation
InterActivities
Worked Example 17.1
Building a Huffman Tree
17.3 Binary Search Trees
17.3.1 The Binary Search Property
17.3.2 Insertion
17.3.3 Removal
17.3.4 Efficiency of the Operations
InterActivities
17.4 Tree Traversal
17.4.1 Inorder Traversal
17.4.2 Preorder and Postorder Traversals
17.4.3 The Visitor Pattern
17.4.4 Depth-First and Breadth-First Search
17.4.5 Tree Iterators
InterActivities
17.5 Red-Black Trees
17.5.1 Basic Properties of Red-Black Trees
17.5.2 Insertion
17.5.3 Removal
Worked Example 17.2
Implementing a Red-Black Tree
17.6 Heaps
17.7 The Heapsort Algorithm
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
18. Generic Classes
18.1 Generic Classes and Type Parameters
InterActivities
18.2 Implementing Generic Types
Syntax 18.1 Declaring a Generic Class
InterActivities
18.3 Generic Methods
Syntax 18.2 Declaring a Generic Method
InterActivities
18.4 Constraining Type Parameters
InterActivities
Common Error 18.1
Genericity and Inheritance
Common Error 18.2
The Array Store Exception
Special Topic 18.1
Wildcard Types
18.5 Type Erasure
InterActivities
Common Error 18.3
Using Generic Types in a Static Context
Special Topic 18.2
Reflection
Worked Example 18.1
Making a Generic Binary Search Tree Class
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
19. Stream Processing
19.1 The Stream Concept
InterActivities
19.2 Producing Streams
InterActivities
19.3 Collecting Results
InterActivities
Programming Tip 19.1
One Stream Operation Per Line
Special Topic 19.1
Infinite Streams
19.4 Transforming Streams
InterActivities
Common Error 19.1
Don’t Use a Terminated Stream
19.5 Lambda Expressions
Syntax 19.1 Lambda Expressions
InterActivities
Programming Tip 19.2
Keep Lambda Expressions Short
Special Topic 19.2
Method and Constructor References
Special Topic 19.3
Higher-Order Functions
Special Topic 19.4
Higher-Order Functions and Comparators
19.6 The Optional Type
InterActivities
Common Error 19.2
Optional Results Without Values
19.7 Other Terminal Operations
InterActivities
Common Error 19.3
Don’t Apply Mutations in Parallel Stream Operations
19.8 Primitive-Type Streams
19.8.1 Creating Primitive-Type Streams
19.8.2 Mapping a Primitive-Type Stream
19.8.3 Processing Primitive-Type Streams
InterActivities
19.9 Grouping Results
InterActivities
19.10 Common Algorithms Revisited
19.10.1 Filling
19.10.2 Sum, Average, Maximum, and Minimum
19.10.3 Counting Matches
19.10.4 Element Separators
19.10.5 Linear Search
19.10.6 Comparing Adjacent Values
InterActivities
How To 19.1
Working with Streams
Worked Example 19.1
Word Properties
Worked Example 19.2
A Movie Database
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
20. Graphical User Interfaces
20.1 Layout Management
20.1.1 Using Layout Managers
20.1.2 Achieving Complex Layouts
20.1.3 Using Inheritance to Customize Frames
Common Error 20.1
By Default, Components Have Zero Width and Height
Special Topic 20.1
Adding the main Method to the Frame Class
20.2 Processing Text Input
20.2.1 Text Fields
20.2.2 Text Areas
20.3 Choices
20.3.1 Radio Buttons
20.3.2 Check Boxes
20.3.3 Combo Boxes
How To 20.1
Laying Out a User Interface
Worked Example 20.1
Programming a Working Calculator
Programming Tip 20.1
Use a GUI Builder
20.4 Menus
20.5 Exploring the Swing Documentation
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
21. Advanced Input/Output
21.1 Readers, Writers, and Input/Output Streams
21.2 Binary Input and Output
Common Error 21.1
Negative byte Values
21.3 Random Access
21.4 Object Input and Output Streams
How To 21.1
Choosing a File Format
21.5 File and Directory Operations
21.5.1 Paths
21.5.2 Creating and Deleting Files and Directories
21.5.3 Useful File Operations
21.5.4 Visiting Directories
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
22. Multithreading
22.1 Running Threads
Programming Tip 22.1
Use the Runnable Interface
Special Topic 22.1
Thread Pools
22.2 Terminating Threads
Programming Tip 22.2
Check for Thread Interruptions in the run Method of a Thread
22.3 Race Conditions
22.4 Synchronizing Object Access
22.5 Avoiding Deadlocks
Common Error 22.1
Calling await Without Calling signalAll
Common Error 22.2
Calling signalAll Without Locking the Object
Special Topic 22.2
Object Locks and Synchronized Methods
Special Topic 22.3
The Java Memory Model
22.6 Application: Algorithm Animation
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
23. Internet Networking
23.1 The Internet Protocol
23.2 Application Level Protocols
23.3 A Client Program
23.4 A Server Program
How To 23.1
Designing Client/Server Programs
23.5 URL Connections
Programming Tip 23.1
Use High-Level Libraries
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
24. Relational Databases
24.1 Organizing Database Information
24.1.1 Database Tables
24.1.2 Linking Tables
24.1.3 Implementing Multi-Valued Relation-ships
Programming Tip 24.1
Stick with the Standard
Programming Tip 24.2
Avoid Unnecessary Data Replication
Programming Tip 24.3
Don’t Replicate Columns in a Table
Special Topic 24.1
Primary Keys and Indexes
24.2 Queries
24.2.1 Simple Queries
24.2.2 Selecting Columns
24.2.3 Selecting Subsets
24.2.4 Calculations
24.2.5 Joins
24.2.6 Updating and Deleting Data
Common Error 24.1
Joining Tables Without Specifying a Link Condition
24.3 Installing a Database
24.4 Database Programming in Java
24.4.1 Connecting to the Database
24.4.2 Executing SQL Statements
24.4.3 Analyzing Query Results
24.4.4 Result Set Metadata
Common Error 24.2
Constructing Queries from Arbitrary Strings
Programming Tip 24.4
Don’t Hardwire Database Connection Parameters into Your Program
Programming Tip 24.5
Let the Database Do the Work
24.5 Application: Entering an Invoice
Special Topic 24.2
Transactions
Special Topic 24.3
Object-Relational Mapping
Worked Example 24.1
Programming a Bank Database
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
25. XML
25.1 XML Tags and Documents
25.1.1 Advantages of XML
25.1.2 Differences Between XML and HTML
25.1.3 The Structure of an XML Document
How To 25.1
Designing an XML Document Format
Programming Tip 25.1
Prefer XML Elements over Attributes
Programming Tip 25.2
Avoid Children with Mixed Elements and Text
25.2 Parsing XML Documents
Common Error 25.1
XML Elements Describe Objects, Not Classes
25.3 Creating XML Documents
How To 25.2
Writing an XML Document
Special Topic 25.1
Grammars, Parsers, and Compilers
25.4 Validating XML Documents
25.4.1 Document Type Definitions
25.4.2 Specifying a DTD in an XML Document
25.4.3 Parsing and Validation
How To 25.3
Writing a DTD
Special Topic 25.2
Schema Languages
Special Topic 25.3
Other XML Technologies
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
26. Web Applications
26.1 The Architecture of a Web Application
26.2 The Architecture of a JSF Application
26.2.1 JSF Pages
26.2.2 Managed Beans
26.2.3 Separation of Presentation and Business Logic
26.2.4 Deploying a JSF Application
Special Topic 26.1
Session State and Cookies
26.3 JavaBeans Components
26.4 Navigation Between Pages
How To 26.1
Designing a Managed Bean
26.5 JSF Components
26.6 A Three-Tier Application
Special Topic 26.2
AJAX
Chapter Summary
Review Exercises
Practice Exercises
Programming Projects
APPENDIX A: THE BASIC LATIN AND LATIN-1 SUBSETS OF UNICODE
APPENDIX B: JAVA OPERATOR SUMMARY
APPENDIX C: JAVA RESERVED WORD SUMMARY
APPENDIX D: THE JAVA LIBRARY
Package java.awt
Package java.awt.event
Package java.awt.geom
Package java.io
Package java.lang
Package java.math
Package java.net
Package java.nio.file
Package java.sql
Package java.text
Package java.util
Package java.util.concurrent.locks
Package java.util.function
Package java.util.logging
Package java.util.stream
Package javax.sql
Package javax.swing
Package javax.swing.border
Package javax.swing.event
Package javax.swing.text
Package javax.xml.parsers
Package javax.xml.xpath
Package org.w3c.dom
Package org.w3c.dom.ls
APPENDIX E: JAVA LANGUAGE CODING GUIDELINES
Introduction
Source Files
Classes
Methods
Variables and Constants
Control Flow
Lexical Issues
APPENDIX F: TOOL SUMMARY
The Java Compiler
The Java Virtual Machine Launcher
The JAR Tool
APPENDIX G: NUMBER SYSTEMS
Binary Numbers
Overflow and Roundoff Errors
Two’s Complement Integers
IEEE Floating-Point Numbers
Hexadecimal Numbers
Bit and Shift Operations
APPENDIX H: UML SUMMARY
CRC Cards
UML Diagrams
APPENDIX I: JAVA SYNTAX SUMMARY
Types
Variables
Expressions
Classes
Interfaces
Enumeration Types
Methods
Constructors
Statements
Exceptions
Packages
Generic Types and Methods
Comments
APPENDIX J: HTML SUMMARY
A Brief Introduction to HTML
Illustration Credits
Wiley End User License Agreement
Random documents with unrelated
content Scribd suggests to you:
KYMMENES LUKU

Taistelu Tikan puolesta

Päivä oli hyvin ihana. Lauhkea tuuli vilvoitti päiväntasaajan


auringon paahdetta. Heimon keskuudessa oli viikkokausia vallinnut
rauha, eikä ulkoapäin ollut sen alueille tunkeutunut ainoatakaan
vierasta vihollista. Apinain mielestä oli kaikki tämä riittävä todistus
siitä, että tulevaisuus olisi samanlainen kuin läheinen menneisyys —
että ihanneolot pysyisivät.

Vahdit, joiden sijoittaminen oli nyt tottumuksen voimasta tullut


heimoelämän tavaksi, joko vähensivät valppauttaan tai poistuivat
tyyten paikoiltaan, miten heidän päähänsä milloinkin pisti. Heimo oli
hajaantunut laajalle alueelle etsimään ravintoa. Näin saattavat rauha
ja menestys kaivaa pohjan mitä alkeellisemman samoin kuin myös
mitä korkeimmalle kehittyneen yhteiskunnan turvallisuudelle.

Myöskin yksilöt kävivät vähemmän varovaisiksi ja valppaiksi, niin


että olisi saattanut luulla Numan, Saborin ja Shitan hävinneen koko
luomakunnasta. Naarakset ja balut harhailivat suojelijoitta jylhässä
viidakossa, kun taas ahnaat urokset hakivat ravintoa kaukana
aukeamalla; niinpä myöskin Tika ja Gazan, hänen balunsa, liikkuivat
heimon alueen äärimmäisellä eteläisellä liepeellä, eikä ainoatakaan
isoa urosta ollut heidän lähistöllään.

Vielä kauempana etelässä vaelsi metsässä uhkaava olento —


kookas urosapina, joka oli vimmastunut yksinäisyydestä ja tappiosta.
Viikko sitten hän oli tavoittanut kaukana sieltä asustavan heimonsa
kuninkuutta ja harhaili nyt kolhittuna, ruumis vielä hellänä,
aarniometsässä yksinäisenä hylkiönä. Myöhemmin hän voisi palata
oman heimonsa keskuuteen ja alistua karvaisen otuksen tahtoon,
jota hän oli koettanut syöstä valtaistuimelta; mutta nyt hän ei vielä
uskaltanut sitä tehdä, sillä hän ei ollut tavoittanut ainoastaan
herransa ja mestarinsa kruunua, vaan myöskin hänen vaimojaan.
Kuluisi vähintäänkin kokonainen kuukausi, ennenkuin loukattu
hallitsija unohtaisi tapahtuman, ja siksi Tug vaelsi oudossa viidakossa
julmana, peloittavana ja uhkuen vihaa.

Tällaisessa mielentilassa Tug osui aavistamattaan nuoren


naaraksen läheisyyteen, joka oli yksin ruuanhakuretkellä — vieraan
heimon naaraksen, joustavan ja voimakkaan ja verrattoman kauniin.
Tug pidätti henkeään ja pujahti ketterästi tiepuoleen, jossa
tiheälehväinen troopillinen pensaikko piilotti hänet Tikalta, samalla
sallien hänen antaa silmiensä nauttia naaraksen viehkeydestä.

Mutta hänen katseensa ei yksinomaan tuijottanut Tikaan, vaan


harhaili myöskin heitä ympäröivässä viidakossa, etsien Tikan heimon
uroksia ja naaraita sekä baluja, mutta etupäässä uroksia. Kun
himoitaan vieraaseen heimoon kuuluvaa naarasta, on otettava
huomioon rajut, kookkaat, karvaiset huoltajat, jotka ani harvoin
poistuivat etäälle holhoteistaan ja olivat valmiit taistelemaan
elämästä ja kuolemasta muukalaista vastaan puolustaessaan
toverinsa puolisoa tai jälkeläisiä, aivan samoin kuin ottelisivat omien
läheistensä puolesta.

Tug ei havainnut mitään jälkeä ainoastakaan apinasta,


lukuunottamatta vierasta naarasta ja hänen likellään leikkivää nuorta
balua. Hänen häijyt, verestävät silmänsä painuivat puolittain
umpeen, kun hänen katseensa imeytyi edellisen viehättäviin
muotoihin — mitä baluun tulee, niin hänen vankkojen leukojensa
yksi ainoa puraisu sen hoikkaan niskaan riittäisi estämään sen
nostamasta tarpeetonta hälyä.

Tug oli komea, kookas uros ja muistutti monessa suhteessa Tikan


puolisoa Taugia. He olivat molemmat parhaassa iässä, kummallakin
heillä oli ihailtavat lihakset ja mainiot torahampaat, kumpikin he
olivat niin peloittavan hurjia kuin vaativaisinkin ja tarkimminkin
valitseva naaras voi haluta. Jos Tug olisi ollut Tikan omaa heimoa,
niin Tika olisi voinut yhtä hyvin suostua häneen kuin Taugiinkin, kun
hänen paritteluaikansa tuli; mutta nyt hän oli Taugin, eikä yksikään
muu uros saanut vaatia häntä omakseen ensin voittamatta Taugia
mieskohtaisessa kamppailussa. Ja sittenkin pidätti Tika itselleen
erinäisiä oikeuksia tähän asiaan nähden. Jollei hän suosinut uutta
kosijaa, saattoi hän itsekin astua kilpakentälle tukemaan
oikeudenmukaista puolisoansa, vähentäen parhaansa mukaan toisen
voittomahdollisuuksia; eikä se olisikaan mikään vähäinen apu Tikan
herralle ja isännälle, sillä vaikka Tikan torahampaat olivatkin
pienemmät kuin uroksen, niin hän osasi käytellä niitä erinomaisen
tehokkaasti.

Tika oli parhaillaan lumoavan miellyttävässä puuhassa, etsimässä


kovakuoriaisia, unohtaen kaiken muun. Hänellä ei ollut aavistusta
siitä, kuinka kauas heimon muista jäsenistä hän ja Gazan olivat
joutuneet, eivätkä hänen turvallisuudesta huolehtivat aistimensa
olleet valppaina, kuten niiden olisi pitänyt olla. Kuukausia kestänyt
vaaroilta suojattu elämä huolellisten vahtien turvassa, joita
sijoittamaan Tarzan oli heimon opettanut, oli tuudittanut heimon
jäsenet rauhallisuuden tuntuun ja luottamaan petolliseen uskoon,
joka oli menneisyydessä tuottanut tuhon monelle valistuneelle
yhteiskunnalle ja tuottaa vielä vastaisuudessa monelle — siihen
nimittäin, että koska heitä ei ole ahdistettu, ei heitä ikinä
ahdistetakaan.

Tultuaan varmaksi siitä, ettei lähimmässä ympäristössä ollut


ketään muita kuin naaras baluineen, Tug hiipi hiljaa heitä kohti. Tika
oli selin häneen päin, kun hän lopullisesti karkasi heidän
kimppuunsa; mutta Tikan aistit olivat viimeinkin heränneet
huomaamaan uhkaavan vaaran, ja hän pyörähti outoa urosta kohti
juuri kun tämä oli saavuttamaisillaan hänet, Tug pysähtyi muutaman
askeleen päähän hänestä. Vieraan naaraksen viettelevä naisellinen
sulous oli haihduttanut uroksen raivon. Hän päästeli lepyttäviä
äännähdyksiä — maiskutellen leveitä, litteitä huuhaan — eivätkä ne
äänet olleetkaan niin kovin erilaisia kuin ne, joita saattaa kuulua
oikeassa suutelossa.

Mutta Tika vain paljasti hampaansa ja murisi. Pikku Gazan lähti


juoksemaan äitiänsä kohti, mutta tämä varoitti häntä pysymään
etäällä, ehättäen huutamaan: "Krig-ah!" ja käski hänen kiivetä
korkean puun ylimmille oksille. Ilmeisestikään ei uusi kosija tehnyt
Tikaan suotuisaa vaikutusta. Tug oivalsi sen ja muutti
menettelytapaansa sen mukaisesti. Hän pullisti jättimäistä rintaansa,
iski siihen känsittyneillä rystysillään ja pöyhisteli, huojuen
edestakaisin Tikan edessä.
"Minä olen Tug", hän rehenteli. "Katso iskuhampaitani! Katso
voimakkaita käsiäni ja tanakoita jalkojani! Yhdellä puraisulla kykenen
surmaamaan teidän väkevimmän uroksenne. Olen yksin tappanut
Shitan. Olen Tug. Tug tahtoo sinut omakseen."

Sitten hän jäi odottamaan nähdäkseen, minkä vaikutuksen hänen


kerskailunsa oli tehnyt, eikä hänen tarvinnutkaan odottaa kauan.
Tika kääntyi niin nopeasti, ettei sitä olisi saattanut odottaa niin
raskaalta olennolta, ja lähti nuolena kiitämään päinvastaiseen
suuntaan. Kiukkuisesti murahtaen syöksyi Tug tavoittamaan häntä;
mutta pienempi, keveämpi naaras oli liian nopsa hänen
saavutettavakseen. Hän ajoi Tikaa takaa muutamia metrejä, jäi
sitten seisomaan puhisten ja karjuen sekä pieksäen maata vankoilla
nyrkeillään.

Hänen lähellään kasvavassa puussa istuva pikku Gazan näki


vieraan uroksen raivon ja pettymyksen ilmaisut. Ollen nuori ja luullen
olevansa turvassa painavan uroksen yltämättömissä kiljaisi Gazan
harkitsemattoman herjauksen heidän kiusanhengelleen. Tug vilkaisi
ylöspäin. Tika oli pysähtynyt vähän matkan päähän — hän ei
tahtonut poistua kauas balustaan; sen käsitti Tug heti ja päätti
nopeasti käyttää sitä edukseen. Hän näki, että se puu, jossa nuori
apina kyykötti, oli yksinäinen ja ettei balu voisi päästä toisiin puihin
laskeutumatta ensin maahan. Hän saisi äidin käsiinsä sen nojalla,
että tämä rakasti lastaan.

Hän heilautti itsensä puun alaoksille. Pikku Gazan lakkasi


herjaamasta Tugia; hänen ilmeensä muuttui ilkkuvasta
huolestuneeksi ja sitten hyvin pian pelokkaaksi, kun Tug alkoi kiivetä
häntä kohti. Kirkuen kehoitti Tika Gazania nousemaan korkeammalle,
ja pieni apina kapusi hennoille oksille, jotka eivät kannattaisi ison
apinan painoa; mutta siitä huolimatta Tug kiipesi edelleen. Tika ei
ollut peloissaan. Hän tiesi, ettei Tug voisi nousta kyllin korkealle
saadakseen Gazanin kiinni, ja siksi hän istui vähän matkan päässä
puusta, syytäen ahdistajalle viidakkohäväistyksiä. Naaraksena hän oli
siinä taidossa oikea mestari.

Mutta hän ei tietänyt, kuinka ilkeämielisen ovelat Tugin vähäiset


aivot olivat. Hänestä oli varmaa, että uros kapuaisi Gazania kohti niin
pitkälle kuin pääsisi ja huomattuaan sitten, ettei hän yltäisi baluun,
lähtisi jälleen ajamaan häntä takaa, mikä olisi yhtä tuloksetonta. Hän
uskoi niin lujasti, että hänen balunsa oli turvassa ja että hän itse
kykeni huolehtimaan itsestään, ettei hän kiljaissut avunpyyntihuutoa,
joka pian olisi kiidättänyt heimon muut jäsenet parvissa hänen
luokseen.

Verkalleen kohoten Tug saavutti sen rajan, jota ylempänä oleville


hennoille oksille hän ei rohjennut kiskoa raskasta ruhoaan. Gazan oli
vielä lähes viisi metriä hänen yläpuolellaan. Uros sijoittui vakavasti
istumaan ja tarttui latvaan voimakkaine käsineen. Tikan valtasi
kauhu. Hän oivalsi heti toisen aikeet. Gazan kyyrötti korkealla
huojuvalla oksalla. Ensimmäisestä pudistuksesta hän menetti
tasapainonsa, vaikka hän ei tyyten pudonnutkaan, vaan jäi
riippumaan kaikkien neljän raajansa varaan. Mutta Tug ponnisteli
kahta rajummin; se oksa, johon nuori apina oli tarrautunut,
naksahteli pahasti. Tika ymmärsi liiankin selvästi, minkälainen,
lopputuloksen täytyi olla, ja unohtaen syvässä äidinrakkaudessaan
oman vaaransa hän syöksyi eteenpäin kiivetäkseen puuhun
tappelemaan tuon kammottavan otuksen kanssa, joka uhkasi hänen
pienokaisensa henkeä.
Mutta ennenkuin hän ennätti edes rungolle, onnistui Tugin saada
latva siksi rajuun liikkeeseen, että Gazanin ote heltisi. Kirkaisten
suistui balu lehvien välitse, turhaan hapuillen saadakseen uudelleen
kiinni, ja putosi raskaasti kumahtaen äitinsä jalkojen juureen, jääden
virumaan siihen ääneti ja hievahtamatta. Parkaisten kumartui Tika
ottamaan elotonta ruumista syliinsä; mutta samassa oli Tug hänen
niskassaan.

Rimpuillen ja purren koetti Tika vapautua; mutta ison uroksen


jättiläislihakset olivat ylivoimaiset hänen heikommille jänteilleen. Tug
löi ja kuristi häntä useita kertoja, kunnes hän vihdoin melkein
tajuttomana heittäytyi rennoksi ja oli alistuvinaan. Sitten uros nosti
hänet olalleen ja kääntyi takaisin etelään vievälle polulle, jota
myöten oli tullutkin.

Maassa virui pienen Gazanin liikkumaton ruumis. Hän ei valittanut.


Hän ei värähtänytkään. Hitaasti nousi aurinko keskitaivaalle.
Pensaikossa hiipi syyhyinen otus, kuono koholla nuuhkien
viidakkotuulahduksia. Se oli Dango, hyena. Äkkiä sen inhoittava
turpa pistäytyi esiin läheisen lehvistön lävitse, ja sen julmat silmät
suuntautuivat Gazaniin.

Varhain samana aamuna oli Apinain Tarzan mennyt rannikolle


sijaitsevalle majalle, jossa hän vietti useita tunteja heimon
oleskellessa sen läheisyydessä. Lattialla oli miehen luuranko —
kaikki, mitä oli jälellä entisestä loordi Greystokesta — samassa
asennossa, johon se oli pudonnut silloin, kun Kertshak, iso apina, oli
sen kaksikymmentä vuotta sitten elottomana heittänyt kouristaan. Jo
aikoja sitten olivat termiitit ja pienet nakertajat kalunneet
englantilaisen lujatekoiset luut puhtaiksi. Tarzan oli vuosikausia
nähnyt sen viruvan paikallaan eikä kiinnittänyt siihen sen enempää
huomiota kuin niihin lukemattomiin tuhansiin luihin, joita oli
siroteltuna sinne tänne hänen oleskelupaikoillaan ja poluillaan
viidakossa. Vuoteella lepäsi toinen, pienempi luuranko, eikä
nuorukainen välittänyt mitään siitä sen enempää kuin toisestakaan.
Mistäpä hän olisi tietänyt, että toinen oli ollut hänen isänsä, toinen
hänen äitinsä? Loordi Greystoke-vainajan niin rakastavan huolellisesti
valmistamassa karkeatekoisessa kehdossa oleva vähäinen luukasa ei
merkinnyt hänelle mitään — että tuo pieni kallo olisi vielä kerran
apuna, kun todistettaisiin hänen oikeutensa ylvääseen arvonimeen,
siitä hänellä oli yhtä vähän aavistusta kuin Orionin tähtien kuista.
Tarzanista ne olivat luita — pelkkiä luita. Hän ei niitä tarvinnut, sillä
niissä ei ollut lainkaan jäljellä lihaa, eivätkä ne olleet hänen
vastuksinaan, sillä hän ei kaivannut vuodetta, ja lattialla olevan
luurangon ylitse hän jaksoi helposti harpata.

Tänään hän oli rauhaton. Hän käänteli ensin toisen, sitten, toisen
kirjan lehtiä. Hän katseli kuvia, jotka hän muisti ulkoa, ja sysäsi
sitten kirjan syrjään. Hän penkoi kaapin sisältöä ainakin tuhannen
kertaa. Hän otti sieltä esille pussin, jossa oli paljon pieniä, pyöreitä
metallilevyjä. Kuluneiden vuosien aikana hän oli leikkinyt niillä usein;
muta aina hän oli pannut ne huolellisesti takaisin pussiin ja pussin
takaisin kaappiin juuri samalle hyllylle, jolta hän oli sen ensiksi
löytänyt. Omituisesti ilmeni perinnöllisyyden vaikutus apinamiehessä.
Järjestystä rakastavan rodun vesana hän itsekin rakasti järjestystä
tietämättä miksi.

Apinat pudottivat esineet käsistään heti, kun heidän


mielenkiintonsa niitä kohtaan sammui — korkeaan ruohikkoon tai
puiden yläoksille. Pudottamansa kappaleet he joskus löysivät jälleen,
mutta vain sattumalta. Sellainen ei ollut Tarzanin tapa. Hänen
vähäinen omaisuutensa oli määrätyissä paikoissa, ja tunnollisesti hän
palautti jokaisen esineen omalle paikalleen herettyään sitä
käyttämästä. Pussissa olevat pyöreät metallilevyt olivat hänestä aina
mielenkiintoisia. Niiden kummallakin puolen oli kohokuvia, joiden
merkitystä hän ei oikein ymmärtänyt. Levyt olivat kirkkaita ja
välkkyviä. Hänestä oli hauskaa järjestää niitä erilaisiksi kuvioiksi
pöydällä. Satoja kertoja hän oli leikkinyt siten. Kun hän tänään oli
samassa puuhassa, putosi häneltä yksi niistä, kaunis, keltainen
kappale — englantilainen punnanraha — ja kieri sen vuoteen alle,
jossa aikoinaan viehättävän lady Alicen maallinen tomu lepäsi.

Säntillisenä miehenä Tarzan heti laskeutui nelinkontin etsimään


sängyn alta pudonnutta kultakolikkoa. Niin kummalliselta kuin se
tuntuneekin, hän ei ollut koskaan ennen tarkastanut vuoteen
alustaa. Hän löysi kolikon ja myöskin jotakin muuta — pienen,
puisen lippaan, jossa oli löyhästi kiinni painettu kansi. Otettuaan ne
molemmat hän pisti punnan takaisin pussiin ja pussin takaisin
hyllyllensä kaappiin. Sitten hän tutki lipasta. Siinä oli joukko
lieriömäisiä metallipalasia, joiden toinen pää suippeni kartiomaisesti
ja toisessa, tasaisessa päässä oli ulkoneva reunus. Ne olivat kaikki
aivan vihreitä ja himmeitä, vuosien aikana kerrostuneen
kuparihomeen peittämiä.

Tarzan otti niitä lippaasta kourallisen ja tarkasti niitä. Hän hieroi


kahta vastakkain ja huomasi, että vihreä väri lähtisi pois, jättäen
näkyviin kiiltävän pinnan kahdelle kolmasosalle niiden pituudesta,
kun taas kartiokärkinen pää jäi himmeän harmaaksi. Etsittyään
puupalasen hän hankasi, sillä ripeästi yhtä lieriötä ja sai vaivojensa
palkkioksi siihen välkkyvän hohteen, joka miellytti häntä.

Hänen kupeellaan riippui reppu, jonka hän oli anastanut eräältä


monista surmaamistaan mustista sotureista. Reppuun hän pani
kourallisen uusia lelujaan, aikoen kiilloittaa ne joutohetkinään. Sitten
hän sijoitti lippaan takaisin sängyn alle, ja kun hän ei löytänyt enää
mitään muuta huvittavaa, poistui hän majasta ja palasi heimon
luokse.

Päästyään lähelle apinoita hän kuuli kovaa hälyä edestäpäin —


naaraiden ja balujen äänekästä kirkumista, kookkaiden urosten
hurjia, kiukkuisia ärjäisyjä ja murahduksia. Hän kiihdytti heti
vauhtiaan, sillä hänen korviinsa saapuvat "Krig-ah!" huudot ilmaisivat
hänelle, että hänen tovereillaan oli hätä.

Sillä aikaa kun Tarzan oli ollut omissa hommissaan isävainajansa


majassa, oli Taug, Tikan jäntevä puoliso, ollut haeskelemassa
ravintoa noin puolentoista kilometrin päässä heimon pohjoispuolella.
Saatuaan vihdoin vatsansa täyteen hän oli kääntynyt laiskasti
palaamaan aukeamalle, jossa hän oli heimon viimeksi nähnyt, ja pian
hän sivuutti sinne tänne yksittäin, kaksittain tai kolmittain
hajaantuneita apinoita. Tikaa ja Gazania hän ei tavannut ja alkoi
pian tiedustella toisilta, missä he olivat; mutta kukaan ei ollut nähnyt
heitä äskettäin.

Alempien olentojen mielikuvitus ei ole kovinkaan kehittynyt. He


eivät, kuten te ja minä teemme, loihdi sielunsa silmien eteen eloisia
näkyjä siitä, mitä kaikkea on saattanut tapahtua, eikä Taugissa niin
ollen nytkään herännyt pahoja aavistuksia siitä, että onnettomuus oli
kohdannut hänen puolisoaan ja heidän jälkeläistään — hän vain
tahtoi löytää Tikan voidakseen laskeutua pitkäkseen varjoisaan
paikkaan ja panna Tikan raapimaan selkäänsä, sillä aikaa kun hän
sulatteli aamiaistaan. Mutta vaikka hän huuteli puolisoaan, etsi häntä
ja kyseli kaikilta, joita kohtasi, ei hän löytänyt jälkeäkään Tikasta
eikä myöskään Gazanista.
Hän alkoi äkämystyä ja hautoa mielessään Tikan kurittamista,
koska tämä oli poistunut niin kauas, kun aviopuoliso häntä tarvitsi.
Hän eteni etelään päin riistapolkua pitkin; hänen känsittyneet
jalkapohjansa ja rystysensä eivät ollenkaan kapsahtaneet maahan
sattuessa; äkkiä hän havaitsi Dangon, joka oli pienen aukeaman
vastaisella laidalla. Haaskansyöjä ei huomannut Taugia, sillä sen
silmät tuijottivat yhä värähtämättä johonkin ruohikossa erään puun
alla viruvaan olioon, jonka kimppuun se parhaillaan hiipi, noudattaen
lajilleen ominaista salakavalaa varovaisuutta.

Taug, joka itsekin oli hyvin varovainen, kuten pitääkin olla


sellaisen, joka vaeltelee viidakossa ja haluaa säilyttää henkensä,
kiipesi meluttomasti puuhun, josta hän voi paremmin silmäillä
aukeamaa. Hän ei pelännyt Dangoa; mutta hän halusi saada selville;
mitä Dango vainusi. Häntä kenties kannusti yhtä paljon uteliaisuus
kuin varovaisuus.

Ja kun Taug pääsi sellaiselle kohdalle oksien sekaan, josta hän


esteettömästi näki aukeamalle, oli Dango jo nuuhkimassa olentoa,
jonka Taug heti tunsi oman pikku Gazaninsa elottomaksi ruumiiksi.

Päästäen niin kauhean, niin petomaisen karjaisun, että se


hetkiseksi lamautti yllätetyn Dangon, heittäytyi iso apina valtavine
ruhoineen hölmistyneen hyenan niskaan. Kiljuen ja äristen kääntyi
maahan rusentunut Dango repimään ahdistajaansa; mutta hän oli
yhtä voimaton kuin varpunen haukan kynsissä. Taugin paksut,
pahkaiset sormet puristuivat hyenan kurkkuun ja selkään, hänen
leukapielensä loksahtivat yhden ainoan kerran takkuiseen niskaan,
musertaen selkäytimen, ja sitten hän viskasi kuolleen raadon
halveksivasti syrjään.
Taaskin hän kajahdutti huudon, jolla urosapina kutsuu puolisoaan,
mutta vastausta ei tullut; sitten hän kumartui nuuhkimaan Gazanin
ruumista. Tämän villin, kamalan näköisen pedon rinnassa liikkui,
joskin heikoimpina, samanlaisia isällisen rakkauden tunteita, jotka
panevat meidänkin sydämemme sykähtelemään. Vaikka meillä ei
olisikaan siitä kouraantuntuvia todistuksia, täytyisi meidän se
sittenkin tietää, koska vain sen nojalla voidaan selittää ihmisrodun
olemassaolo; sillä rodun ollessa varhaisilla asteillaan olisi urosten
kateus ja itsekkyys tuhonnut poikaset sitä myöten kuin niitä tuli
maailmaan, jollei Jumala olisi heidän pedonrintoihinsa kätkenyt
isänrakkautta, jonka voimakkain ilmenemismuoto on urosten
suojelemisvaisto.

Taugin suojelemisvaisto oli hyvin kehittynyt; mutta lisäksi hän oli


kiintynyt jälkeläiseensä, sillä Taug oli harvinaisen älykäs näyte noista
isoista, ihmisenmuotoisista apinoista, joista Gobin alkuasukkaat
puhelevat kuiskaten ja joita yksikään valkoihoinen ei ole milloinkaan
nähnyt, tai jos on nähnyt, niin ei ole jäänyt eloon kertomaan
näkemästään, kunnes Apinain Tarzan joutui niiden keskuuteen.

Ja niinpä Taug suri, kuten kuka muu isä hyvänsä olisi surrut
menetettyään pienokaisensa. Teistä olisi pikku Gazan saattanut
näyttää kammottavalta ja inhoittavalta otukselta, mutta Taugista ja
Tikasta hän oli yhtä kaunis ja herttainen kuin teidän pikku Maijanne
tai Juhonne tai Anna-Liisanne teistä; ja hän oli heidän esikoisensa,
heidän ainoa balunsa ja urospuolinen — kolme seikkaa, jotka
riittävät tekemään apinapienokaisen kenen hyvänsä hellän isän
lemmikiksi.

Jonkun aikaa Taug nuuhki pientä, liikkumatonta balua. Huulillaan


ja kielellään hän silitteli ja hyväili sekaantunutta karvapeitettä. Hänen
villistä suustaan pääsi hiljainen valitus; mutta murheen jäljessä
seurasi pian ylivoimainen kostonhimo.

Hypäten seisomaan hän alkoi karjua "Krig-ah!" huutoja, joita


vähän väliä tehosti vimmastuneen taistelunhaluisen — raivohullun,
verenhimon valtaaman — urosapinan vertahyydyttävät ärjäisyt.

Vastaukseksi kajahti heimon jäsenten huutoja heidän rientäessään


puita myöten hänen luokseen. Juuri ne kuuli Tarzan palatessaan
majasta; ja vastaukseksi niihin hän antoi oman äänensä kaikua ja
lisäsi nopeuttaan, kunnes hän suorastaan lensi metsän
keskitasanteita myöten.

Kun hän vihdoin ennätti heimon luokse, olivat apinat keräytyneet


yhteen, ympäröiden Taugin ja jonkun toisen, joka lepäsi
liikkumattomana maassa. Pudottauduttuaan puusta Tarzan lähestyi
ryhmän keskustaa. Taug yhä kiljui taisteluhaasteitaan, mutta
nähdessään Tarzanin hän vaikeni, kumartui, otti syliinsä Gazanin ja
ojensi balun Tarzanin nähtäväksi. Kaikista heimon uroksista Taug piti
vain Tarzanista. Tarzaniin hän luotti ja turvautui häneen kuten
ainakin viisaampaan ja kokeneempaan. Tarzanin luokse hän tuli
nytkin — lapsuusaikaisen kisakumppaninsa, varttuneella iällä
suoritettujen lukemattomien ottelujen taistelutoverin luokse.

Kun Tarzan näki Taugin käsivarsilla olevan liikkumattoman ruumiin,


pääsi hänen huuliltaan matala murahdus, sillä myöskin hän rakasti
Tikan balua.

"Kuka sen teki?" hän kysyi. "Missä on Tika?"

"En tiedä", vastasi Taug. "Löysin hänet virumassa täällä vierellään


Dango, joka oli juuri alkamaisillaan ahmia häntä; mutta Dango ei sitä
tehnyt — hänessä ei ole hampaiden jälkiä."

Tarzan meni likemmäksi ja painoi korvansa Gazanin rintaa vasten.


"Hän ei ole kuollut", hän virkkoi. "Kenties hän ei kuolekaan." Hän
tunkeutui apinatungoksen läpi ja kiersi kerran sen ympäri, tarkastaen
maata joka askeleella. Äkkiä hän pysähtyi, painoi nenänsä aivan
lähelle maata ja haisteli. Sitten hän hypähti pystyyn ja huudahti
omituisesti. Taug ja muut apinat keräytyivät hänen ympärilleen, sillä
äänestä tiesivät, että vainuaja oli löytänyt otuksen jäljet.

"Täällä on ollut vieras uros", selitti Tarzan. "Hän on kolhaissut


Gazania ja vienyt pois Tikan."

Taug ja muut urokset alkoivat karjua uhkaavasti; mutta he eivät


tehneet mitään. Jos vieras uros olisi ollut heidän näkyvissään, niin he
olisivat repineet hänet kappaleiksi; mutta heidän mieleensäkään ei
juolahtanut seurata häntä.

"Jos kolme vahtiurosta olisi ollut paikoillaan heimon ympärillä, niin


tätä ei olisi tapahtunut", äkäili Tarzan. "Tällaista tapahtuu vähän
väliä, niin kauan kuin te ette pidä kolmea urosta tarkkailemassa
vihollisten lähentymistä. Viidakko on täynnä vihollisia, mutta sittenkin
te sallitte naaraittenne ja balujenne hakea ruokaa mistä haluavat
yksin ja suojelematta. Tarzan lähtee nyt — hän menee etsimään
Tikaa ja tuomaan hänet takaisin heimon luokse."

Se ajatus pystyi toisiin uroksiin. "Me lähdemme kaikki", he


huusivat.

"Ei", torjui Tarzan, "te ette lähde kaikki. Me emme voi ottaa
naaraita ja baluja mukaamme metsästys- ja taisteluretkille. Teidän
on jäätävä heidän turvakseen tai menetätte heidät kaikki."
Apinat kynsivät päätään. Hänen neuvonsa viisaus alkoi selvetä
heille, mutta aluksi he olivat innostuneet uuteen ajatukseen — että
olisi ajettava takaa vierasta pahantekijää, riistettävä häneltä saalis ja
rangaistava häntä. Aikakausia kestänyt tapa oli syövyttänyt
yhteiskuntavaiston heidän mieliinsä. He eivät tienneet, miksi he eivät
olleet tulleet ajatelleeksi rikollisen takaa-ajoa ja rankaisemista — he
eivät voineet tietää sen johtuneen siitä, etteivät he olleet vielä
kohonneet kylliksi korkealle henkiselle tasolle kyetäkseen toimimaan
yksilönä. Kun he joutuivat ahdinkoon, kiidätti yhteiskuntavaisto
heidät tiiviiksi laumaksi, sillä sillä tavoin oli isojen, rajujen urosten
yhdistynein voimin helpompi puolustaa heitä vihollisia vastaan.

Se ajatus, että heidän olisi jakauduttava, taistellakseen vihollisen,


kanssa, ei ollut vielä välähtänyt heidän päähänsä — se oli liian paljon
tavoista poikkeava, liian paljon ristiriidassa yhteiskunnan etujen
kanssa. Mutta Tarzanista se oli ensimmäinen ja luonnollisin ajatus.
Hänen aistinsa ilmaisivat hänelle, että vain yksi ainoa uros oli
hyökännyt Tikan ja Gazanin kimppuun. Yhtä ainoata vihollista
rankaisemaan ei tarvittu koko heimoa. Kaksi nopeata urosta voisi
pian saavuttaa hänet ja pelastaa Tikan.

Aikaisemmin ei kukaan ollut ajatellut lähteä etsimään heimolta


silloin tällöin ryöstettyjä naaraita. Jos Numa, Sabor, Shita tai johonkin
toiseen heimoon kuuluva urosapina sattui viemään nuoren naaraan
tai emon, kun ei ketään ollut saapuvilla — niin naaras oli poissa,
siinä kaikki. Jos uhri sattui olemaan jonkin uroksen puoliso, niin leski
murahteli yhden tai parin päivän aikana, ja jos oli kylliksi väkevä, otti
sitten uuden puolison omasta heimosta; jolleivät voimat siihen
riittäneet, niin hän vaelsi kauas viidakkoon etsimään tilaisuutta
saadakseen ryöstää naaraan jostakin toisesta heimosta.
Tähän asti oli Apinain Tarzan sopeutunut tällaiseen menettelyyn,
koska hän ei ollut tuntenut lainkaan mielenkiintoa ryöstettyjä
kohtaan. Mutta Tika oli ollut hänen ensi lemmittynsä, ja Tikan balulla
oli hänen sydämessään samanlainen sija kuin hänen omalla balullaan
olisi ollut. Vain kerran tätä ennen oli Tarzan tahtonut ajaa takaa ja
kostaa. Se oli tapahtunut vuosia sitten, silloin kun Kulonga,
Mbongan, päällikön, poika oli tappanut Kaalan. Silloin oli Tarzan
yksin seurannut murhaajaa ja kostanut. Nyt häntä kannusti sama
intohimo, vaikkakaan ei niin kiihkeänä.

Hän kääntyi Taugiin päin. "Jätä Gazan Mumgan hoivaan"! hän


kehoitti. "Mumga on vanha, ja hänen hampaansa ovat murtuneet,
eikä hän ole lainkaan hyvä; mutta hän voi vaalia Gazania siihen
saakka, kunnes me palaamme mukanamme Tika. Ja jos Gazan on
kuollut, kun me tulemme takaisin", lisäsi hän Mumgalle, "niin minä
tapan sinut".

"Minne menemme?" tiedusti Taug.

"Menemme noutamaan Tikaa", vastasi apinamies, "ja surmaamaan


hänen ryöstäjänsä. Tule!"

Hän lähti vieraan uroksen jäljille, jotka hänen harjaantuneet


aistinsa selvästi eroittivat, eikä vilkaissutkaan taakseen nähdäkseen,
seurasiko Taug häntä. Viimemainittu laski Gazanin Mumgan syliin,
lausuen jäähyväisiksi: "Jos hän kuolee, niin Tarzan tappaa sinut."
Sitten hän riensi ruskeaihoisen nuorukaisen jälkeen, joka jo juosta
hölkytti viidakkopolkua pitkin.

Ei ainoakaan Kertshakin heimon uros ollut niin hyvä vainuaja kuin


Tarzan, sillä hänen harjoituksen terästämien aistiensa tukena oli
korkealle kehittynyt älykkyys. Arvostelukykynsä nojalla hän tiesi,
minkä tien takaa-ajettava luonnostaan oli valinnut, joten hänen
tarvitsi pitkin matkaa tarkata vain silmäänpistävimpiä merkkejä; ja
tänään oli Tugin kulkema tie hänestä yhtä selvä kuin painetun sivun
rivit teistä tai minusta.

Joustavan apinamiehen kintereillä juoksi kookas ja karvainen


urosapina. He eivät virkkaneet toisilleen sanaakaan. He liikkuivat
äänettömästi kuin olisivat olleet varjoja metsän kymmenientuhansien
varjojen joukossa. Yhtä valppaana kuin Tarzanin silmät ja korvat oli
myöskin hänen ylimysnenänsä. Jäljet olivat tuoreet, ja kun he nyt
olivat ehtineet pois heimosta leviävän voimakkaan apinahajun
piiristä, ei hänen ollut lainkaan vaikeata seurata Tugia ja Tikaa
yksinomaan hajuaistinsa avulla. Tikan tuttu haju ilmoitti sekä
Tarzanille että Taugille, että he olivat hänen jäljillään, ja pian kävi
Tugin haju heille yhtä tutuksi kuin toinenkin.

Heidän reippaasti edetessään peittyi aurinko äkkiä synkkään


pilveen. Tarzan kiihdytti vauhtiaan. Nyt hän suorastaan lensi pitkin
viidakkopolkua; niissä paikoissa taas, missä Tug oli turvautunut
puihin, seurasi hän ketterästi kuin orava pitkin lehväisten oksien
muodostamaa notkuvaa ja huojuvaa polkua, heilautellen itseään
puusta toiseen kuten Tug oli tehnyt aikaisemmin, mutta he olivat
nopeampia, koska heitä ei ollut hidastamassa taakka kuten Tugia.

Tarzan tunsi, että heidän täytyi olla aivan pakenijan kintereillä, sillä
haju kävi yhä voimakkaammaksi; mutta silloin äkkiä välähti
viidakossa huikaiseva salama, ja taivaalla ja metsässä kiiri huumaava
jyrinä, joka pani maan vavahtelemaan. Sitten tuli sade — ei
sellaisena kuin se tulee meille lauhkeissa vyöhykkeissä, vaan
valtavana vyörynä — valaen vettä tonneittain eikä pisaroittain
metsän taipuvien jättiläisten ja niiden suojassa kyyristelevien,
säikähtyneiden olentojen päälle.

Ja sade teki sen, mitä Tarzan tiesi sen tekevän — se pyyhki


vainuttavan jäljet pois maan pinnalta. Vettä ryöppysi puoli tuntia —
sitten pilkisti aurinko esiin, ja metsä näytti välkkyvän miljoonista
säihkyvistä helmistä, mutta apinamies, jonka silmät tavallisesti olivat
avoinna viidakon ihmeellisille vaihteluille, ei tällä kertaa nähnyt niitä.
Hänen aivoihinsa ei mahtunut muuta ajatusta kuin se, että Tikan ja
hänen ryöstäjänsä jäljet olivat hävinneet.

Myöskin puiden oksilla on paljon käytettyjä polkuja aivan samoin


kuin maan pinnalla; mutta puissa ne haarautuvat ja menevät
ristikkäin useammin, koska eri suuntiin liikkuminen on helpompaa
kuin maata peittävässä tiheässä kasvistossa. Yhtä tällaista selvästi
näkyvää polkua pitkin etenivät Tarzan ja Taug edelleen sateen
lakattua, sillä apinamies päätteli, että rosvo oli todennäköisesti
valinnut juuri sen; mutta saavuttuaan haarautumaan he olivat
ymmällä. Siihen he pysähtyivät, ja Tarzan tarkasti jokaista oksaa ja
lehvää, jota pakeneva apina olisi mahdollisesti saattanut koskettaa.

Hän nuuhki puun runkoa ja etsi tarkoilla silmillään sen kuoresta


jotakin merkkiä ryöstäjän kulkemasta tiestä. Se oli hidasta työtä, ja
Tarzan tiesi rosvon koko ajan ponnistelevan yhä vain kauemmaksi
heistä — voittavan kalliita minuutteja, joina hän saattoi päästä
turvaan, ennenkuin he saavuttaisivat hänet.

Apinamies poikkesi ensin toiselle, sitten toiselle haarautumalle,


käyttäen tutkimuksissaan ihmeellisen erämieskykynsä kaikkia
taitokeinoja; mutta yhä oli kaikki turhaa, sillä rankka sadekuuro oli
huuhtonut hajun kaikista sateelle alttiista paikoista. Tarzan ja Taug
etsivät puoli tuntia, kunnes Tarzanin tarkka nenä vihdoin erotti
heikosti tuntuvan Tugin hajun tuuhean lehväkimpun alta, jota
karvainen olkapää oli pyyhkäissyt, kun apina kulki sen alitse.

Taaskin he lähtivät seuraamaan jälkiä, mutta nyt se kävi


verkkaisesti ja sattui useita lamauttavia viivytyksiä, kun jäljet
katosivat ja niitä tuntui olevan mahdoton enää löytää. Te ja minä
emme olisi havainneet minkäänlaisia jälkiä, emme edes ennen
sadetta, paitsi kenties niillä kohdilla, joissa Tug oli laskeutunut
maahan ja seurannut riistapolkua. Sellaisissa paikoissa olivat isojen,
kämmentä muistuttavien jalkojen ja toisen vankan käden rystysten
painamat merkit joskus siksi selviä, että tavallinen kuolevainen
saattoi ne huomata. Näistä ja eräistä muista havainnoistaan Tarzan
päätteli, että apina yhä kantoi Tikaa. Hänen jalkansa olivat uponneet
siksi syvälle, että niiden varassa on täytynyt olla paljon raskaamman
kuorman kuin ainoankaan uroksen paino oli, sillä nehän olivat
kantaneet Tugin ja Tikan yhteistä painoa; se taas, etteivät maata
milloinkaan olleet koskettaneet kuin toisen käden rystyset, osoitti,
että toisella kädellä oli jotakin muuta tehtävää — pidellä vankia
karvaisella olkapäällä. Suojaisilla paikoilla saattoi Tarzan nähdä,
missä taakka oli siirretty olalta toiselle; siitä olivat merkkinä
kannettavan puolisen jalan jäljen syventyminen ja rystysten jälkien
vaihtuminen polun toiselta reunalta toiselle.

Maan pinnalla olevilla poluilla oli apina joskus kävellyt melkoisia


matkoja pystyssä vain takajalkojensa varassa — ihmisten tapaan;
mutta samoin olisi voinut tehdä kuka hyvänsä samaan lajiin kuuluva
ihmisapina, sillä päinvastoin kuin simpanssi ja gorilla he kävelivät
ilman käsien apua aivan yhtä helposti kuin nojautumalla niihin. Mutta
juuri tällaiset seikat auttoivat Tarzania ja Taugia määrittelemään,
minkä näköinen ryöstäjä oli; ja kun hänen yksilöllinen hajunsa jo oli
lähtemättömästi syöpynyt heidän muistiinsa, saattoivat he
kohdatessaan hänet, vaikka hän olisikin jo saanut jätetyksi Tikan
luotaan, tuntea hänet paljon varmemmin kuin nykyaikainen etsivä
valokuvineen ja Bertillon-mittauksineen kykenee tuntemaan
sivistyneen oikeuden kynsistä karanneen rikollisen.

Mutta terästetyistä ja herkkävireisistä havaintoelimistään


huolimatta saivat nämä kaksi Kertshakin heimon urosta usein
pinnistää kaikkensa kyetäkseen lainkaan seuraamaan jälkiä, ja joka
tapauksessa kävi se niin hitaasti, etteivät he toisen päivän
iltapuolella vielä olleet saavuttaneet pakenijaa. Haju oli nyt
voimakas, sillä se oli jäänyt sateen jälkeen, ja Tarzan tiesi, ettei
kuluisi pitkää aikaa, ennenkuin he saisivat kiinni ryöstäjän saaliineen.
Heidän hiipiessään varovasti eteenpäin räkätti heidän yläpuolellaan
Manu, marakatti, tuhansine tovereineen; siellä kiljui ja kirskui
punakulkkuisia, upeahöyhenisiä lintuja, lukemattomia hyönteisiä
surisi ja humisi metsän kahisevien lehtien keskellä; ja heidän
edetessään vilkaisi pieni, huojuvalla oksalla tirskuva ja rähisevä
harmaaparta alas ja näki heidät. Heti vaikeni tirskuminen ja rähinä,
ja pitkähäntäinen kääpiö kiisi tiehensä, ikäänkuin häntä olisi ajanut
takaa Shita, pantteri, joka oli saanut siivet. Kaikesta päättäen se oli
vain peräti pelästynyt pikku marakatti, joka pakeni henkensä edestä
— mitään pahaenteistä ei hänessä näyttänyt olevan.

Entä kuinka oli Tikan laita koko tänä aikana? Oliko hän vihdoinkin
tyytynyt kohtaloonsa, seuraten nyt uutta isäntäänsä niin alistuvasti
kuin rakastavan ja nöyrän puolison sopi? Yksi vilkaisu tähän pariin
olisi antanut pahimmallekin epäilijälle perin tyydyttävän vastauksen
näihin kysymyksiin. Tika oli raadeltu, ja hänestä vuosi verta
lukuisista haavoista, jotka äreä Tug oli iskenyt, turhaan koettaessaan
pakottaa häntä alistumaan tahtoonsa; ja myöskin Tug oli murjottu ja
kolhittu, mutta itsepäisen julmasti hän yhä piti kiinni hyödyttömästä
saaliistaan.

Hän ponnisteli edelleen viidakossa heimonsa asuinpaikkoja kohti.


Hän toivoi kuninkaan unohtaneen hänen kavalluksensa; mutta
päinvastaisessakin tapauksessa hän tyytyisi kohtaloonsa — mikä
hyvänsä oli parempi kuin enää kestää yksinäisyyttä tämän
hirvittävän naaraksen seurassa, ja lisäksi hän halusi näyttää
vankiaan tovereilleen. Kenties hän voisi esittää hänet kuninkaalle —
mahdollisesti kannusti häntä sellainen ajatus.

Vihdoin he kohtasivat kaksi urosta ruokailemassa puistomaisessa


lehdossa — ihanassa lehdossa, jossa oli siellä täällä jyhkeitä
kivijärkäleitä puolittain uponneina hedelmälliseen multaan — kenties
mykkiä muistomerkkejä unholaan vaipuneelta ajalta, jolloin valtavat
jäätiköt lipuivat hitaasti uraansa siellä, missä paahtava aurinko nyt
paistaa troopilliseen viidakkoon.

Tugin lähestyessä kaukaa katsahtivat urokset sinnepäin ja


paljastivat pitkät torahampaansa. Tug tunsi heidät ystäviksi. "Minä
olen Tug", hän murahti. "Tug on tullut takaisin, tuoden mukanaan
uuden naaraksen."

Apinat odottivat, kunnes hän tuli likemmäksi. Tika käänsi ärisevät


kasvot heihin päin, hampaat irvessä. Hän ei ollut hauskan näköinen,
mutta kasvoja tahraavasta verestä ja kiukkuisesta ilmeestä
huolimatta he oivalsivat, että hän oli kaunis, ja kadehtivat Tugia —
valitettavasti he eivät tunteneet Tikaa.

Heidän kyyköttäessään silmäillen toisiaan, riensi puita myöten


heitä kohti pieni, pitkähäntäinen ja harmaaviiksinen marakatti
pysähtyessään oksalle suoraan heidän kohdalleen.
"Kaksi vierasta urosta on tulossa", hän huusi. "Toinen on mangani,
toinen kamalan näköinen: apina, jolla ei ole lainkaan karvoja
ruumiinsa verhona. He seurasivat Tugin jälkiä. Minä näin heidät."

Kaikki neljä apinaa kääntyivät katsomaan taakseen sinne päin,


mistä
Tug oli juuri saapunut; sitten he katselivat toisiaan minuutin ajan.
"Tulkaa!" kehoitti Tugin kookkaampi ystävä. "Mennään väijymään
tulokkaita tiheään pensaikkoon aukeaman toiselle laidalle."

Hän kääntyi mennä lyllertämään aukeaman poikki toisten


seuratessa häntä. Pieni marakatti hyppeli sinne tänne haltioissaan.
Hänen paras huvinsa oli saada aikaan verisiä kohtauksia metsän
isompien asukkaiden välillä, jotta hän itse saisi istua turvassa puissa
ja katsella näytäntöä. Hän nautti nähdessään hurmetta, tämä pieni,
viiksikäs, harmaa marakatti, kunhan se vain oli toisten hurmetta;
tyypillinen tappelujen lietsoja oli harmaaparta.

Apinat piiloutuivat pensaikkoon sen polun viereen, jota pitkin


vieraiden urosten piti tulla. Tika vapisi kiihkosta. Hän oli kuullut
Manun sanat ja arvasi, että karvattoman apinan täytyi olla Tarzan,
kun taas toinen oli epäilemättä Taug. Hurjimmissa
kuvitelmissaankaan hän ei ollut toivonut tämänkaltaista apua. Hänen
ainoa toiveensa oli ollut, että hän pääsisi karkaamaan ja osaisi palata
Kertshakin heimon luokse; mutta sekin oli näyttänyt hänestä
jotakuinkin mahdottomalta: niin tarkoin oli Tug häntä vartioinut.

Kun Taug ja Tarzan saapuivat lehtoon, jossa Tug oli kohdannut


ystävänsä, kävi apinanhaju niin voimakkaaksi, että he kumpikin
tiesivät pakenijan olevan aivan lähellä heitä. Ja siksi he etenivät
vieläkin varovammin, sillä he tahtoivat karata rosvon kimppuun
takaapäin ja yllättää hänet, ennenkuin hän aavistaisi heidän
läsnäoloaan. He eivät tienneet, että pieni, harmaaviiksinen marakatti
oli ehättänyt ennen heitä, sen enempää kuin sitäkään, että kolme
paria villejä silmiä jo parhaillaan tarkkaili heidän kaikkia liikkeitään,
odottaen heidän saapuvan syyhyävien kämmenien ja kuolaisten
leukapielien ulottuville.

He tulivat lehdon läpi, mutta kun he astuivat sen toiselta puolen


alkavaan tiheään viidakkoon vievälle polulle, kajahti aivan heidän
edessään äkkiä kimeä "Krig-ah!" Tikan tutun äänen huutamana.
Tugin ja hänen toveriensa vähäiset aivot eivät olleet osanneet laskea
edeltäpäin, että Tika kavaltaisi heidät, ja kun hän nyt sen teki, valtasi
heidät vimmainen raivo. Tug antoi naaraalle ankaran iskun, joka
kaatoi hänet maahan, ja sitten he kolmisin syöksyivät taistelemaan
Tarzanin ja Taugin kanssa. Pieni marakatti hyppi oksallaan ja kiljui
ihastuksesta.

Ja saipa hän totisesti olla ihastuksissaan, sillä siitä syntyi uljas


ottelu. Ei minkäänlaisia alkuvalmistuksia, ei muodollisuuksia, ei
esittelyjä — nuo viisi urosta karkasivat ilman muuta käsikähmään.
He kierähtivät kaidalle polulle ja sitä reunustavaan tiheään
pensaikkoon. He purivat ja kynsivät, raapivat ja löivät, ja koko ajan
he pitivät mitä kauheinta melua, muristen, äristen ja karjuen.
Viidessä minuutissa he olivat täynnä vertavuotavia haavoja, ja pieni
harmaaparta hyppi korkealle, päästellen alkeellisia, kimakoita hyvä-
huutojaan; mutta aina hän tahtoi, että piti taistella loppuun asti. Hän
halusi nähdä surmattavan. Sillä ei ollut väliä, kumpi kuolisi, ystävä
vaiko vihollinen. Verta hän himoitsi — verta ja kuolemaa.

Taug oli saanut vastaansa Tugin ja toisen tämän tovereista, kun


taas Tarzanin osalla oli kolmas — tavattoman kookas otus, väkevä
kuin puhveli. Tarzanin vastustaja ei ollut milloinkaan ennen nähnyt
niin kummallista olentoa kuin tämä liukas, karvaton uros, jonka
kanssa hän kamppaili. Hiki ja veri valui pitkin Tarzanin sileää ruskeaa
ihoa. Yhä uudelleen hän luiskahti ison apinan kynsistä ja koetti koko
ajan saada temmatuksi metsästyspuukkonsa tupesta, johon hän oli
sen pistänyt.

Viimein se onnistui — ruskea käsi ojentui, pudistuen karvaiseen


kurkkuun, toinen heilahti ylöspäin, välkyttäen terävää asetta. Kolme
nopeaa, rajua iskua, ja rentona ja valittaen retkahti apina
vastustajansa alle. Heti irroittautui Tarzan kuolevan uroksen
syleilystä ja riensi auttamaan Taugia. Tug näki hänen tulevan ja
pyörähti häntä vastaan. Rajussa hyökkäyksessä luiskahti puukko
Tarzanin kädestä, ja sitten hän joutui käsikähmään Tugin kanssa. Nyt
oli taistelu tasainen — kaksi kahta vastaan — ja lisäksi Tika, joka
tällävälin oli tointunut saamastaan iskusta, puikkelehti sivussa,
vaanien tilaisuutta voidakseen auttaa. Hän huomasi Tarzanin veitsen
ja otti sen maasta. Kertaakaan hän ei ollut sitä käyttänyt, mutta tiesi,
miten Tarzan käytti sitä. Hän oli aina pelännyt tuota asetta, joka
tuotti kuoleman viidakon väkevimmillekin asukkaille yhtä helposti
kuin Tantorin vankat torahampaat tuottavat kuoleman Tantorin
vihollisille.

Hän näki, että Tarzanin reppu sinkoutui irti vyöstä, ja noudattaen


apinalle ominaista uteliaisuutta, jota ei edes vaara eikä kiihtymys voi
täydelleen tukahduttaa, hän nosti senkin maasta.

Nyt olivat urokset seisoallaan — otteet olivat hellinneet. Veri virtasi


pitkin heidän kylkiään; heidän kasvonsa olivat siitä punaisina. Pieni
harmaaparta oli niin ihastunut, että hän oli viimeinkin unohtanut
kirkua ja hyppiä, istui vain jäykkänä, katsellen hurmaantuneena
näytelmää.
Takaisin lehdon läpi pakottivat Tarzan ja Taug vastustajansa
peräytymään. Tika seurasi heitä hitaasti. Hän tuskin tiesi mitä tehdä.
Hän oli herpaantunut, kipeä ja nääntynyt kestämästään kauheasta
koettelemuksesta, ja sukupuolensa tavoin hän luotti puolisonsa ja
toisen omaan heimoonsa kuuluvan uroksen taistelukuntoon — he
eivät tarvitsisi naaraksen apua otellessaan noita kahta vierasta
urosta vastaan.

Kamppailijoiden karjaisut ja kiljunta kiirivät viidakossa, niin että


kaukaiset kukkulat kajahtelivat, Tarzanin vastustajan kurkusta oli
useita kertoja lähtenyt "Krig-ah!" ja nyt kuului takaapäin hänen
odottamansa vastaus. Ärjyen ja murahdellen saapui lehtoon
parikymmentä isoa koirasapinaa — Tugin heimon taistelijoita.

Tika havaitsi heidät ensiksi ja kirkaisi, varoittaen Tarzania ja


Taugia. Sitten hän pakeni ottelijain sivuitse aukeaman vastaiselle
laidalle, sillä hetkeksi valtasi hänet pelko. Eikä häntä sovi siitä
moittia, kun otetaan huomioon ne hirveät vaivat, joiden seurauksista
hän vieläkin kärsi.

Isot apinat lähestyivät kiirehtien. Hetkisen kuluttua olisivat Tarzan


ja Taug siekaleina, jotka sittemmin olisivat pääruokana tappojuhlan
villissä ateriassa. Tika kääntyi vilkaisemaan taaksepäin. Hän tajusi,
mikä kohtalo hänen puolustajiaan uhkasi, ja hänen rajussa
rinnassaan syttyi palamaan se uhrautuvaisuuden liekki, jonka
yhteinen kantaäiti on jättänyt perinnöksi yhtä hyvin Tikalle, villille
apinalle, kuin miestensä tähden kuolemaa uhitelleille, yleville,
korkealle kehittyneille naisille. Kimeästi kirkaisten hän lähti
rientämään taistelevia kohti, jotka temmelsivät sekasotkuisena
röykkiönä yhden sellaisen kivimöhkäleen juurella, joita oli lehdossa
siellä täällä.
Mutta mitä hän kykeni tekemään? Kädessään olevaa puukkoa hän
ei kyennyt käyttelemään tehokkaasti, koska hän oli uroksia heikompi.
Hän oli nähnyt Tarzanin heittelevän aseita, ja sen taidon oli hän
muun muassa oppinut lapsuudenaikaiselta leikkitoveriltaan. Hän etsi
jotakin heittoasetta, ja vihdoin hänen sormensa osuivat
apinamieheltä pudonneessa pussissa oleviin koviin esineisiin. Hän
repi repun auki ja kahmaisi kourallisen kiiltäviä lieriöitä — raskailta
niin pieniksi ne tuntuivat hänestä, oivallisilta heittoaseilta. Kaikin
voimin hän sinkautti ne graniittilohkareen vierellä otteleviin
apinoihin.

Tulos ällistytti Tikaa aivan yhtä paljon kuin apinoitakin. Kuului kova
pamaus, joka pani taistelijoiden korvat lukkoon, ja ilmaan lehahti
kirpeää savua. Ei koskaan ollut heistä yksikään kuullut niin
hirvittävää täräystä. Kirkuen kauhusta hypähtivät vieraat apinat
pystyyn ja pakenivat heimonsa oleskelupaikalle päin, samalla kun
Tarzan ja Taug tointuivat hitaasti ja nousivat heikkoina ja verisinä
seisomaan. Myöskin he olisivat mielellään paenneet, jolleivät he olisi
nähneet Tikan seisovan edessään, puukko ja reppu kädessään.

"Mikä se oli?" kysyi Tarzan.

Tika pudisti päätään. "Minä viskasin näillä vieraita uroksia", hän


sanoi ja näytti toista kourallista kiiltäviä metallilieriöitä, joiden toinen
pää oli himmeä, harmaa ja kartionmuotoinen.

Tarzan katsahti niihin ja raapi päätään.

"Mitä ne ovat?" tiedusti Taug.

"En tiedä", vastasi Tarzan. "Minä löysin ne."


Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.

More than just a book-buying platform, we strive to be a bridge


connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.

Join us on a journey of knowledge exploration, passion nurturing, and


personal growth every day!

testbankbell.com

You might also like