Hoang Thanh Sang

Hoang Thanh Sang

22/08/2004

Thu Duc, HCM City, Vietnam

Lớp (Class) và Đối tượng (Object) - Cốt lõi của OOP

Hoang Thanh Sang 3 phút đọc
#lập trình #học tập

Chào mừng bạn đến với Lập trình Hướng đối tượng (OOP)! Đây là khái niệm quan trọng nhất của Java.

Hãy nghĩ về thế giới thực: chúng ta được bao quanh bởi các đối tượng (con người, xe hơi, con mèo). Mỗi đối tượng có:

  • Thuộc tính (Properties): Đặc điểm (ví dụ: ConMèo có mauLong, canNang).

  • Hành vi (Methods): Hành động (ví dụ: ConMèo có thể keu(), an()).

  • 1. Lớp (Class) - Bản thiết kế

  • Lớp (Class) là một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng. Lớp ConMeo định nghĩa rằng tất cả con mèo sẽ có mauLong và có thể keu().

  • 2. Đối tượng (Object) - Thể hiện

  • Đối tượng (Object) là một thể hiện (instance) cụ thể của lớp đó. Bạn có thể tạo nhiều đối tượng từ một lớp.

Đối tượng meoTom (từ lớp ConMeo) có mauLong là “Xám”.

Đối tượng meoMun (từ lớp ConMeo) có mauLong là “Đen”.

-Ví dụ: Xây dựng Lớp SinhVien

// Đây là LỚP (Bản thiết kế)
public class SinhVien {

    // 1. Thuộc tính (Attributes / Fields)
    String maSo;
    String hoTen;
    double diemTB;

    // 2. Phương thức khởi tạo (Constructor)
    // Đây là phương thức đặc biệt, được gọi khi tạo đối tượng mới (dùng 'new')
    // Tên của nó phải trùng với tên Lớp
    public SinhVien(String ms, String ten, double diem) {
        // 'this' ám chỉ thuộc tính của chính đối tượng này
        this.maSo = ms;
        this.hoTen = ten;
        this.diemTB = diem;
    }

    // 3. Phương thức (Hành vi / Methods)
    public void hienThiThongTin() {
        System.out.println("--- Thông tin Sinh viên ---");
        System.out.println("MSSV: " + this.maSo);
        System.out.println("Tên: " + this.hoTen);
        System.out.println("Điểm: " + this.diemTB);
    }

    public boolean kiemTraHocBong() {
        return this.diemTB >= 8.0;
    }
}
  • Sử dụng Lớp SinhVien để tạo Đối tượng:

Bây giờ, trong file QuanLyTruongHoc.java (hoặc file có hàm main):

public class QuanLyTruongHoc {
    public static void main(String[] args) {

        // Tạo 2 ĐỐI TƯỢNG (instances) từ lớp SinhVien
        // Chúng ta gọi Constructor bằng từ khóa 'new'
        SinhVien sv1 = new SinhVien("SV001", "Nguyễn Văn A", 7.5);
        SinhVien sv2 = new SinhVien("SV002", "Trần Thị B", 8.5);

        // Gọi phương thức (hành vi) của từng đối tượng
        sv1.hienThiThongTin();
        // Output:
        // --- Thông tin Sinh viên ---
        // MSSV: SV001
        // Tên: Nguyễn Văn A
        // Điểm: 7.5

        sv2.hienThiThongTin();
        // Output:
        // --- Thông tin Sinh viên ---
        // MSSV: SV002
        // Tên: Trần Thị B
        // Điểm: 8.5

        // Kiểm tra học bổng
        System.out.println("SV1 có học bổng? " + sv1.kiemTraHocBong()); // false
        System.out.println("SV2 có học bổng? " + sv2.kiemTraHocBong()); // true
    }
}