7. OOP

0.0(0)
studied byStudied by 0 people
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/4

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

5 Terms

1
New cards

OOP

Encapsulation (Đóng gói)

Inheritance (Kế thừa)

Polymorphism (Đa hình)

Abstraction (Trừu tượng)

2
New cards

Encapsulation (Đóng gói)

  • EN: Hiding the internal state of an object and providing controlled access via methods.

VN: Ẩn dữ liệu bên trong object, chỉ cho phép truy cập thông qua các method (getter/setter).



class Account {
    private double balance; // Ẩn dữ liệu

    public Account(double balance) {
        this.balance = balance;
    }

    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }

    public double getBalance() {
        return balance;
    }
}

public class Main {
    public static void main(String[] args) {
        Account acc = new Account(1000);
        acc.deposit(500);
        System.out.println("Balance: " + acc.getBalance()); // 1500
    }
}

3
New cards

Inheritance (Kế thừa)

  • EN: Allows a class to inherit fields and methods from another class.

VN: Cho phép một class thừa hưởng thuộc tính và phương thức từ class khác.


class Vehicle {
    public void start() {
        System.out.println("Vehicle starting...");
    }
}

class Car extends Vehicle {
    public void honk() {
        System.out.println("Beep beep!");
    }
}

public class Main {
    public static void main(String[] args) {
        Car car = new Car();
        car.start(); // Kế thừa từ Vehicle
        car.honk();  // Phương thức riêng
    }
}

4
New cards

Polymorphism (Đa hình)

  • EN: The ability of different classes to be treated as the same interface type, with each implementing behavior differently.

VN: Khả năng các class khác nhau có thể được xử lý như cùng một kiểu interface, nhưng thực hiện hành vi khác nhau.

Ý tưởng:

Cùng một hành động, nhưng đối tượng khác nhau sẽ thực hiện theo cách khác nhau.

Thường đi cùng Abstraction: bạn gọi phương thức qua interface/abstract class, nhưng kết quả khác nhau tùy object.

Ví dụ đời thường:

Bạn nói "Phát ra âm thanh" với chó → nó sủa.

Cũng câu đó với mèo → nó kêu meo.

Cùng một lệnh, nhưng hành vi khác nhau tùy loại con vật.

Ví dụ code:

public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog();
        Animal cat = new Cat();

        dog.makeSound(); // Gâu gâu
        cat.makeSound(); // Meo meo
    }
}
➡ Đây chính là đa hình:

Lệnh makeSound() giống nhau.

Đối tượng khác nhau (Dog, Cat) → hành vi khác nhau.

5
New cards

Abstraction (Trừu tượng)

  • Tập trung vào cái gì (what) mà một đối tượng có thể làm, không cần biết làm như thế nào (how).

Thường dùng abstract class hoặc interface.


interface Animal {
    void makeSound(); // Chỉ nói "làm gì", không nói "làm thế nào"
}

class Dog implements Animal {
    public void makeSound() {
        System.out.println("Gâu gâu");
    }
}

class Cat implements Animal {
    public void makeSound() {
        System.out.println("Meo meo");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal a = new Dog();
        a.makeSound(); // Gâu gâu
    }
}
➡ Abstraction ở đây là Animal — nó định nghĩa hành vi makeSound() mà mọi động vật phải có, nhưng không nói cách thực hiện.