KHAI BÁO LÓP (CLASS) TRONG JAVA

Khái niệm về lớp (Class) trong java

1. Khái niệm về lớp (Class)

Lớp trong Java là một bản thiết kế hoặc khuôn mẫu cho các đối tượng. Mỗi đối tượng được tạo ra từ một lớp, mang các thuộc tính và phương thức được định nghĩa trong lớp đó.

Cú pháp khai báo lớp trong Java:

public class TênLớp {
    // Thuộc tính (fields)
    int x;
    String y;

    // Phương thức (method)
    public void hienThi() {
        System.out.println("Giá trị x là: " + x);
        System.out.println("Giá trị y là: " + y);
    }
}

2. Cấu trúc (thành phần) của lớp trong Java

<accessmodifier> class TenLop {
    // Các thuộc tính (fields)
    private dataType thuocTinh1;
    private dataType thuocTinh2;
    private dataType thuocTinh3;

    // Phương thức khởi tạo không tham số
    public TenLop() {
        // Khởi tạo các giá trị mặc định cho thuộc tính nếu cần
    }

    // Phương thức khởi tạo có tham số
    public TenLop(dataType thamSo1, dataType thamSo2, ...) {
        this.thuocTinh1 = thamSo1;
        this.thuocTinh2 = thamSo2;
        // Gán giá trị cho các thuộc tính từ tham số truyền vào
    }

    // Phương thức Getter để lấy giá trị của thuộc tính
    public dataType getThuocTinh1() {
        return thuocTinh1;
    }

    // Phương thức Setter để gán giá trị cho thuộc tính
    public void setThuocTinh1(dataType thuocTinh1) {
        this.thuocTinh1 = thuocTinh1;
    }

    // Các phương thức Getter, Setter khác cho các thuộc tính còn lại
    public dataType getThuocTinh2() {
        return thuocTinh2;
    }

    public void setThuocTinh2(dataType thuocTinh2) {
        this.thuocTinh2 = thuocTinh2;
    }

    // Phương thức khác nếu cần (ví dụ, phương thức xử lý dữ liệu)
    public void hienThiThongTin() {
        // Hiển thị thông tin của các thuộc tính
        System.out.println("Thuộc tính 1: " + thuocTinh1);
        System.out.println("Thuộc tính 2: " + thuocTinh2);
    }

    // Phương thức main để kiểm thử lớp (nếu cần)
    public static void main(String[] args) {
        // Khởi tạo đối tượng lớp
        TenLop doiTuong = new TenLop("Giá trị 1", "Giá trị 2");

        // Gọi phương thức
        doiTuong.hienThiThongTin();
    }
}

Giải thích các phần trong cấu trúc lớp:

  1. Access Modifier:
  • Xác định phạm vi truy cập của lớp và các thành viên của lớp. Ví dụ, public có thể truy cập từ bất kỳ đâu, private chỉ có thể truy cập trong lớp đó.
  1. Tên Lớp (Class Name):
  • Tên lớp theo quy ước sẽ bắt đầu bằng chữ cái viết hoa và có ý nghĩa mô tả đối tượng hoặc thực thể mà lớp đó đại diện.
  1. Các Thuộc Tính (Attributes/Fields):
  • Đây là các biến lưu trữ thông tin liên quan đến đối tượng của lớp. Chúng thường được khai báo với mức độ truy cập private để đảm bảo tính đóng gói (encapsulation).
  • Các thuộc tính có thể là các kiểu dữ liệu nguyên thủy (int, double, boolean,…) hoặc các kiểu dữ liệu tham chiếu (chẳng hạn String, Object,…).
  1. Phương Thức Khởi Tạo (Constructors):
  • Phương thức khởi tạo là một phương thức đặc biệt được gọi khi tạo đối tượng của lớp. Một lớp có thể có không có, có một hoặc có nhiều phương thức khởi tạo.
  • Constructor không có kiểu trả về và tên của nó trùng với tên lớp.
  • Constructor không tham số: Dùng để khởi tạo đối tượng với giá trị mặc định.
  • Constructor có tham số: Dùng để khởi tạo đối tượng với các giá trị cụ thể được truyền vào.
  1. Phương Thức Getter và Setter:
  • Getter: Dùng để lấy giá trị của các thuộc tính.
  • Setter: Dùng để gán giá trị cho các thuộc tính.
  • Cả getter và setter giúp kiểm soát việc truy cập và thay đổi các thuộc tính của đối tượng, bảo vệ tính toàn vẹn của dữ liệu.
  1. Các Phương Thức Khác:
  • Đây là các phương thức thêm mà lớp có thể cung cấp để thực hiện các hành động hoặc xử lý dữ liệu liên quan đến đối tượng.
  • Ví dụ: hienThiThongTin() là phương thức dùng để hiển thị thông tin thuộc tính của đối tượng.

Ví dụ minh họa:

Giả sử bạn muốn tạo một lớp SinhVien với các thuộc tính ten, tuoi, diem, bạn có thể cấu trúc như sau:

public class SinhVien {
    // Các thuộc tính
    private String ten;
    private int tuoi;
    private double diem;

    // Phương thức khởi tạo không tham số
    public SinhVien() {
        this.ten = "Chưa xác định";
        this.tuoi = 0;
        this.diem = 0.0;
    }

    // Phương thức khởi tạo có tham số
    public SinhVien(String ten, int tuoi, double diem) {
        this.ten = ten;
        this.tuoi = tuoi;
        this.diem = diem;
    }

    // Getter và Setter
    public String getTen() {
        return ten;
    }

    public void setTen(String ten) {
        this.ten = ten;
    }

    public int getTuoi() {
        return tuoi;
    }

    public void setTuoi(int tuoi) {
        this.tuoi = tuoi;
    }

    public double getDiem() {
        return diem;
    }

    public void setDiem(double diem) {
        this.diem = diem;
    }

    // Phương thức hiển thị thông tin sinh viên
    public void hienThiThongTin() {
        System.out.println("Tên: " + ten);
        System.out.println("Tuổi: " + tuoi);
        System.out.println("Điểm: " + diem);
    }

    public static void main(String[] args) {
        // Khởi tạo đối tượng sinh viên
        SinhVien sv = new SinhVien("Nguyen A", 20, 8.5);

        // Gọi phương thức hiển thị thông tin
        sv.hienThiThongTin();
    }
}

Kết quả khi chạy chương trình:

Tên: Nguyen A
Tuổi: 20
Điểm: 8.5

3. Tạo đối tượng từ lớp (Object Creation)

Để tạo đối tượng từ lớp, bạn sử dụng từ khóa new:

SinhVien sv1 = new SinhVien("Nguyen A", 20);

Ở đây, sv1 là đối tượng của lớp SinhVien với tên “Nguyen A” và tuổi 20.

4. Các thành phần trong lớp

  • Access Modifiers (Chế độ truy cập): Xác định phạm vi truy cập của lớp, thuộc tính, và phương thức. Các access modifiers phổ biến trong Java là:
  • public: có thể truy cập từ bất kỳ đâu.
  • private: chỉ có thể truy cập trong lớp đó.
  • protected: có thể truy cập trong lớp, trong các lớp con và trong cùng package.
  • default: không chỉ định gì, có thể truy cập trong cùng package.
  • Static (Tĩnh): Các thành viên của lớp (thuộc tính và phương thức) được khai báo là static sẽ thuộc về lớp thay vì thuộc về đối tượng. Phương thức main() là một ví dụ về phương thức static, được gọi mà không cần tạo đối tượng.

5. Ví dụ đầy đủ về lớp trong Java:

public class Car {
    // Thuộc tính
    String color;
    String model;
    int year;

    // Constructor
    public Car(String color, String model, int year) {
        this.color = color;
        this.model = model;
        this.year = year;
    }

    // Phương thức
    public void displayDetails() {
        System.out.println("Màu sắc: " + color);
        System.out.println("Model: " + model);
        System.out.println("Năm sản xuất: " + year);
    }

    // Phương thức main để chạy chương trình
    public static void main(String[] args) {
        // Tạo đối tượng
        Car car1 = new Car("Đỏ", "Toyota", 2022);

        // Gọi phương thức displayDetails
        car1.displayDetails();
    }
}

Kết quả khi chạy chương trình:

Màu sắc: Đỏ
Model: Toyota
Năm sản xuất: 2022

6. Kết luận

Getter và Setter giúp truy cập và thay đổi các thuộc tính một cách an toàn.

Lớp là yếu tố cơ bản trong lập trình hướng đối tượng.

Lớp đóng vai trò như bản thiết kế cho các đối tượng, với các thuộc tính và phương thức.

Java hỗ trợ mạnh mẽ các nguyên lý của OOP như đóng gói, kế thừa và đa hình thông qua các lớp.

Lớp trong Java có cấu trúc gồm các thuộc tính, phương thức khởi tạo, getter và setter, và các phương thức khác (nếu cần thiết).

Access modifier giúp kiểm soát phạm vi truy cập của các thành phần trong lớp.

Phương thức khởi tạo giúp tạo đối tượng và khởi tạo các giá trị ban đầu cho thuộc tính.

Total
0
Shares
Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Previous Post
Giới thiệu khóa học: Xây dựng Web Bán Hàng Online với Java Spring Boot, Oracle DB và Thymeleaf

Java Spring Boot Bài 8: CRUD Sản phẩm – Phân Trang + Validate + Upload File + JOIN categories

Next Post
Khái niệm về lớp (Class) trong java

THỰC HÀNH TẠO LỚP (CLASS) TRONG JAVA