OOP Java Lecture Topics

Lecture 1 - Introduction to Java
Introduction and Importance of OOP
Scope and benefits of Java
Brief history of Java
Why Java is portable. Role of JVM. How Java and C program run

Lecture 2 - Installing JDK and Running HelloWorld Program
Installation of JDK, JRE and introduction to different folders
Make sure CLI identifies java commands
Create HelloWorld program. Compile and Run it. And understand how code work
Life cycle of Java program

Lecture 3 - Getting User Input and Java Primitive Types
Import statement and using Scanner for input.
Why we do not need to import System and String class
Format specifier, escape sequence, and print* functions
Primitive types and their memory size

Lecture 4 - Class, Object, Attributes and Methods
Concept of a class and and what it contains
Define class and create an object
Define an Instance Variables in class
Define a method in class and call it. Define method with parameters
Methods can access instance variables e.g. showMessage() can access courseName

Lecture 5 - Encapsulation / Data Hiding
Access modifiers: public and private
Make instance variables private and expose via public get/set methods
Defining Get and Set Methods
Example 1. Objects should contain valid data as per organization rules
Why we should write the rules in set or get methods? e.g. balance in BankAccount class should not be negative
Why we should still define get/set methods even when there are no rules to apply on data

Lecture 6 (types, more on methods, instance and local variables)
Primitive Types and Reference Types. No methods on primitive variables
Instance variables and local variables default values
What if instance and local variables have same name
When a method should take a parameter ... very important
Call a method from another method inside the class
Why we define calculateArea inside the Rectangle class

Lecture 7 - Constructors
What is constructor and how to define and use it
What is Default Constructor and when its provided by compiler
Constructor overloading
Calling a constructor from another constructor
Use get/set methods even when you have direct access to instance attributes

Lecture 8 - Primitive Types and Literals
int and long
float and double

Lecture 9 - Static Fields, Methods and Java API
static/class variables and Math.PI
static methods and Math class. Why main is static?
Java API introduction
Fully qualified class name

Lecture 10 - final, declaration scope, method overloading and composition
constant fields using final keyword. final instance, local and class variables
How to initialize final variables
Scope of declarations
Method overloading: How compiler differentiate? name, number and type, parameters order
Using our own classes' objects as class field and Composition

Lecture 11 - Enums