Java - Lớp và Đối Tượng: Hướng Dẫn Toàn Diện Cho Người Mới Bắt Đầu

Xin chào, người lập trình Java đầy kích! Tôi rất vui được làm hướng dẫn cho bạn trong cuộc hành trình thú vị vào thế giới Lớp và Đối Tượng của Java. Như một người dạy khoa học máy tính trong nhiều năm, tôi cam kết rằng việc hiểu các khái niệm này như mở khóa một chiếc bảng công cụ ma thuật sẽ giúp bạn có thể tạo ra các chương trình tuyệt vời. Hãy bắt đầu nào!

Java - Object & Classes

Lớp Java là gì?

Hãy tưởng tượng bạn đang xây dựng một sở thú ảo. Trong sở thú này, bạn có nhiều loài động vật khác nhau. Mỗi loài động vật có những đặc điểm cụ thể (như màu sắc, kích thước, và chế độ ăn) và có thể thực hiện các hành động cụ thể (như ăn, ngủ, và gây tiếng). Trong Java, một lớp giống như một bản kế hoạch để tạo ra các loài động vật này.

Một lớp định nghĩa:

  1. Các thuộc tính (đặc điểm) mà đối tượng sẽ có
  2. Các phương thức (hành động) mà đối tượng có thể thực hiện

Dưới đây là một ví dụ đơn giản về lớp:

public class DongVat {
// Thuộc tính
String ten;
String loai;
int tuoi;

// Phương thức
public void gâyTiếng() {
System.out.println("Con động vật gây ra tiếng");
}
}

Trong ví dụ này, DongVat là lớp của chúng ta. Nó có ba thuộc tính (ten, loai, và tuoi) và một phương thức (gâyTiếng()).

Tính Chất Của Lớp Java

  1. Đóng Gói: Lớp nhóm dữ liệu và các phương thức thực hiện trên dữ liệu đó.
  2. Trừu Tượng: Lớp che giấu các chi tiết thực hiện phức tạp và chỉ hiển thị các tính năng cần thiết.
  3. Kế Thừa: Lớp có thể kế thừa các tính chất và phương thức từ các lớp khác.
  4. Đa Hình: Đối tượng của lớp có thể có nhiều hình thức.

Các Loại Biến Trong Lớp

Trong Java, chúng ta có ba loại biến trong lớp:

  1. Biến Thể: Những biến này thuộc về một thể của lớp.
  2. Biến Đặc Trưng: Những biến này thuộc về lớp chính thức, không phải bất kỳ thể cụ thể nào.
  3. Biến Địa Phương: Những biến này được khai báo trong phương thức và chỉ tồn tại trong phương thức đó.

Dưới đây là một ví dụ minh họa tất cả ba loại:

public class SoThu {
// Biến thể
String ten;

// Biến đặc trưng
static int tongSoCon = 0;

public void themCon(String tenCon) {
// Biến địa phương
String thongDiep = "Đã thêm " + tenCon + " vào sở thú";
System.out.println(thongDiep);
tongSoCon++;
}
}

Đối Tượng Java là gì?

Nếu lớp là bản kế hoạch, đối tượng là "đồ vật" thực tế được tạo ra từ bản kế hoạch đó. Trong biểu tượng sở thú của chúng ta, nếu DongVat là lớp, thì lion, elephant, và penguin có thể là các đối tượng của lớp đó.

Tạo (Khai Báo) Đối Tượng Java

Việc tạo đối tượng cũng được gọi là khởi tạo vì bạn đang tạo một thể của lớp. Dưới đây là cách bạn làm điều đó:

DongVat lion = new DongVat();
lion.ten = "Simba";
lion.loai = "Lion";
lion.tuoi = 5;

Trong ví dụ này, chúng ta đã tạo một đối tượng DongVat có tên lion và thiết lập các thuộc tính của nó.

Truy Cập Thuộc Tính và Phương Thức của Thể

Khi bạn có một đối tượng, bạn có thể truy cập các biến và phương thức của nó bằng cách sử dụng toán tử chấm (.):

System.out.println(lion.ten);  // Xuất: Simba
lion.gâyTiếng();  // Xuất: Con động vật gây ra tiếng

Thêm Ví Dụ Về Lớp và Đối Tượng Java

Hãy tạo một lớp phức tạp hơn để thực sự làm rõ các khái niệm này:

public class Oto {
// Biến thể
String hang;
String model;
int nam;
boolean dangChay;

// Khởi tạo
public Oto(String hang, String model, int nam) {
this.hang = hang;
this.model = model;
this.nam = nam;
this.dangChay = false;
}

// Phương thức
public void khoiDongMay() {
if (!dangChay) {
dangChay = true;
System.out.println("Oto " + hang + " " + model + " đang chạy.");
} else {
System.out.println("Oto đã đang chạy!");
}
}

public void dungMay() {
if (dangChay) {
dangChay = false;
System.out.println("Oto " + hang + " " + model + " đã dừng.");
} else {
System.out.println("Oto không đang chạy!");
}
}

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

Bây giờ, hãy tạo một số đối tượng Oto và tương tác với chúng:

public class OtoDemo {
public static void main(String[] args) {
Oto myCar = new Oto("Toyota", "Corolla", 2020);
Oto friendsCar = new Oto("Honda", "Civic", 2019);

myCar.khoiDongMay();
myCar.honk();
myCar.dungMay();

friendsCar.khoiDongMay();
friendsCar.khoiDongMay();  // Thử khởi động lại oto đang chạy
friendsCar.dungMay();
}
}

Khi bạn chạy lớp OtoDemo, bạn sẽ thấy đầu ra sau:

Oto Toyota Corolla đang chạy.
Beep beep!
Oto Toyota Corolla đã dừng.
Oto Honda Civic đang chạy.
Oto đã đang chạy!
Oto Honda Civic đã dừng.

Ví dụ này minh họa cách các đối tượng có thể duy trì trạng thái của chúng (như oto có đang chạy hay không) và cách các phương thức có thể tương tác và thay đổi trạng thái đó.

Quy Tắc Sử Dụng Các Khái Niệm Lớp và Đối Tượng

  1. Tên lớp nên bắt đầu bằng chữ hoa.
  2. Mỗi tệp Java nên chứa chỉ một lớp công khai, và tên của nó nên phù hợp với tên tệp.
  3. Đối tượng được tạo bằng từ khóa new.
  4. Luôn khởi tạo đối tượng trước khi sử dụng chúng.
  5. Sử dụng tên có ý nghĩa cho các lớp, biến và phương thức của bạn.

Kết Luận

Lớp và đối tượng là cơ sở của lập trình Java. Chúng cho phép chúng ta tạo ra các mô hình phức tạp và thực tế của thế giới trong mã của chúng ta. Khi tiếp tục hành trình Java của bạn, bạn sẽ thường xuyên sử dụng các khái niệm này.

Hãy nhớ, luyện tập sẽ làm bạn hoàn hảo! Hãy thử tạo các lớp và đối tượng của riêng bạn. Có lẽ mô hình hệ thống thư viện, nền tảng mạng xã hội, hoặc thậm chí trò chơi video yêu thích của bạn. Các khả năng là vô hạn!

Chúc bạn mã nguồn hạnh phúc, và may các đối tượng của bạn luôn được khởi tạo đúng cách! ?

Credits: Image by storyset