GK SOLUTIONS
AI • IoT • Arduino • Projects & Tutorials
DEFEAT THE FEAR

🏗️ Lesson 8: Classes & Object-Oriented Programming

⏱️ Estimated time: 40 minutes | Difficulty: Intermediate

The Core of Java

Everything in Java is associated with classes and objects. Understanding OOP is vital for becoming a proficient Java developer.

Creating Classes

public class Student {
    // Fields (attributes)
    private String name;
    private int age;
    private double gpa;

    // Constructor
    public Student(String name, int age, double gpa) {
        this.name = name;
        this.age = age;
        this.gpa = gpa;
    }

    // Getters & Setters
    public String getName() { return name; }
    public void setGpa(double gpa) {
        if (gpa >= 0 && gpa <= 4.0) this.gpa = gpa;
    }

    // Method
    public void display() {
        System.out.println(name + ", Age: " + age + ", GPA: " + gpa);
    }
}

// Usage
Student s = new Student("Alice", 20, 3.8);
s.display();  // Alice, Age: 20, GPA: 3.8

Inheritance

class Animal {
    String name;
    void eat() { System.out.println(name + " is eating"); }
}

class Dog extends Animal {
    void bark() { System.out.println(name + " says Woof!"); }

    @Override
    void eat() { System.out.println(name + " is eating kibble"); }
}

Dog d = new Dog();
d.name = "Buddy";
d.eat();    // Buddy is eating kibble
d.bark();   // Buddy says Woof!

Interfaces

interface Drawable {
    void draw();            // Abstract method
    default void fill() {   // Default implementation
        System.out.println("Filling...");
    }
}

class Circle implements Drawable {
    double radius;

    @Override
    public void draw() {
        System.out.println("Drawing circle with r=" + radius);
    }
}

// A class can implement multiple interfaces!

ArrayList (Dynamic Arrays)

import java.util.ArrayList;

ArrayList<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.size();       // 2
names.get(0);       // "Alice"
names.remove("Bob");

for (String name : names) {
    System.out.println(name);
}

✅ Quick Quiz

❓ What keyword is used for inheritance in Java?

❓ What is an interface?

❓ What does @Override annotation do?

← Previous 🎉 Back to All Lessons