
Object-Oriented Programming and Java
By:Â Danny Poo, Derek Kiong, Swarnalatha Ashok
Paperback | 12 October 2007 | Edition Number 2
At a Glance
344 Pages
Revised
22.23 x 15.24 x 1.91
Paperback
$84.99
or 4 interest-free payments of $21.25 with
 orÂShips in 5 to 7 business days
Object-Oriented Programming and Java presents two important topics in contemporary software development: object-oriented programming and Java. This book takes a different teaching approach from most available literature, it begins with the description of real-world object interaction scenarios and explains how they can be translated, represented and executed using object-oriented programming paradigm.
Principally, Java is an object-oriented programming language. By establishing a solid foundation in the understanding of object-oriented programming concepts and their applications, the book provides readers with the pre-requisites for writing proper object-oriented programs using Java.
Object-Oriented Programming and Java covers the latest in Java technologies and is suitable for undergraduate or postgraduate courses on object-oriented technology, and in particular, using Java as a programming language for creating object-oriented programs.
Industry Reviews
| Preface to 1st Edition | p. xiii |
| Preface to 2nd Edition | p. xv |
| Overview | p. xvii |
| Acknowledgement | p. xix |
| Introduction | p. 1 |
| Object-Oriented Programming | p. 1 |
| Objects and Their Interactions in the Real World | p. 2 |
| Objects and Their Interactions in Programming | p. 3 |
| Simulation | p. 3 |
| Java | p. 4 |
| Summary | p. 4 |
| Exercises | p. 5 |
| Object, Class, Message and Method | p. 7 |
| Objects and Class | p. 7 |
| Message and Method | p. 9 |
| Message Components | p. 10 |
| Method | p. 10 |
| Client and Server | p. 11 |
| Creating Objects | p. 12 |
| Summary | p. 14 |
| Exercises | p. 14 |
| A Quick Tour of Java | p. 17 |
| Primitive Types | p. 17 |
| Object Definition | p. 18 |
| Variable Definitions | p. 18 |
| Methods | p. 19 |
| Object Instantiation | p. 20 |
| Object Access and Message Passing | p. 21 |
| Representational Independence | p. 21 |
| Overloading | p. 22 |
| Initialization and Constructors | p. 23 |
| Expressions, Statements, and Control-flow Mechanisms | p. 24 |
| Operators | p. 24 |
| Expression Statements | p. 30 |
| Control-flow Statements | p. 30 |
| Blocks | p. 32 |
| Local Declarations | p. 32 |
| More Control-flow Statements | p. 33 |
| Arrays | p. 34 |
| Result Returned by Method | p. 35 |
| Summary | p. 36 |
| Exercises | p. 36 |
| Implementation in Java | p. 39 |
| Calculator | p. 39 |
| The clear() Method | p. 40 |
| The display() Method | p. 41 |
| The digit() Method | p. 41 |
| Operator Methods | p. 41 |
| Code Execution | p. 42 |
| Simple User Interface | p. 44 |
| Another Interface for Calculator Engine | p. 46 |
| Event-Driven Programming | p. 48 |
| Summary | p. 49 |
| Exercises | p. 49 |
| Classification, Generalization, and Specialization | p. 51 |
| Classification | p. 51 |
| Hierarchical Relationship of Classes | p. 53 |
| Superclass and Subclass | p. 53 |
| A Class Hierarchy Diagram | p. 54 |
| Generalization | p. 55 |
| Specialization | p. 56 |
| Organization of Class Hierarchy | p. 56 |
| Abstract and Concrete Classes | p. 57 |
| Summary | p. 58 |
| Exercises | p. 58 |
| Inheritance | p. 61 |
| Common Properties | p. 61 |
| Inheritance | p. 62 |
| Implementing Inheritance | p. 64 |
| Code Reuse | p. 67 |
| Making Changes in Class Hierarchy | p. 67 |
| Change in Property Definition for All Subclasses | p. 67 |
| Change in Property Definition for Some Subclasses | p. 68 |
| Adding/Deleting a Class | p. 72 |
| Accessing Inherited Properties | p. 75 |
| Inheritance Chain | p. 75 |
| Multiple Inheritance | p. 76 |
| Problems Associated with Multiple Inheritance | p. 77 |
| Contract and Implementation Parts | p. 79 |
| Contract and Implementation Inheritance | p. 79 |
| Interface | p. 80 |
| Multiple Inheritance Using Interface | p. 80 |
| Attributes in an Interface | p. 83 |
| Methods in an Interface | p. 83 |
| Abstract Class and Interface | p. 83 |
| Extending Interface | p. 84 |
| Limitations of Interface for Multiple Inheritance | p. 85 |
| Summary | p. 88 |
| Exercises | p. 89 |
| Polymorphism | p. 93 |
| Static Binding | p. 93 |
| Dynamic Binding | p. 96 |
| Operation Overloading | p. 97 |
| Same Method Signature | p. 97 |
| Overloading Method Names | p. 98 |
| Polymorphism | p. 100 |
| Selection of Method | p. 100 |
| Incremental Development | p. 101 |
| Increased Code Readability | p. 102 |
| Summary | p. 102 |
| Exercises | p. 102 |
| Modularity | p. 103 |
| Methods and Classes as Program Units | p. 103 |
| Object and Class Properties | p. 103 |
| Counting Instances | p. 104 |
| Shared Attributes | p. 106 |
| Class Attributes | p. 107 |
| Class Methods | p. 107 |
| Name Aliases | p. 108 |
| Controlling Visibility | p. 108 |
| Packages | p. 110 |
| The package Keyword | p. 110 |
| The import Keyword | p. 110 |
| Encapsulation | p. 111 |
| Bundling and Information Hiding | p. 112 |
| Enhanced Software Maintainability | p. 112 |
| Trade-Off | p. 115 |
| Summary | p. 116 |
| Exercises | p. 117 |
| Exception Handling | p. 119 |
| Using Exceptions | p. 119 |
| Exception Terminology | p. 120 |
| Constructs and Exception Semantics in Java | p. 120 |
| Defining Exception Objects | p. 121 |
| Defining Exception Handlers | p. 121 |
| Raising Exceptions | p. 122 |
| A Simple Example | p. 123 |
| Paradigms for Exception Handling | p. 125 |
| Multiple Handlers | p. 125 |
| Regular Exception Handling | p. 127 |
| Accessing Exception Objects | p. 128 |
| Subconditions | p. 128 |
| Nested Exception Handlers | p. 129 |
| Layered Condition Handling | p. 130 |
| Code Finalization and Cleaning Up | p. 130 |
| Object Finalization | p. 131 |
| Block Finalization | p. 131 |
| Summary | p. 132 |
| Exercises | p. 133 |
| Input and Output Operations | p. 135 |
| An Introduction to the Java API | p. 135 |
| Reading the Java API Documentation | p. 136 |
| Basic Input and Output | p. 138 |
| File Manipulation | p. 141 |
| File Input | p. 142 |
| File Output | p. 143 |
| Printing Using PrintStream | p. 144 |
| Framework for Code Reuse | p. 145 |
| DataInputStream and DataOutputStream Byte Stream Class | p. 147 |
| Character Stream Classes | p. 148 |
| Tokenizing the Input Using the Scanner Class | p. 150 |
| Formatting the Output Using the Format String | p. 151 |
| The File Class | p. 152 |
| Random Access File Operations | p. 152 |
| Summary | p. 153 |
| Exercises | p. 153 |
| Networking and Multithreading | p. 155 |
| The Network Model | p. 155 |
| Sockets in Java | p. 156 |
| Example Client: Web Page Retriever | p. 157 |
| Listener Sockets in Java | p. 161 |
| Example Server: Simple Web Server | p. 161 |
| Running the Web Server | p. 164 |
| Considering Multiple Threads of Execution | p. 165 |
| Creating Multiple Threads of Execution | p. 166 |
| Thread Creation Using the Thread Class | p. 166 |
| Thread Creation Using the Runnable Interface | p. 168 |
| Improvement of Web Server Example | p. 168 |
| Thread Synchronization and Shared Resources | p. 169 |
| Summary | p. 175 |
| Exercises | p. 176 |
| Generics and Collections Framework | p. 179 |
| Introduction | p. 179 |
| Rationale Behind Generics | p. 179 |
| The Problem | p. 180 |
| Run-time Type Identification (RTTI) | p. 182 |
| Java Generics | p. 183 |
| Generic Class | p. 183 |
| Generic Method | p. 185 |
| Collections Framework | p. 186 |
| Collections Interface | p. 186 |
| ArrayList Class | p. 187 |
| HashSet Class | p. 190 |
| HashMap Class | p. 194 |
| Sorting Collections | p. 196 |
| Sort Algorithm | p. 196 |
| Comparator Interface | p. 197 |
| Searching Collections | p. 198 |
| indexOf and contains Methods | p. 198 |
| binarySearch Method | p. 198 |
| Summary | p. 199 |
| Exercises | p. 199 |
| Graphical Interfaces and Windows | p. 201 |
| The AWT Model | p. 201 |
| Basic AWT Constituents | p. 202 |
| Frames | p. 203 |
| Components | p. 204 |
| Panels | p. 205 |
| Layout in Panels | p. 206 |
| Events | p. 209 |
| Events in JDK 1.1 (and later versions) | p. 212 |
| Basic Components | p. 214 |
| Label Component | p. 214 |
| Button Component | p. 215 |
| Checkbox Component | p. 215 |
| CheckboxGroup Component | p. 215 |
| TextArea Component | p. 216 |
| Choice Component | p. 217 |
| List Component | p. 218 |
| Menus and Menu Items | p. 219 |
| Dialog Frames | p. 221 |
| File Dialog Frames | p. 223 |
| Custom Components | p. 224 |
| Other Kinds of Class Definitions | p. 226 |
| Inner Classes | p. 227 |
| Anonymous Classes | p. 227 |
| Local Classes | p. 228 |
| Swing Components | p. 230 |
| Transiting from AWT to Swing | p. 231 |
| Model versus View | p. 234 |
| Summary | p. 235 |
| Exercises | p. 236 |
| Applets and Loaders | p. 237 |
| Applet Characteristics | p. 237 |
| Applet Life Cycle | p. 241 |
| Custom Applets | p. 242 |
| Images and Audio | p. 243 |
| Animation in Applets | p. 245 |
| Efficient Repainting | p. 247 |
| Applet Parameters | p. 248 |
| Loading Code Dynamically | p. 250 |
| Security Restrictions for Untrusted Code | p. 253 |
| Security Policy | p. 255 |
| Keys | p. 256 |
| Permissions | p. 256 |
| Summary | p. 258 |
| Exercises | p. 258 |
| Java Servlets | p. 259 |
| Dynamic Web Pages and Servlets | p. 259 |
| Tomcat Installation | p. 260 |
| Downloading and Installation | p. 260 |
| Configuration | p. 261 |
| Starting and Stopping Tomcat | p. 262 |
| Sample Servlet | p. 263 |
| Servlet Characteristics | p. 266 |
| Servlet Paramters and Headers | p. 266 |
| Servlet Output | p. 271 |
| Handling Sessions | p. 271 |
| Session Timeout | p. 274 |
| Concurrency | p. 274 |
| Customized Processors | p. 274 |
| Summary | p. 276 |
| Exercises | p. 277 |
| Object Serialization and Remote Method Invocation | p. 279 |
| Object Serialization | p. 279 |
| Components in Object Serialization | p. 281 |
| Custom Serialization | p. 281 |
| The Externalizable Interface | p. 284 |
| Distributed Computing with Java | p. 284 |
| RMI and CORBA | p. 285 |
| Java Limitations | p. 285 |
| An Overview of Java RMI | p. 286 |
| Using Java RMI | p. 287 |
| Setting Up the Environment on Your Local Machine | p. 287 |
| How RMI Works | p. 287 |
| An RMI Example | p. 288 |
| RMI System Architecture | p. 289 |
| Under the Hood | p. 291 |
| RMI Deployment | p. 293 |
| Summary | p. 295 |
| Exercises | p. 295 |
| Java Database Connectivity | p. 297 |
| Introduction | p. 297 |
| Java Database Connectivity | p. 297 |
| JDBC Architecture | p. 298 |
| JDBC Drivers | p. 298 |
| Types of Drivers | p. 299 |
| JDBC APIs | p. 302 |
| Establishing a Connection | p. 302 |
| Data Manipulation | p. 303 |
| Data Definition Language (DDL) with JDBC | p. 305 |
| Creating a Table | p. 305 |
| Dropping a Table | p. 306 |
| Data Manipulation Language (DML) with JDBC | p. 307 |
| Creating (Inserting) Records Using JDBC | p. 307 |
| Deleting Records Using JDBC | p. 307 |
| Retrieving Records Using JDBC | p. 307 |
| Updating Records Using JDBC | p. 309 |
| Updatable Result Sets | p. 310 |
| Prepared Statements | p. 311 |
| Summary | p. 313 |
| Exercises | p. 313 |
| Index | p. 315 |
| Table of Contents provided by Publisher. All Rights Reserved. |
ISBN: 9781846289620
ISBN-10: 1846289629
Published: 12th October 2007
Format: Paperback
Language: English
Number of Pages: 344
Audience: Professional and Scholarly
Publisher: Springer Nature B.V.
Country of Publication: GB
Edition Number: 2
Edition Type: Revised
Dimensions (cm): 22.23 x 15.24 x 1.91
Weight (kg): 0.51
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In

Head First Python
3rd Edition - A Learner's Guide to the Fundamentals of Python Programming, a Brain-Friendly Guide
Paperback
RRP $125.75
$60.99
OFF

Head First Objects-Oriented Analysis and Design
The Best Introduction to Object Orientated Programming
Paperback
RRP $133.00
$64.75
OFF

Modern Concurrency in Java
A Deep Dive Into Virtual Threads, Structured Concurrency, and Scoped Values
Paperback
RRP $123.75
$60.75
OFF
This product is categorised by
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentObject-Oriented Programming or OOP
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentWeb Programming
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentProgramming & Scripting Languages
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentSoftware Engineering





















