Đối tượng (object) và lớp (class)

Đối tượng trong đời sống thực và đối tượng trong ứng dụng

Chúng ta sẽ đi sâu vào tìm hiểu vậy đối tượng là gì? Nếu bạn xem xét thế giới thực bạn sẽ thấy khái niệm đối tượng ở xung quanh ta từ hữu hình như các vật nuôi, ô tô, sách, hay con người,…

Đối tượng thực tế thường có 2 thành phần chính là trạng thái (state) và hành vi (behavior). Ví dụ, một đối tượng ô tô (Car) sẽ có các đặc tính màu (color), hãng (brand), kiểu (type), số lượng số sàn (number of gears), tốc độ (speed)... và các hành động khởi động (start), tăng tốc (accelerate), phanh (brake), đổi số (change gears),…

Đối tượng trong ứng dụng là những mô hình lập trình của các đối tượng trong đời sống thực. Các đối tượng trong ứng dụng cũng có trạng thái và hành vi. Trạng thái của đối tượng ứng dụng sẽ được lưu trong các trường dữ liệu (field) và hành vi được hiển thị thông qua phương thức (method).

Hình ảnh sau sẽ minh hoạ rõ việc mô hình hoá các đối tượng trong đời sống thực thành các đối tượng trong ứng dụng:

Lớp trong C#

Một lớp là một thiết kế được và được tạo ra từ một nhóm các đối tượng riêng lẻ có tính chất và hành động giống nhau. Một lớp định nghĩa các trường dữ liệu (field) và phương thức hành động (method) mà các đối tượng thể hiện được khởi tạo sẽ có.

Minh hoạ sau sẽ giúp bạn hiểu hơn quá trình trừu tượng, mô hình các đối tượng trong đời sống thực thành các lớp trong C#:

Ví dụ về tạo lớp Car:

public class Car {
   string make;
   string model;
   string color;
   string vin;
   public void Start() {
      System.Console.WriteLine("Car is starting!");
   }
   public void Stop() {
      System.Console.WriteLine("Car is stopped!");
   }
   ...
}

Một lớp có thể chứa các loại kiểu biến sau:

  • Biến cục bộ (local variable): Biến cục bộ là những biến được khai báo và khởi tạo trong các phương thức hoặc hàm khởi tạo. Giá trị của các biến này sẽ được huỷ đi khi các phương thức kết thúc hoạt động.
  • Biến trường dữ liệu của các đối tượng thể hiện (instance variable): Các biến này là khai báo các trường dữ liệu trong lớp và nằm bên ngoài các phương thức. Các biến này được khởi tạo khi bạn khởi tao một đối tượng thể hiện của lớp đó. Bạn có thể truy xuất vào các biến này trong phương thức, hàm khởi tạo hoặc từ một lớp khác.
  • Biến lớp (class variable): Các biến này được khai báo giống như biến trường dữ liệu. Tuy nhiên khác ở chỗ trước biến này sẽ có bổ từ static và bên ngoài có thể truy xuất trực tiếp tới giá trị của biến thông qua tên lớp.

Khởi tạo đối tượng thể hiện của lớp

Tiếp theo các phần trên, bạn đã tạo được mô hình định nghĩa cho đối tượng Car. Giả sử chúng ta đang phải viết một hệ thống quản lý bán ô tô và sẽ có chức năng khách hàng để mua xem và chọn mua ô tô. Trong tình huống này khách hàng sẽ đặt 2 cái ô tô: 1 cái Civic của Honda và 1 cái Carmy của Toyota. Vậy trong ứng dụng C# của bạn, bạn sẽ phải khởi tạo các đối tượng thể hiện của của lớp Car. Mỗi thể hiện đó sẽ có các giá trị cho các trường dữ liệu được khai báo trong lớp và chúng ta có thể gọi các nghiệp vụ được khai báo trong lớp thông qua các đối tượng thể hiện đó. Cụ thể ở đây là các thông số về xe như minh hoạ sau:

Cú pháp để khởi tạo các đối tượng thể hiện của lớp chúng ta sẽ dùng từ khoá new như sau:

Car civic = new Car();
Car carmy = new Car();

Sau khi tạo xong 2 đối tượng thể hiện civic, carmy trên bạn có thể truy xuất tới các trường dữ liệu và phương thức của chúng.

Complete and Continue