<< Chapter < Page Chapter >> Page >

Các hàm thành viên đôi khi được gọi là các phương thức (methods) trong các ngôn ngữ lập trình hướng đối tượng khác, và được đưa ra trong việc đáp ứng các message gởi tới một đối tượng. Một message tương ứng với việc gọi hàm thành viên.

Khi một lớp được định nghĩa, tên lớp có thể được sử dụng để khai báo đối tượng của lớp theo cú pháp sau:

<class-name><object-name>;

Chẳng hạn, cấu trúc Time sẽ được định nghĩa dưới dạng lớp như sau:

class Time

{

public:

Time();

void SetTime(int, int, int)

void PrintMilitary();

void PrintStandard()

private:

int Hour; // 0 - 23

int Minute; // 0 - 59

int Second; // 0 - 59

};

Trong định nghĩa lớp Time chứa ba thành viên dữ liệu là Hour, Minute và Second, và cũng trong lớp này, chúng ta thấy các nhãn public và private được gọi là các thuộc tính xác định truy cập thành viên (member access specifiers) gọi tắt là thuộc tính truy cập.

Bất kỳ thành viên dữ liệu hay hàm thành viên khai báo sau public có thể được truy cập bất kỳ nơi nào mà chương trình truy cập đến một đối tượng của lớp. Bất kỳ thành viên dữ liệu hay hàm thành viên khai báo sau private chỉ có thể được truy cập bởi các hàm thành viên của lớp. Các thuộc tính truy cập luôn luôn kết thúc với dấu hai chấm (:) và có thể xuất hiện nhiều lần và theo thứ tự bất kỳ trong định nghĩa lớp. Mặc định thuộc tính truy cập là private.

Định nghĩa lớp chứa các prototype của bốn hàm thành viên sau thuộc tính truy cập public là Time(), SetTime(), PrintMilitary() và PrintStandard(). Đó là các hàm thành viên public (public member function) hoặc giao diện (interface) của lớp. Các hàm này sẽ được sử dụng bởi các client (nghĩa là các phần của một chương trình mà là các người dùng) của lớp xử lý dữ liệu của lớp. Có thể nhận thấy trong định nghĩa lớp Time, hàm thành viên Time() có cùng tên với tên lớp Time, nó được gọi là hàm xây dựng (constructor function) của lớp Time.

Một constructor là một hàm thành viên đặc biệt mà khởi động các thành viên dữ liệu của một đối tượng của lớp. Một constructor của lớp được gọi tự động khi đối tượng của lớp đó được tạo.

Thông thường, các thành viên dữ liệu được liệt kê trong phần private của một lớp, còn các hàm thành viên được liệt kê trong phần public. Nhưng có thể có các hàm thành viên private và thành viên dữ liệu public.

Khi lớp được định nghĩa, nó có thể sử dụng như một kiểu trong phần khai báo như sau:

Time Sunset, // Đối tượng của lớp Time

ArrayTimes[5], // Mảng các đối tượng của lớp Time

*PTime, // Con trỏ trỏ đến một đối tượng của lớp Time

&DinnerTime = Sunset; // Tham chiếu đến một đối tượng của lớp Time

Ví dụ 3.2 : Xây dựng lại lớp Time ở ví dụ 3.1

1: #include<iostream.h>

2:

3: class Time

4: {

5:  public:

6: Time();  //Constructor

7: void SetTime(int, int, int); //Thiết lập Hour, Minute va Second

8: void PrintMilitary(); //In thời gian dưới dạng giờ quân đội

9: void PrintStandard(); //In thời gian dưới dạng chuẩn

10: private:

11: int Hour; // 0 - 23

12: int Minute; // 0 - 59

13: int Second; // 0 - 59

14: };

15:

16: //Constructor khởi tạo mỗi thành viên DL với giá trị zero

17: //Bảo đảm tất cả các đối tượng bắt đầu ở một t.thái thích hợp

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Lập trình hướng đối tượng. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10794/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Lập trình hướng đối tượng' conversation and receive update notifications?

Ask