---
title: "Object-Oriented Programming with Java"
description: A comprehensive course covering Java fundamentals through object-oriented programming concepts.
---
This module covers Java programming from the ground up, progressing through core language features to advanced object-oriented concepts.

## Topics

| # | Topic | Description |
| --- | --- | --- |
| 1 | [Introduction](/docs/ta/modules/java/introduction) | Java evolution, features, JVM/JRE/JDK, basic syntax |
| 2 | [Data Types & Operators](/docs/ta/modules/java/data-types) | Primitives, non-primitives, type casting, operators |
| 3 | [Control Statements](/docs/ta/modules/java/control-statements) | Selection, iteration, jump statements, methods |
| 4 | [OOP Introduction](/docs/ta/modules/java/oop-intro) | Software crisis, OOP advantages, four pillars |
| 5 | [Classes & Objects](/docs/ta/modules/java/classes-objects) | Constructors, instance methods, `this` keyword |
| 6 | [Encapsulation](/docs/ta/modules/java/encapsulation) | Access modifiers, getters/setters, static members |
| 7 | [Arrays](/docs/ta/modules/java/arrays) | 1D and 2D arrays, common operations |
| 8 | [Strings](/docs/ta/modules/java/strings) | String methods, immutability, StringBuilder |
| 9 | [Inheritance](/docs/ta/modules/java/inheritance) | Types of inheritance, `super`, method overriding |
| 10 | [Polymorphism](/docs/ta/modules/java/polymorphism) | Compile-time and runtime polymorphism |
| 11 | [Abstraction](/docs/ta/modules/java/abstraction) | Abstract classes, interfaces |
| 12 | [Exceptions & Threading](/docs/ta/modules/java/exceptions-threads) | Exception handling, thread lifecycle, synchronization |

## Prerequisites

- A Java Development Kit (JDK) installed (version 8 or later).
- A text editor or IDE (e.g., IntelliJ IDEA, VS Code, Eclipse).

## How to Run Examples

Each topic has a corresponding example in the [`examples/`](https://github.com/University-Of-Sri-Jayewardenepura/Java/tree/main/examples) directory. Compile and run any example with:

```bash
javac ExampleName.java
java ExampleName
```
