Loading...
Loading...
Section 03 · Stage 1: Learn Java
Master object-oriented programming in Java with clean concept lessons and end-of-module GitHub portfolio projects.
Model real-world things as Java classes, create objects with new, give them state and behaviour, and manage many objects through references, arrays and null.
Constructors give every new object a valid starting state: default and parameterized constructors, the this keyword, overloading, and chaining with this().
Keep objects correct by hiding their data behind private fields and well-designed public methods that check every change.
Shared class members, static methods and blocks, and values that never change: when to use static, final and static final.
Reuse code with parent and child classes: extends, protected, multilevel and hierarchical families, super(), constructor order, final methods and classes, and your own exception classes.
One method call, many behaviours: override methods safely with @Override and super, use parent references and arrays, and trace how Java picks the method at run time.
Hide how and show what: abstract classes, interfaces, default and static methods, choosing between them, and a first look at lambdas.
A fixed set of named values: why enums beat int and String constants, built-in methods, switch, constants with data and behaviour, interfaces and state machines.
How Java classes relate: IS-A vs HAS-A, association, aggregation, composition and delegation, and how to choose and design them from a real problem.
Every Java class inherits from Object: print objects with toString(), compare them correctly with == and equals(), and keep hashCode() consistent so equal objects behave as equal everywhere.
When b = a shares an object instead of copying it, and how to make real copies: copy constructors and copy methods, shallow vs deep copies, and clone() with Cloneable.
How Java decides between the reference type and the object type, how to cast safely with instanceof and pattern matching, and how to build immutable classes, records and nested classes.
Pull all of OOP together: read and trace unfamiliar programs, spot and fix design problems and bugs, design classes from requirements, apply SOLID, and build a multi-class application, ready for placement interviews and coding rounds.
Nine GitHub-ready console projects, one for each big OOP idea: classes, encapsulation, inheritance, polymorphism, interfaces, composition, equality, immutability, and a final payroll capstone.