Object Oriented Programming & Design

Text Book : –

Paul-Deitel-Harvey-Deitel-Java-How-To-Program   [ Download ]

Course Description : –

This course introduces the concepts of object-oriented programming to students with a background in the procedural paradigm. Note: Students who do not have prior programming experience or who are not confident in their programming ability should complete “CS 112 Programming Fundamental prior to undertaking this course.

Pre-requisite : –

CS112 : Programming Fundamental

Table of Contents:

  • Introduction to Java .
    • 1.1: Installation & Download ( JDK ) & NetBeans IDEs .
    • 1.1: Introduction, Hardware, Software .
    • 1.2: Data Hierarchy .
    • 1.3: Machine, Assembly and High-Level Languages .
    • 1.4: Introduction to Object Technology .
      • 1.4.1: The Automobile as an Object .
      • 1.4.2: Methods and Classes .
      • 1.4.3: Instantiation .
      • 1.4.4: Attributes and instance variables .
      • 1.4.5: Encapsulation and Information Hiding .
      • 1.4.6: Inheritance .
      • 1.4.7: Interface .
      • 1.4.8: Object Oriented Analysis and Design .
      • 1.4.9: The UML (Unified Modeling Language) .
  • Introduction to Java Applications; input/output and Operators .
    • 2.1: Introduction .
    • 2.2: Your first program in java: Printing a line of text .
    • 2.3: Modifying your first java program .
    • 2.4: Displaying Text with printf .
    • 2.5: Another Application: Adding Integers .
      • 2.5.1: import declaration .
      • 2.5.2: Declaration Class Addition .
      • 2.5.3: Declaring and Creating a Scanner to Obtain User Input from the Keyboard .
      • 2.5.4: Using Variables in a Calculation .
      • 2.5.5: Displaying the Result of the Calculation .
      • 2.5.6: Java API Documentation .
    • 2.6: Memory Concepts .
    • 2.7: Arithmetic .
  • Introduction to Classes, Objects, Methods and Strings .
    • 3.1: Introduction .
    • 3.2: Declaring a Class with a Method and Instantiating an Object of a Class .
    • 3.3: Declaring a Method with a parameter .
    • 3.4: Instance Variables, set methods and get methods .
    • 3.5: Primitive Types vs. Reference Types .
    • 3.6: Initializing Objects with Constructors .
    • 3.7: Floating-Point Numbers and Type double .
  • Methods .
    • 4.1: Introduction .
    • 4.2: Program Modules in Java .
    • 4.3: static Methods, static Fields and Class Math .
    • 4.4: Declaring Methods with Multiple Parameters .
    • 4.5: Notes on Declaring and Using Methods .
    • 4.6: Method-Call Stack and Activation Records .
    • 4.7: Argument Promotion and Casting .
    • 4.8: Case Study: A Game of Chance; Introducing Enumerations .
    • 4.9: Scope of Declarations .
    • 4.10: Method Overloading .
  • Arrays and ArrayLists .
    • 5.1: Introduction .
    • 5.2: Arrays .
    • 5.3: Declaring and Creating Arrays.
    • 5.4: Examples Using Arrays .
    • 5.5: Enhanced for Statement .
    • 5.6: Passing Arrays to Methods .
    • 5.7: Multidimensional Arrays .
    • 5.8: Variable-Length Argument Lists .
    • 5.9: Using Comment-Line Arguments .
    • 5.10: Class Arrays .
    • 5.11: Introduction to Collections and Class ArrayList .
  • Classes and Objects .
    • 6.1: Introduction .
    • 6.2: Controlling Access to Members .
    • 6.3: Referring to the Current Object’s Members with the “this” Reference .
    • 6.4: Overloaded Constructors .
    • 6.5: Default and No-Argument Constructors .
    • 6.6: Notes on Set and Get .
    • 6.7: Composition .
    • 6.8: Enumerations .
    • 6.9: static Class Members .
    • 6.10: final Instance Variables .
  • Object-Oriented Programming: Inheritance .
    • 7.1: Introduction .
    • 7.2: Super-Classes and Sub-Classes .
    • 7.3: protected Members .
    • 7.4: Relationship b/t Super-Classes and Sub-Classes example .
    • 7.5: Constructors in Sub-Classes .
    • 7.6: Class Object .
  • Object-Oriented Programming: Polymorphism .
    • 8.1: Introduction .
    • 8.2: Polymorphism Examples .
    • 8.3: Demonstrating polymorphic Behavior .
    • 8.4: Abstract Classes and Methods .
    • 8.5: final Methods and Classes .
    • 8.6: Interface .
    • 8.7: Common Interfaces of the Java API .
  • Exception Handling .
    • 9.1: Introduction .
    • 9.2: Example: Divide by Zero without Exception Handling .
    • 9.3: Example: Handling Arithmetic Exception and inputMismatchExceptions .
    • 9.4: when to use Exception Handling .
    • 9.5: Java Exception Hierarchy .
    • 9.6: finally Block .
    • 9.7: Stack Unwinding and Obtaining Information from an Exception Object .
    • 9.8: Chained Exceptions .
    • 9.9: Declaring New Exception Types .
    • 9.10: Preconditions and Postconditions .
    • 9.11: Assertions .
    • 9.12: try-with-Resources: Automatic Resource Deallocation .
  • GUI Components: Part I .
    • 10.1: Introduction .