1/4
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
OOP
Encapsulation (Đóng gói)
Inheritance (Kế thừa)
Polymorphism (Đa hình)
Abstraction (Trừu tượng)
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
}
}
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
}
}
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.
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.