Thứ Ba, 7 tháng 5, 2024

47. Lớp (Class) và đối tượng (Object) trong C++

 C++ là ngôn ngữ lập trình hướng đối tượng.

Mọi thứ trong C++ đều được liên kết với các lớp-Class và đối tượng-Object, cùng với các thuộc tính và phương thức của nó.  Trong chương trình tào lao phiên bản 3 trong C++ của chúng ta, có thể coi SinhVien như một lớp (Class) mặc dù chúng ta không chủ động tạo ra lớp SinhVien. Trong đời thực, Xe là một lớp, trong lúc Toyota, Honda, BMW...là các đối tượng.

Các thuộc tính và phương thức về cơ bản là các biến và hàm thuộc về lớp. Những khái niệm này thường được gọi là "thành viên của lớp".

Lớp là kiểu dữ liệu do người dùng định nghĩa mà chúng ta có thể sử dụng trong chương trình của mình và nó hoạt động như một hàm tạo đối tượng hoặc một "bản thiết kế" để tạo đối tượng.

Tạo một lớp Class

Để tạo một lớp, hãy sử dụng từ khóa Class.

Ví dụ:

Tạo một lớp có tên là SinhVien

class SinhVien {       // Tên lớp
  public:             // Quyền truy cập
    string hoten;     // Thuộc tinh- Attribute  (biến string)
    string email;     // Thuộc tinh- Attribute  (biến string)
    string diaChi;    // Thuộc tinh- Attribute  (biến string)
    string chuyenNganh; // Thuộc tinh- Attribute  (biến string)
    double diemTrungBinh; // Thuộc tinh- Attribute  (biến double)
};

 

Từ khóa public là một công cụ xác định quyền truy cập, chỉ định rằng các thành viên (thuộc tính và phương thức) của lớp có thể truy cập được từ bên ngoài lớp. Bạn sẽ tìm hiểu thêm về các công cụ xác định quyền truy cập sau.

Bên trong lớp có các biến chuỗi hoten, email, diaChi, chuyenNganh và một biến double diemTrungBinh. Khi các biến được khai báo trong một lớp, chúng được gọi là thuộc tính (Attribute).

Cuối cùng, kết thúc định nghĩa lớp bằng dấu chấm phẩy ;


Tạo một đối tượng

  Trong C++, một đối tượng được tạo từ một lớp. Chúng ta đã tạo lớp có tên SinhVien, vì vậy bây giờ chúng ta có thể sử dụng lớp này để tạo các đối tượng. Để tạo một đối tượng của SinhVien, hãy chỉ định tên lớp, theo sau là tên đối tượng. Để truy cập các thuộc tính lớp (hoten, email,diaChi,chuyenNganh và diemTrungBinh), hãy sử dụng cú pháp dấu chấm (.) trên đối tượng: Ví dụ Tạo một đối tượng có tên "sinhVienA" và truy cập các thuộc tính, đây là code:

#include <iostream>
#include <string>
using namespace std;

class SinhVien { // Tên lớp
public: // Access specifier
string hoten; // Thuộc tinh- Attribute (biến string)
string email; // Thuộc tinh- Attribute (biến string)
string diaChi; // Thuộc tinh- Attribute (biến string)
string chuyenNganh; // Thuộc tinh- Attribute (biến string)
double diemTrungBinh; // Thuộc tinh- Attribute (biến double)
};


int main() {
SinhVien sinhVienA; // Tạo một object từ Class SinhVien

// Access attributes and set values
sinhVienA.hoten = "Nguyen Van A";
sinhVienA.email = "nguyenvana@email.com";
sinhVienA.diaChi = "56 HV Da Nang";
sinhVienA.chuyenNganh = "CNTT";
sinhVienA.diemTrungBinh = 9.2;

// In gia tri
cout << sinhVienA.diemTrungBinh << endl;
cout << sinhVienA.hoten << endl;
cout << sinhVienA.email << endl;
cout << sinhVienA.diaChi << endl;
cout << sinhVienA.chuyenNganh << endl;
return 0;
}

Sử dụng IDE Online để chạy chương trình:




Chúng ta có thể tạo ra nhiều đối tượng (Object) từ một lớp. Mở rộng chương trình trên, chúng ta sẽ tạo ra thêm một đối tượng khác. Đây là code:

#include <iostream>
#include <string>
using namespace std;

class SinhVien {       // Tên lớp
  public:             // Access specifier
    string hoten;     // Thuộc tinh- Attribute  (biến string)
    string email;     // Thuộc tinh- Attribute  (biến string)
    string diaChi;    // Thuộc tinh- Attribute  (biến string)
    string chuyenNganh; // Thuộc tinh- Attribute  (biến string)
    double diemTrungBinh; // Thuộc tinh- Attribute  (biến double)
};


int main() {
  SinhVien sinhVienA;  // Tạo một object từ Class SinhVien

  // Access attributes and set values
  sinhVienA.hoten = "Nguyen Van A";
  sinhVienA.email = "nguyenvana@email.com";
  sinhVienA.diaChi = "56 HV Da Nang";
  sinhVienA.chuyenNganh = "CNTT";
  sinhVienA.diemTrungBinh = 9.2;

  // In gia tri
  cout << sinhVienA.diemTrungBinh << endl;
  cout << sinhVienA.hoten << endl;
  cout << sinhVienA.email << endl;
  cout << sinhVienA.diaChi << endl;
  cout << sinhVienA.chuyenNganh << endl;
 
   SinhVien sinhVienB;  // Tạo một object khác từ Class SinhVien

  // Access attributes and set values
  sinhVienB.hoten = "Tran Van B";
  sinhVienB.email = "tranvanb@email.com";
  sinhVienB.diaChi = "87 HV Da Nang";
  sinhVienB.chuyenNganh = "CNTT";
  sinhVienB.diemTrungBinh = 8.5;

  // In gia tri
  cout << sinhVienB.diemTrungBinh << endl;
  cout << sinhVienB.hoten << endl;
  cout << sinhVienB.email << endl;
  cout << sinhVienB.diaChi << endl;
  cout << sinhVienB.chuyenNganh << endl;
  return 0;
}


Bấm Run để chạy chương trình


 

Nhắc lại là lớp (Class) có các thuộc tính (Attribute) và phương thức (Method). Các thuộc tính và phương thức về cơ bản là các biến hàm thuộc về lớp. Những khái niệm này thường được gọi là "thành viên của lớp". Phần sau chúng ta sẽ tiếp tục với các phương thức của lớp.


Phần tiếp theo


Phần trước

 

Không có nhận xét nào:

Đăng nhận xét