Trong bài này chúng ta sẽ học về lớp và đối tượng trong java. Trong phương pháp lập trình hướng đối tượng, chúng ta thiết kế chương trình bằng việc sử dụng các lớp và đối tượng.
Nội dung chính
Đối tượng
Một thực thể có trạng thái và hành vi được gọi là đối tượng. Ví dụ như máy pha cà phê, xe đạp, cái quạt...
Một đối tượng có ba đặc điểm:
- Trạng thái: Đại diện cho dữ liệu (giá trị) của một đối tượng.
- Hành vi: Đại diện cho hành vi (chức năng) của một đối tượng như gửi tiền, rút tiền, ...
- Danh tính: Danh tính của một đối tượng thường được cài đặt thông qua một ID duy nhất. ID này được ẩn đối với user bên ngoài. Tuy nhiên nó được sử dụng trong nội bộ máy ảo JVM để định danh từng đối tượng.
Ví dụ: Bút chì là một đối tượng. Tên của nó là A, màu trắng, ... được gọi là trạng thái. Nó được sử dụng để viết, viết được gọi là hành vi.
Đối tượng(Object) là một thể hiện của một lớp(Class). Lớp là một mẫu hoặc thiết kế từ đó các đối tượng được tạo ra. Vì vậy, đối tượng là các thể hiện (kết quả) của một lớp.
Lớp
Một lớp là một nhóm đối tượng có các thuộc tính chung. Nó là một mẫu hoặc thiết kế từ đó các đối tượng được tạo ra.
Một lớp trong java có thể chứa:
- Thành viên dữ liệu
- Constructor
- Phương thức
- Khối lệnh
- Lớp và Interface
Các ví dụ đơn giản về lớp và đối tượng trong java
Ví dụ 1:
Trong ví dụ này, chúng tôi đã tạo ra một lớp Student có hai thành viên dữ liệu id và name. Chúng ta tạo ra các đối tượng của lớp Student bởi từ khóa new và in giá trị của các đối tượng.
public class Student { int id; // thành viên dữ liệu String name; // thành viên dữ liệu public static void main(String args[]) { Student student1 = new Student(); // tạo một đối tượng student1 System.out.println(student1.id); System.out.println(student1.name); } }
Kết quả:
0 null
Ví dụ 2:
public class Student2 { int id; String name; // phương thức insertRecord void insertRecord(int id, String name) { this.id = id; this.name = name; } // phương thức displayInformation void displayInformation() { System.out.println(id + " " + name); } public static void main(String args[]) { Student2 s1 = new Student2(); Student2 s2 = new Student2(); s1.insertRecord(111, "Viet"); s2.insertRecord(222, "Tuts"); s1.displayInformation(); s2.displayInformation(); } }
Kết quả:
Viet Tuts
Ví dụ 3:
public class Student3 { int id; String name; // constructor public Student3(int id, String name) { this.id = id; this.name = name; } // phương thức displayInformation void displayInformation() { System.out.println(id + " " + name); } public static void main(String args[]) { Student3 s1 = new Student3(111, "Viet"); Student3 s2 = new Student3(222, "Tuts"); s1.displayInformation(); s2.displayInformation(); } }
Kết quả:
Viet Tuts
Có những cách nào để tạo đối tượng trong java?
Có vài cách để tạo đối tượng trong java, đó là:
- Sử dụng từ khóa new
- Sử dụng phương thức newInstance()
- Sử dụng phương thức clone()
- Sử dụng phương thức factory,...
Chúng ta sẽ học những cách tạo đối tượng này trong các bài sau.
Đối tượng Annonymous trong java
Annonymous nghĩa là vô danh. Một đối tượng không có tham chiếu gọi là đối tượng Annonymous.
Nếu bạn sử dụng đối tượng 1 lần duy nhất, thì lựa chọn tạo đối tượng Annonymous là tốt nhất trong trường hợp này.
Ví dụ:
public class Calculation { void fact(int n) { int giaithua = 1; for (int i = 1; i <= n; i++) { giaithua = giaithua * i; } System.out.println("Giai thừa của " + n + " là: " + giaithua); } public static void main(String args[]) { // gọi phương thức của đối tượng annonymous new Calculation().fact(5); } }
Kết quả:
Giai thừa của 5 là: 120
Sự khác nhau giữa lớp và đối tượng trong java
Sự khác nhau giữa lớp và đối tượng trong java được thống kê trong bảng sau:
No | Đối tượng | Lớp |
1. | Đối tượng là thể hiện của 1 lớp. | Lớp là một khuân mẫu hay thiết kế để tạo ra các đối tượng. |
2. | Đối tượng là 1 thực thể trong thế giới thực như Bút chì, Xe đạp, ... | Lớp là một nhóm các đối tượng tương tự nhau. |
3. | Đối tượng là 1 thực thể vật lý | Lớp là 1 thực thể logic |
4. | Đối tượng được tạo ra chủ yếu từ từ khóa new. Ví dụ: Student s1=new Student(); |
Lớp được khai báo bằng việc sử dụng từ khóa class. Ví dụ: class Student{} |
5. | Đối tượng có thể được tạo nhiều lần. | Lớp được khai báo 1 lần duy nhất. |
6. | Đối tượng được cấp bộ nhớ khi nó được tạo ra. | Lớp không được cấp bộ nhớ khi nó được tạo ra. |
7. | Có rất nhiều cách để tạo ra đối tượng trong java như từ khóa new, phương thức newInstance(), phương thức clone(), phương thức factory và deserialization. | Chỉ có một cách để định nghĩa lớp trong java sử dụng từ khoá class. |