Trang chủ » Lập trình » Lập trình hướng đối tượng cung cấp cho lập trình viên những khả năng gì?

Lập trình hướng đối tượng cung cấp cho lập trình viên những khả năng gì?

1804 Lượt xem

Ngôn ngữ lập trình hướng đối tượng đã xây dựng một mối liên kết khắng khít giữa cấu trúc dữ liệu và những phương thức điều tác chúng. Điều quan trọng là khi tiếp cận với lập trình hướng đối tượng những gì bạn phải nghĩ đến không còn là cấu trúc dữ liệu và các hàm điều tác. Thay vào đó bạn phải luôn nghĩ đến cái gọi là "đối tượng" (object).



Hầu hết mọi người khi nhìn vào một chiếc xe hơi, họ không nghĩ về những thông tin mà nó có và làm cách nào để điều quản những thông tin ấy. Họ nghĩ về các bánh xe, bộ truyền động, hộp số… Họ nghĩ về cách cho xe chạy, dừng lại, tăng tốc… Họ nghĩ về đường đi, cảnh sát công lộ và những vé phạt quá tốc độ… Nói ngắn gọn là hầu hết mọi người nghĩ đến những sự vật (things) và những sự vật đó làm những gì. Thực tế, đây là cách mà loài người nghĩ về mọi thứ. Quá trình tiến hoá hàng chục triệu năm đã dạy chúng ta cách nhìn về một thế giới như được lắp đầy bởi những sự vật. Một vài trong số những sự vật đó chúng ta có thể ăn, một số khác lại ăn chúng ta…



Một cách lý tưởng, phần mềm của chúng ta được mô hình hóa rất giống với thế giới thực. Nhìn theo góc độ này, những chương trình của chúng ta trở nên dễ hiểu hơn và dễ bảo trì hơn. Những đối tượng trong thế giới thực có những đặc tính và những hành vi riêng, đối tượng trong chương trình cũng vậy.



Bây giờ chúng ta xem những khác biệt trong ngôn ngữ lập trình hướng đối tượng mà cụ thể là C++. Hãy xem đoạn mã sau:



#include <iostream.h>

class Employee

{

public:

Employee(int salary, int level);

~Employee(){}



void GiveARaise(double pctg);

int GetSalary() const {return mSalary;}

private:

int mSalary;

int mLevel;

};

Employee::Employee(int salary, int 

level):mSalary(salary),mLevel(level)



cout<<"Initializing Employee with salary :"<<mSalary<<endl;

}

void Employee::GiveARaise(double pctg)

{

int increment = int(mSalary*pctg);

cout<<"Incrementing salary by "<<increment<<endl;

mSalary+=increment;

}

int main()

{

Employee Emp(50000,3);

Cout<<"Emp''s salary :"<<Emp.GetSalary()<<endl;

}



Trong chương trình trên chúng ta khai báo một lớp (class) có tên là Employee. Một lớp chẳng qua là một kiểu dữ liệu mở rộng. Chúng ta bắt đầu với những kiểu dữ liệu xây dựng sẵn trong C như kiểu int, double, float … nhưng bây giờ chúng ta thêm vào một danh sách bằng cách tạo ra một kiểu dữ liệu mới và sau đó khai báo biến sử dụng kiểu dữ liệu mới này.



Một kiểu dữ liệu có thể có những hành vi (behavior) và những thuộc tính (atribute). Hành vi được thể hiện bởi những phương thức (method) trong lớp, còn những thuộc tính được đại diện bởi các biến thành viên của lớp. Trong lớp Employee ở trên có 2 biến thành viên: mSalary và mLevel; 4 phương thức: hàm dựng (contructor), hàm hủy (destructor), hàm truy cập (accessor) GetSalary và GiveARaise.



Hàm dựng dùng để khởi tạo các biến khi đối tượng được tạo ra. Trong ví dụ của chúng ta, hàm dựng làm tác vụ khởi tạo giá trị cho hai biến là mSalary và mLevel.



Hàm hủy được dùng khi huỷ đối tượng và có tác dụng giải phóng tài nguyên như bộ nhớ mà đối tượng được cấp phát. Trong ví dụ này, hàm hủy không làm gì cả.



GetSalary chỉ làm công việc trả về giá trị của mSalary.



GetARaise là hàm thành viên của Employee và nó truy xuất được đến biến cục bộ mSalary. Hàm này được dùng khi bạn muốn tăng lương cho nhân viên.

THAM KHẢO THÊM CÁC SẢN PHẨM HOT NHẤT HIỆN NAY
Giày Cafe SHOEX
Hạ Khang Đường - Ổn định đường huyết
Saffron Extra White
Cốc Nguyệt San BEUCUP
Maxi White
Fysoline - Nước muối sinh lý dành cho bé sơ sinh và trẻ nhỏ
Mặt nạ thon mặt Vline
Finava - Tinh chất vàng sáng da, trị nám ngăn ngừa lão hoá
Trị Mụn Caryophy
Rong Nho Sabudo
Son YUMEISAKURA
Máy Khử Mùi MARKEL
Orlavi - Làm mờ sẹo
Dottorprimo - Trị các vết sẹo nặng
ZEN - Sản phẩm giúp hỗ trợ giảm căng thẳng
Nồi Chiên Không Dầu COSORI
Nồi Chiên Không Dầu LOTTE
Dưỡng Trắng RealWhite
Máy rửa mặt Pebble Lisa
Dầu Gội Nature Quen - Sao Thái Dương