Object Oriented with Java

There are many ways you can design and code systems. There are two common approaches in programming:


 * Procedural programming: where the program is composed of functions and modules that aim to do a task.
 * Object-Oriented Programming: "is a method of programming based on a hierarchy of classes, and well-defined and cooperating objects." In OOP, the software objects is used to model real-life ones such as car, employee, DVD, etc. Some common O.O. Programming Languages are: C++, Java , and Smalltalk.

This module aims to enable learners to write a software program from an object-oriented perspective. Object-Oriented programming paradigm is concerned with constructing software systems out of interacting units of software called objects. The way that objects do works is by sending messages to each other during the execution of the program. The most important motive behind Object-Oriented Programming trend is the resuability issue, where the produced code can be resued which saves effort, and time of prgramming and testing process.

"Programming in an object-oriented language is more than just learning new syntax rules; it requires a new way of thinking. The idea is not to concentrate primarily on the fundamenatls of procedural languages-data structures and algorithms-but instead to think in terms of the objects that will carry out the required tasks."

Learners will know Object Oriented principles such as: objects, classes, inheritance, and polymorphism using Java language. In addition the module teaches array, and Collection Framework (Set, Map, and List), and reading from/writing to files.

The module uses BlueJ Environment to present its implemented projects.

The module consists of 12 units as below:


 * Unit 1: Object-oriented programming with java
 * Unit 2: Object concepts
 * Unit 3: Variables, objects and representations
 * Unit 4: An introduction to methods
 * Unit 5: Dialog boxes, selection and iteration
 * Unit 6: Subclassing and inheritance
 * Unit 7: Code design and class members
 * Unit 8: Designing code, dealing with errors
 * Unit 9: Collections: arrays, strings and StringBuilder
 * Unit 10: Collection: sets and maps
 * Unit 11: Ordered and sorted collections
 * Unit 12: Streams, files and persistent objects