Object Oriented Programming with Java

Course topics

  1. JVM platform. Primitive types
    • Java Platform & Java Language.
    • Garbage collector.
  2. Class Concept. Objects life cycle. Methods. Arrays. Key OOP Concepts
    • Java Classes. The main Method. Creating simple Java classes.
    • Compiling and running Java applications.
    • Primitive variables and wrappers.
    • Describing Objects and Classes. Working with Object References.
    • Creating and Using Methods. Method arguments and return values. Static methods and variables. Overloading methods. Overloaded method resolution.
    • Creating and manipulate arrays. Alternate Looping Constructs. Arrays Class.
  3. Constructing objects and Encapsulation
    • Default constructor and User-defined constructors. Order of fields initialization.
    • Using encapsulation in Java class design. Java access specifiers.
    • Inheritance and Polymorphism. Subclasses and superclasses. Overriding methods. Using virtual method invocation.
    • Abstract Classes and Interfaces.
    • Inner Classes. Anonymous inner classes.
    • Class Object.
    • Enumerated Types.
    • Exceptions. Overriding
  4. Generics & Collections
    • Java Collections. Interface: List, Set, Queue, Dequeue, Map.
    • Hashing and hash codes.
    • Traversing Collections. Ordering collections.
    • Type systems. Liskov Substitution Principle.
    • Java Generics. Type erasure. Wildcards. Function subtyping.
  5. Object Oriented Architecture and Design
  6. S.O.L.I.D. and introduction to patterns
    • Design principles
    • S.O.L.I.D.
    • Lazy evaluations
    • Demetra law
    • Software Design Patterns
  7. GOF and GRASP

Prerequisites

Basics of the procedural programming and algorithmic thinking.