Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách sử dụng Lớp (Class) và Đối tượng (Object) trong Java

Chúng ta nói về lớp (class) trong Java là gì? Chắc chắn không phải lớp như ở trường học, với học sinh và giáo viên. Lớp là bản thiết kế (blueprint) cho đối tượng trong mã.

Java là ngôn ngữ lập trình hướng đối tượng (object-oriented). Nghĩa là nó bao gồm nhiều tính năng giúp viết mã tái sử dụng. Lập trình hướng đối tượng hữu ích cho chương trình mọi kích thước vì giúp giảm lặp lại, khiến mã dễ đọc hơn.

Trong hướng dẫn này, chúng ta sẽ nói về hai khái niệm quan trọng trong Java: lớp và đối tượng. Chúng ta sẽ thảo luận cách hoạt động, và cách triển khai, tham chiếu ví dụ.

Lớp Java (Java Class) là gì?

Lớp giống như bản thiết kế cho đối tượng. Trong khi bản thiết kế phòng ngủ có thể nói loại cửa và cửa sổ nào được lắp đặt, lớp báo cho chương trình biết đối tượng nên có thể truy cập và lưu trữ phương thức và giá trị nào. 

Lớp hữu ích vì cho phép khai báo cấu trúc cho loại dữ liệu cụ thể một lần, sau đó tham chiếu nhiều lần bằng cách khai báo đối tượng.

Hãy định nghĩa lớp Employee có một biến và hai phương thức:

public class Employee { boolean isOnVacation; public void startVacation() { isOnVacation = true; System.out.println("You are now on vacation."); } public void endVacation() { isOnVacation = false; System.out.println("You are not on vacation anymore."); } }

Trong mã, chúng ta định nghĩa hai phương thức: một bắt đầu nghỉ phép nhân viên, một kết thúc nghỉ phép. Chúng ta khai báo biến thể hiện boolean tên isOnVacation để theo dõi thông tin này.

Chúng ta chưa tạo đối tượng nào của lớp employee. Chúng ta chỉ phác thảo bản thiết kế sau đó sẽ định nghĩa hình dạng các đối tượng đó.

Đối tượng Java (Java Object) là gì?

Đối tượng là thể hiện (instance) của một lớp cụ thể. Hãy tạo đối tượng dùng bản thiết kế Employee từ trước. Chúng ta tạo đối tượng tên john:

Employee john = new Employee();

Mã này tạo thể hiện của lớp Employee. Lưu ý chúng ta thêm hai ngoặc đơn sau tên lớp, báo mã tham chiếu lớp Employee. Từ khóa new báo mã tạo đối tượng mới của lớp đó.

Bây giờ, hãy dùng phương thức đối tượng:

Employee john = new Employee(); john.startVacation(); john.endVacation();

Hãy chạy chương trình và xem gì xảy ra:

You are now on vacation. You are not on vacation anymore.

Đối tượng gọi hai phương thức định nghĩa trong lớp Employee. Điều này khiến mã trong phương thức chạy. Khi thực thi john.startVacation(), ví dụ, giá trị boolean isOnVacation đặt thành true, và thông báo "You are now on vacation." in ra console Java.

Mặc dù chúng ta định nghĩa biến isOnVacation bên trong lớp, chúng ta có thể truy cập giá trị nó được gán trong đối tượng cụ thể. Xem mã này:

Employee john = new Employee(); john.startVacation(); john.endVacation(); System.out.println(john.isOnVacation); 

Mã này sẽ bắt đầu và kết thúc nghỉ phép của John – như ví dụ trước – và in giá trị biến isOnVacation ra console:

You are now on vacation. You are not on vacation anymore. false

Giá trị phương thức isOnVacation là false.

Hàm tạo (Constructor) trong Java

Phương thức constructor cho phép khởi tạo dữ liệu trong lớp. Trong ví dụ trên, chúng ta khai báo biến trong thân chính của lớp nhưng chưa khởi tạo giá trị mặc định.

Xem mã sau:

class Employee { boolean isOnVacation; public Employee() { isOnVacation = false; System.out.println("Initialized values."); } ... }

Bây giờ, hãy tạo đối tượng của lớp Employee:

Employee john = new Employee(); john.startVacation();

Khi tạo đối tượng john, constructor tự động chạy. Phương thức này cho phép đặt giá trị mặc định bạn muốn lớp giữ. Phương thức trả về:

Initialized values. You are now on vacation.

Khi thực thi, constructor đặt giá trị isOnVacation thành false. Sau đó in Initialized values ra console.

Tạo nhiều đối tượng (Creating Multiple Objects)

Điều gì nếu chúng ta có hai nhân viên? Bạn vẫn dùng cùng lớp? Có! Đó là lợi ích của dùng lớp: bạn có thể khai báo nhiều đối tượng dùng cùng lớp.

Xem chương trình chính sau:

Employee john = new Employee(); john.startVacation(); john.endVacation(); System.out.println(john.isOnVacation); Employee ian = new Employee(); ian.startVacation(); System.out.println(ian.isOnVacation);

Hãy chạy mã:

Initialized values. You are now on vacation. You are not on vacation anymore. false Initialized values. You are now on vacation. true

Chúng ta tạo hai đối tượng của lớp Employee: john và ian. Trong mã, chúng ta bắt đầu và kết thúc nghỉ phép của John. Sau đó, tạo đối tượng cho Ian và bắt đầu nghỉ phép của anh ấy.

Khi in giá trị john.isOnVacation, false trả về; khi làm tương tự cho đối tượng Ian, true trả về. Đó là vì mỗi đối tượng của lớp là riêng biệt. Chúng dùng cùng bản thiết kế, nhưng có thể lưu giá trị riêng.



Kết luận

Lớp và đối tượng là nền tảng của lập trình hướng đối tượng. Lớp cho phép định nghĩa bản thiết kế, từ đó định nghĩa đối tượng.

Bạn sẵn sàng cho thử thách? Tạo chương trình với lớp theo dõi thông tin xem sinh viên đã đỗ bài kiểm tra hay chưa. Nó nên:

  • Lưu biến theo dõi xem sinh viên đã đỗ bài kiểm tra.
  • Có hai phương thức thay đổi xem sinh viên đã đỗ bài kiểm tra.
  • Tùy chọn, bạn có thể dùng câu lệnh "if" để tính xem bài kiểm tra sinh viên nên đánh dấu đỗ/trượt dựa trên điểm số.

Bây giờ bạn đã sẵn sàng làm việc với lớp và đối tượng trong Java như chuyên gia!