Preface This book is a second in programming, using the Object Oriented paradigm. It provides an in depth and extensive coverage in programming techniques to a variety of problems. The material is more detailed than the previous course, and is supported with larger programs. Concepts Covered • Program Design Principles - Cohesion & Coupling • Inheritance & Polymorphism • Exception and Exception Handling • Files and Streams • Elementary Data Structure • Graphical User Interface Pre-requisite • Knowledge of constructing a class • Understand data types • Knowledge of arithmetic, relational and logical expressions • Knowledge of program control - sequence, selection, and iteration • Knowledge of one and two dimensional arrays • Searching and sorting. Overview Chapter 1 - Object Oriented Software Design In this chapter you will learn the principles of OOD using cohesion and coupling. You will learn about class relationship diagrams; how they are used to model solutions. Chapter 2 - Inheritance and Polymorphism In this chapter you will learn the concept of inheritance and polymorphism which are fundamental to Object Oriented Programming (OOP). Chapter 3- Exception and Exception Handling In this chapter you will learn about exception, how it can cause a program to terminate abnormally, and how you can write codes to prevent this from happening. Chapter 4 Files and Streams In this chapter you learn to read and write text files as well as image files. You learn about serial access files as well as random access files Chapter 5 Recursion In this chapter you will learn about a type of programming technique that causes, not only a statement or a block of statements to be executed repeatedly, but also an entire method calling itself repeatedly. Chapter 6 - An Introduction to Data Structure In this chapter you will learn about data structure - particular ways of organizing and storing data for efficient retrieved and manipulation in terms of processing time and hardware resources. In this chapter you learn about the Java Collections Framework that contains classes for this purpose. Chapter 7 - Specialized Lists - Stack ▪ Queue ▪ LinkedList ▪ HashMap In this chapter you will learn about four specialized data structures - Stack, Queue, LinkedList, and HashMap. Chapter 8 - Introduction to Graphical User Interface (GUI) GUI - a type of program that allows the user to interact with the computer via graphical symbols such as buttons and menus. In this chapter you will learn how to write such programs. Chapter 9 - Events and Event Handling The programs we have written so far, called widow base programs, were designed to run sequentially, as coded; hence the next statement to be executed is predictable. With GUI programs, they allow the user to interact with the computer; hence the next statement to be executed is not predictable. In this chapter we will learn how to develop such programs. Chapter 10 - Graphics All of the programs that we have written so far are text base programs. In this chapter you learn how to free hand draw onto component, or make static figures onto components.