Course Weekly Outline
WeekTopics Covered
Lab Experiments Assignments
1
Programming Paradigms
Non structured (unstructured) Programming ,Procedural Oriented Programming
Modular Programming
Rapid introduction to OOP concepts
A comparison among programming paradigms
Introduction to imperative and strictly typed programming in Java.
Data types, variables, expressions and arithmetic.
2,3
Introduction to OOP
Class notation and definition (with graphical examples)
Class relation types ( is a , type of )
Data types and arrays in java
4
5,6
OOP concepts
Abstraction concept and abstract data type
Data hiding concept
Encapsulation concept
Reuse concept
Class definition using Java
Class body
Methods (operations) within class
Examples
Control statements
Variables and reference types
Rectangle class, Point class, Triangles class, circle class, date class, student class and person class
7
8
9
Creating objects
Access attributes
Access methods
Examples
Access type
Private, and public
Examples
Constructor Methods
Definition
Examples
Rectangle class, Point class, Triangles class, circle class, date class, cube class and person class (with constructors) in addition to access types (access modifier)
10
11
Polymorphism concepts first part
Method OverloadingConstructor Overloading
Array of objects
Examples
-Creating an array of rectangles and printing their areas and the summation of areas.
12
13
Strings
Declaration and Initialization
Reading and printing
Processing (sorting, searching,concatenating,.. etc)
String as the method parameters and return values
Examples
Sorting a list of names alphabetically
Replace each upper case letter by lower case letter and vice versa
14
Math class and Number types class
Math methods
Number (Integer, Float,…,etc) methods
Examples
Computing series
Reading data from K.B
15
16
17
Inheritance
Inheritance types
Protected Access type
Constructor methods in subclass
Two layers Inheritance
Student class inheritance from person class
Rectangle class inheritance from Polygon class18,19
Multiple Inheritance concepts
Interface definition
Examples
Student class that inheritance from person and date classes
20
Java Packages
Creating packages
Import packages
Access types (access modifier) with packages
Examples
Creating packages and import their classes
Polymorphism concepts second part
Method overloading (in subclass)
Method overridden
Abstract Method
Abstract Class
Definition
Examples
Rectangle and Triangle classes inheritance from Polygon class with and without abstract class
21,22
Polymorphism concepts third part
Static and dynamic binding
Examples
Real application …Motive class
23
24
Static class and members
Static attributes
Static methods
Static class
Examples
General applications
25
26
Special java keywords
This keyword in javaSuper keyword in java
Final keyword in java
Examples
General applications
27
28
Nested Classes
Nested Classes (Inner class) Definition
Anonymous Inner Classes Definition
Mixing Static and Non- Static Import
Enums as Classes
Examples
Cylinder class that has circle object
Class defined within another class
Creating package
29,30
Other Java properties for OOP
General applications stack&queu
References
1
"Object oriented Programming with Java" 2nd edition, Barry J. Holmes, JONES AND BARTLETT PUBLISHERS,2001
2
"Object Oriented Programming and Java",2nd edition, Danny Poo Derek Kiong
Swarnalatha Ashok,Springer,2008.
3
"Java How to program", Deitel and Deitel,Prentice Hall,2009