Unit - I : Foundations of Object Oriented Programming Software Evolution, Introduction to Procedural, Modular, Object - Oriented and Generic Programming Techniques, Limitations of Procedural Programming, Need of Object- Oriented Programming, Fundamentals of Object-Oriented Programming : Objects, Classes, Data Members, Methods, Messages, Data Encapsulation, Data Abstraction and Information Hiding, Inheritance, Polymorphism, Static and Dynamic Binding, Message Passing. (Chapter - 1) UNIT - II : Classes, Objects and Methods Creating a Class, Visibility/Access Modifiers, Encapsulation, Methods : Adding a Method to Class, Returning a Value, Adding a Method That Takes Parameters, The 'this' Keyword, Method Overloading, Object Creation, Using Object as a Parameters, Returning Object, Array of Objects, Memory Allocation : 'new', Memory Recovery : 'delete', Static Data Members, Static Methods, Forward Declaration, Class as Abstract Data Types (ADTs), Classes as Objects. (Chapter - 2) Unit III Constructors and Destructors Constructors : Introduction, Use of Constructor, Characteristics of Constructors, Types of Constructor, Constructor Overloading, Dynamic Initialization of an Object, Constructor with Default Arguments, Symbolic Constants, Garbage Collection : Destructors and Finalizers. (Chapter - 3) Unit IV Inheritance and Polymorphism Inheritance : Introduction, Need of Inheritance, Types of Inheritance, Benefits of Inheritance, Cost of Inheritance, Constructors in derived Classes, Method Overriding, Abstract Classes and Interfaces. Polymorphism and Software Reuse : Introduction, Types of Polymorphism (Compile Time and Run Time Polymorphism), Mechanisms for Software Reuse, Efficiency and Polymorphism. (Chapter - 4) Unit V Exception Handling and Generic Programming Exception : Errors, Types of Errors, Exception and its Types, Exception-Handling Fundamentals, Uncaught Exception, Using try and Catch, Multiple Catch Clauses, Nested Try Statements, User Define Exception using Throw. Generics : What are Generics ? Introduction to Language Specific Collection Interface: List Interface and Set Interface, Collection Classes: ArrayList Class and LinkedList Class. (Chapter - 5) Unit VI File Handling and Design Patterns File Handling : Introduction, Concepts of Stream, Stream Classes, Byte Stream Classes, Character Stream, Classes, Using Stream, and Other Useful I/O Classes, Using the File Class, Input/output Exceptions, Creation of Files, Reading/Writing Character, Reading/Writing Bytes, Handling Primitive Data Types, Concatenating and Buffering Files, Random Access Files. Design Patterns : Introduction, Types of Design Patterns, Adapter, Singleton, Iterator (Chapter - 6)