A Comprehensive Introduction to Object-Oriented Programming with Java

by
Edition: 1st
Format: Paperback
Pub. Date: 2007-02-13
Publisher(s): McGraw-Hill Education
List Price: $149.14

Rent Textbook

Select for Price
There was a problem. Please try again later.

New Textbook

We're Sorry
Sold Out

Used Textbook

We're Sorry
Sold Out

eTextbook

We're Sorry
Not Available

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

This expanded version of the author's highly regarded Introduction to Object-Oriented Programming with Java is an accessible and technically thorough introduction to programming using Java. As in previous editions, the author takes what he calls an "objects-first" approach to object-oriented programming. Proper design practice is emphasized throughout, with students learning first to be object users and then to be class designers. Beginning students will benefit from the emphasis on step-by-step program design and the author's hallmark visual approach, while students of all levels will appreciate the book's problem-solving orientation and numerous sample development programs. Java 5.0 features are incorporated throughout the book and include full coverage of the scanner class for input, the formatter class, and generics.

Table of Contents

Prefacep. xiii
Key Differences from the Standard Editionp. xiii
Book Organizationp. xiv
Hallmark Features of the Textp. xviii
Introduction to Computers and Programming Languagesp. 1
A History of Computersp. 2
Computer Architecturep. 4
Programming Languagesp. 11
Javap. 12
Introduction to Object-Oriented Programming and Software Developmentp. 15
Classes and Objectsp. 16
Messages and Methodsp. 18
Class and Instance Data Valuesp. 20
Inheritancep. 23
Software Engineering and Software Life Cyclep. 24
Getting Started with Javap. 29
The First Java Programp. 30
Program Componentsp. 39
Edit-Compile-Run Cyclep. 49
Sample Java Standard Classesp. 52
Sample Developmentp. 67
Numerical Datap. 81
Variablesp. 82
Arithmetic Expressionsp. 90
Constantsp. 95
Displaying Numerical Valuesp. 97
Getting Numerical Inputp. 103
The Math Classp. 109
Random Number Generationp. 113
The GregorianCalendar Classp. 115
Sample Developmentp. 120
Numerical Representation (Optional)p. 131
Defining Your Own Classes-Part 1p. 145
First Example: Defining and Using a Classp. 146
Second Example: Defining and Using Multiple Classesp. 156
Matching Arguments and Parametersp. 160
Passing Objects to a Methodp. 162
Constructorsp. 167
Information Hiding and Visibility Modifiersp. 172
Class Constantsp. 175
Local Variablesp. 183
Calling Methods of the Same Classp. 185
Changing Any Class to a Main Classp. 189
Sample Developmentp. 190
Selection Statementsp. 213
The if Statementp. 214
Nested if Statementsp. 225
Boolean Expressions and Variablesp. 231
Comparing Objectsp. 239
The switch Statementp. 244
Drawing Graphicsp. 248
Enumerated Constantsp. 258
Sample Developmentp. 264
Repetition Statementsp. 295
The while Statementp. 296
Pitfalls in Writing Repetition Statementsp. 305
The do-while Statementp. 311
Loop-and-a-Half Repetition Controlp. 315
The for Statementp. 319
Nested for Statementsp. 324
Formatting Outputp. 326
Loan Tablesp. 331
Estimating the Execution Timep. 334
Recursive Methods (Optional)p. 338
Sample Developmentp. 343
Defining Your Own Classes-Part 2p. 365
Returning an Object from a Methodp. 366
The Reserved Word thisp. 370
Overloaded Methods and Constructorsp. 378
Class Variables and Methodsp. 383
Call-by-Value Parameter Passingp. 387
Organizing Classes into a Packagep. 394
Using Javadoc Comments for Class Documentationp. 395
The Complete Fraction Classp. 400
Sample Developmentp. 410
Exceptions and Assertionsp. 437
Catching Exceptionsp. 438
Throwing Exceptions and Multiple catch Blocksp. 445
Propagating Exceptionsp. 450
Types of Exceptionsp. 458
Programmer-Defined Exceptionsp. 461
Assertionsp. 463
Sample Developmentp. 469
Characters and Stringsp. 487
Charactersp. 488
Stringsp. 491
Pattern Matching and Regular Expressionp. 502
The Pattern and Matcher Classesp. 509
Comparing Stringsp. 513
StringBuffer and StringBuilderp. 515
Sample Developmentp. 521
Arrays and Collectionsp. 543
Array Basicsp. 544
Arrays of Objectsp. 555
The For-Each Loopp. 565
Passing Arrays to Methodsp. 569
Two-Dimensional Arraysp. 576
Lists and Mapsp. 583
Sample Developmentp. 596
Sorting and Searchingp. 619
Searchingp. 620
Sortingp. 624
Heapsortp. 632
Sample Developmentp. 645
File Input and Outputp. 669
File and JFileChooser Objectsp. 670
Low-Level File I/Op. 679
High-Level File I/Op. 684
Object I/Op. 693
Sample Developmentp. 700
Inheritance and Polymorphismp. 713
A Simple Examplep. 714
Defining Classes with Inheritancep. 717
Using Classes Effectively with Polymorphismp. 721
Inheritance and Member Accessibilityp. 724
Inheritance and Constructorsp. 729
Abstract Superclasses and Abstract Methodsp. 733
Inheritance versus Interfacep. 738
Sample Developmentp. 739
GUI and Event-Driven Programmingp. 765
Simple GUI I/O with JOptionPanep. 768
Customizing Frame Windowsp. 771
GUI Programming Basicsp. 777
Text-Related GUI Componentsp. 787
Layout Managersp. 798
Effective Use of Nested Panelsp. 808
Other GUI Componentsp. 817
Menusp. 835
Handling Mouse Eventsp. 839
Recursive Algorithmsp. 859
Basic Elements of Recursionp. 860
Directory Listingp. 861
Anagramp. 863
Towers of Hanoip. 866
Quicksortp. 868
When Not to Use Recursionp. 873
Memory Allocation Schemes and Linked Data Structuresp. 879
Contiguous Memory Allocation Schemep. 881
Noncontiguous Memory Allocation Schemep. 886
Manipulating Linked Listsp. 890
Linked Lists of Objectsp. 903
Sample Developmentp. 908
Generics and Type Safetyp. 945
Generic Classesp. 946
Generics and Collectionsp. 961
Generics, Inheritance, and Java Interfacep. 969
Additional Topics and Pitfallsp. 974
List ADTp. 981
The List ADTp. 982
The List Interfacep. 988
The Array Implementation of the List ADTp. 992
The Linked-List Implementation of the List ADTp. 1001
The Linked Implementation with the Head Nodep. 1018
The Iterator Design Patternp. 1022
Sample Developmentp. 1027
Stack ADTp. 1035
The Stack ADTp. 1036
The Stack Interfacep. 1040
The Array Implementationp. 1042
The Linked-List Implementationp. 1047
Implementation Using NPSListp. 1052
Sample Applications: Matching HTML Tagsp. 1053
Sample Applications: Solving a Maze with Backtrackingp. 1060
Queue ADTp. 1069
The Queue ADTp. 1070
The Queue Interfacep. 1073
The Array Implementationp. 1075
The Linked-List Implementationp. 1082
Implementation Using NPSListp. 1088
Priority Queuep. 1089
p. 1099
p. 1107
p. 1133
p. 1155
Indexp. 1163
Table of Contents provided by Ingram. All Rights Reserved.

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.