Đối Tượng (Object)
"Một chương trình Java điển hình tạo ra nhiều đối tượng, và các đối tượng này tương tác với nhau bằng cách gọi các phương thức. Qua những tương tác này, chương trình có thể thực hiện các nhiệm vụ khác nhau, chẳng hạn như triển khai giao diện người dùng, chạy hoạt hình hoặc gửi và nhận thông tin qua mạng. Khi một đối tượng đã hoàn tất công việc của nó, các tài nguyên của nó sẽ được tái sử dụng cho các đối tượng khác."
Ⅰ. Đối tượng (Object) trong Java là gì?
↳ Đại diện cho một thực thể cụ thể trong thế giới thực.
↳ Có trạng thái (dữ liệu) và hành vi (phương thức) riêng biệt.
↳ Được tạo ra từ một lớp (class).
Tưởng tượng thế này:
Một sinh viên là một đối tượng của lớp SinhVien, có các thuộc tính như hoTen, maSinhVien, diemToan, diemLi, diemHoa và các phương thức như hocTap(), thiCu(), nhapDiem().
Một chiếc xe ô tô là một đối tượng của lớp XeOto, có các thuộc tính như mauSac, soChoNgoi, tocDoMax, hangXe và các phương thức như khoiDong(), diChuyen(), dungXe().
Ⅱ. Đặc điểm của đối tượng (Object) trong Java
Một đối tượng trong Java là một thực thể cụ thể, là một phiên bản của một lớp. Nó có các đặc điểm sau:
1. Trạng thái (State):
↳ Thuộc tính/Dữ liệu (Attributes/ Fields): Mỗi đối tượng có các thuộc tính riêng biệt, đại diện cho các đặc trưng của đối tượng đó. Ví dụ: một đối tượng SinhVien có thể có các thuộc tính như ten, tuoi, lop.
↳ Giá trị: Các thuộc tính này có các giá trị cụ thể, xác định trạng thái của đối tượng tại một thời điểm nhất định.
2. Hành vi (Behavior):
↳ Phương thức (Methods): Mỗi đối tượng có thể thực hiện các hành động thông qua các phương thức. Các phương thức định nghĩa cách đối tượng tương tác với dữ liệu của nó và với các đối tượng khác. Ví dụ: một đối tượng SinhVien có thể có phương thức inThongTin() để in thông tin của sinh viên ra màn hình.
3. Định danh (Identity):
↳ Mỗi đối tượng có một địa chỉ bộ nhớ duy nhất: Điều này giúp phân biệt các đối tượng với nhau, ngay cả khi chúng có cùng các thuộc tính và phương thức.
Ⅲ. Các cách tạo đối tượng (Object) trong Java
Trong Java, có nhiều cách để tạo ra một đối tượng. Mỗi cách đều có những ưu điểm và nhược điểm riêng, tùy thuộc vào từng trường hợp cụ thể mà chúng ta sẽ lựa chọn cách phù hợp nhất.
Sử dụng từ khóa new đây là cách đơn giản và trực quan nhất để tạo một đối tượng.
Cú pháp cơ bản để tạo và sử dụng một đối tượng trong Java:
Cú Pháp
// Cách tạo một đối tượng
Tên_Lớp Đối_Tượng = new Tên_Lớp(các_tham_số_constructor);
// Cách sử dụng đốitượng
Đối_Tượng.Tên_Phương_Thức(các_tham_số);
Cú pháp này là cách cơ bản và phổ biến nhất để tạo ra một đối tượng mới trong Java. Nó gồm các phần tử sau:
↳ Tên_Lớp: Là tên của lớp mà bạn muốn tạo đối tượng. Ví dụ: SinhVien, Car, Book.
↳ Đối_Tượng: Là tên biến mà bạn đặt cho đối tượng đó, dùng để tham chiếu đến đối tượng trong code.
↳ new: Từ khóa dùng để tạo một đối tượng mới.
↳ (các_tham_số_constructor): Là các giá trị truyền vào constructor (hàm khởi tạo) của lớp để khởi tạo các thuộc tính của đối tượng.
↳ Dấu chấm: Được sử dụng để phân biệt đối tượng và tên phương thức.
↳ Tên_Phương_Thức: Là tên của phương thức mà bạn muốn gọi.
↳ (các_tham_số): Là các giá trị truyền vào phương thức.
Ⅳ. Ví dụ: Quản lý sinh viên
Giả sử chúng ta muốn quản lý thông tin sinh viên của một lớp học. Mỗi sinh viên sẽ là một đối tượng.
Định nghĩa lớp SinhVien:
Ví dụ: SinhViên.java
public class SinhVien {
private String ten;
private int tuoi;
private String lop;
// Constructor
public SinhVien(String ten, int tuoi, String lop) {
this.ten = ten;
this.tuoi = tuoi;
this.lop = lop;
}
// Phương thức
public void inThongTin() {
System.out.println("Tên: " + ten);
System.out.println("Tuổi: " + tuoi);
System.out.println("Lớp: " + lop);
}
}
Tạo và sử dụng các đối tượng SinhVien:
Ví dụ: SinhViên.java
public class Example {
public static void main(String[] args) {
// Tạo các đối tượng SinhVien
SinhVien sv1 = new SinhVien("Nguyễn Văn A", 20, "K62");
SinhVien sv2 = new SinhVien("Trần Thị B", 19, "K62");
// In thông tin sinh viên
sv1.inThongTin();
System.out.println();
sv2.inThongTin();
}
}
Kết quả của chương trình là:
Tuổi: 20
Lớp: K62
Tên: Trần Thị B
Tuổi: 19
Lớp: K62
Giải thích ví dụ trên:
↳ Định nghĩa lớp: Chúng ta đã tạo một lớp SinhVien với các thuộc tính ten, tuoi, lop và một phương thức inThongTin() để in thông tin của sinh viên.
↳ Tạo đối tượng: SinhVien sv1 = new SinhVien("Nguyễn Văn A", 20, "K62");: Tạo một đối tượng sv1 thuộc lớp SinhVien và gán các giá trị cho các thuộc tính của đối tượng.
↳ Sử dụng đối tượng: sv1.inThongTin(); Gọi phương thức inThongTin() của đối tượng sv1 để in thông tin của sinh viên đó ra màn hình.

Chúng ta sẽ tiếp tục khám phá chi tiết về việc tạo và sử dụng đối tượng trong phần tiếp theo.