Fundamentals of Object-Oriented Programming in Java

Permanand Mohan


This book aims to present the concepts and techniques of object-oriented programming as simply as possible so that it can be easily understood and mastered by beginners. The emphasis is on presenting concepts at the right time and with the right amount of detail to encourage learning and mastery of the material. The book does not focus on the Java programming language; rather, Java is used as a vehicle to implement the object-oriented concepts presented in the book. To help readers become familiar with the Java programming language, the book starts off by describing the basic features of the language. These include data types and variables, arrays, control structures (if, while, for, etc.), and performing input and output. Several exercises have been carefully designed so that readers can get up to speed with Java as quickly as possible. The book strikes a good balance between theory and practice. Some object-oriented concepts often require lengthy explanations for beginners to fully understand the concepts. Based on years of experience in teaching object-oriented programming, the book condenses long explanations in favour of providing real examples which show how the concepts are implemented in an object-oriented program. Thus, detailed code examples are liberally interspersed with theoretical descriptions throughout the book. One of the unique features of the book is that it contains five chapters (called “Programming Projects”) which explain how to build a complete object-oriented program based on the material presented in the other chapters. These chapters appear when all the relevant material required for writing the program has been thoroughly discussed in the preceding chapters. Each of the five chapters starts by describing the problem in narrative form. The chapter then gives a detailed definition of the functionality required. Next, the chapter explains how the functionality can be implemented using the object-oriented concepts presented earlier in the book. The chapter ends with a complete working Java program that solves the problem described. Often, alternative solutions are presented so that readers will be aware that there are competing ways to implement an object-oriented program with different trade-offs. Another unique feature of the book is that that new material is not used or referenced before it has been discussed. The book is essentially incremental in nature so that new concepts being introduced always build on earlier concepts. Thus, readers are only exposed to new concepts or language features when pre-requisite material has been completely discussed. Also, great care has been taken to avoid the use of programming language features which, though very useful for advanced programmers, can make it harder for a beginner to focus on and learn the object-oriented principles being imparted. This book is based on the experience gained from many years of teaching object-oriented programming to beginners who know another programming language. It is likely to benefit readers who are looking for a good, practical introduction to object-oriented programming in Java, in an easy-to-understand format.