PAPER NO.10 OBJECT ORIENTED PROGRAMMING
GENERAL OBJECTIVE
This paper is intended to equip the candidate with the knowledge, skills and attitudes that will enable him/her to develop object oriented programs using Java.
LEARNING OUTCOMES
A candidate who passes this paper should be able to:
- Analyse a problem and develop an appropriate solution using the object oriented programming language
- Write programs using the object oriented programming language
- Test and debug object oriented programs
- Handle errors in object oriented programs
CONTENT
An overview of programming techniques and paradigms
- Introduction to object oriented programming
- Strengths of object oriented programming over other paradigms
Introduction to Java programming language
- Java language specification
- Java JDK, IDE and API
- Identifiers, data types and variables
Concepts of object oriented programming
- Methods and messages
- Abstract data types
- Classes
- Objects
- Class relationships
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism
- Interfaces
Functions/methods
- Function declaration
- Function prototype and type checking
- Arguments and parameters
- Inline functions
- Function overloading
- Pure virtual functions
- Reference and argument passing
- Writing programs using functions
Class implementation
- Overview of classes
- Member data and functions
- Data encapsulation
- Abstract classes and interfaces
- Organising codes for classes
- Writing simple programs using classes
Constructors and destructors
- Constructors and initialisations
- Object creation
- Multiple constructors in a class
- Hidden constructors
- Destructors
- Object destruction
- Virtual destructions
- Writing a program using constructors and destructors
Memory management
- Static, automatic and heap memory
- New and delete operators
- Handling memory allocation errors
- Hiding details of memory management in a class
- Implementing a dynamic string class
Scope and access control
- Variable and function scope
- Friend functions
- Constant and enumeration types
- Static members
Introduction to inheritance
- Inheritance for modelling and reuse
- Class derivation
- Access control
- Base class initialisation
- Composition
- Initialising class type members
Polymorphism and operators
- Function overriding
- Operator overloading
- Type casting and conversions
- Pointer conversion
Templates and generics
- Template mechanism
- Function templates
- Class templates
- Generic programming
- Implementing a general array class
- Standard template library
- Writing programs using standard temporary library (STL)
Serialised data and objects
- Streams and files
- Input and output streams
- File streams
- Object streams
- Object serialisation
- Readers and writers
- Writing programs using input/output streams
Object oriented application development
- Introduction to mobile application development
- Overview of object relational programming
Exception handling and error handling
- Overview of errors and exceptions
- Exception mechanism
- Error handling mechanism
- Exceptions compared to other error handling techniques
- Throw, try, catch and finally
- Exception context and stack unwinding
- Custom exceptions
- Uncaught exceptions
- Automatic cleanup in exception handling
Emerging issues and trends