You are on page 1of 23

Topic 2

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

1
Nội dung bài học

• Các phương pháp lập trình


• Định nghĩa lập trình hướng đối tượng
• Trừu tượng hóa dữ liệu
• Lớp và Đối tượng
• Construction và Destruction
• Tính lưu trữ, Đóng gói, Kế thừa và Đa hình
• Ưu điểm của phương pháp lập trình hướng đối tượng
• Tóm tắt

2
Các phương pháp lập trình

• Lập trình không có cấu trúc


• Lập trình có cấu trúc (lập trình thủ tục)
• Lập trình hướng đối tượng

3
Lập trình không có cấu trúc

Non-structured programming
• Là phương pháp xuất hiện đầu tiên
– sử dụng các biến tổng thể
– lạm dụng lệnh GOTO
• Các nhược điểm
– khó hiểu, khó bảo trì, hầu như không thể sử dụng lại
– chất lượng kém
– chi phí cao
– không thể phát triển các ứng dụng lớn

4
Lập trình có cấu trúc/lập trình thủ tục

Structured/procedural programming
• Chia hệ thống thành các chức năng (hàm), các chức năng lại
được chia thành các chức năng nhỏ hơn nữa đến khi đủ nhỏ...
• Các ngôn ngữ: Pascal, C, Foxpro
• Chương trình là tập các hàm/thủ tục
• Ưu điểm
– chương trình được cục bộ hóa, do đó dễ hiểu, dễ bảo trì hơn
– dễ dàng tạo ra các thư viện phần mềm
• Nhược điểm
– nhược điểm được thể hiện rất rõ khi lập trình hệ thống lớn: rất khó kiểm
soát, khó bổ sung, nâng cấp…

5
Lập trình hướng đối tượng

Object Oriented Programing


– Phương pháp thiết kế và cài đặt các hệ thống phần mềm
– Chương trình bao gồm các đối tượng. Các đối tượng
tương tác với nhau thông qua các thuộc tính và phương
thức của chúng

Object B
Object C

Object A Object D

6
Trừu tượng hóa dữ liệu (Data Abstraction)

Các thuộc tính của đối tượng Các thuộc tính của một đối
Người tượng Khách hàng mua xe
hơi
Tên Tên
Địa chỉ Địa chỉ
Tuổi
Chiều cao
Màu tóc

7
Trừu tượng hóa dữ liệu

Các thuộc tính Các hành động


Tên của khách hàng Nhập tên của khách hàng
Địa chỉ của khách hàng Nhập địa chỉ của khách hàng
Đời xe hơi Nhập đời xe hơi khách hàng mua
Người bán xe Nhập tên người bán xe
Lập hoá đơn

8
Trừu tượng hóa dữ liệu

• Là tiến trình phát hiện và tập hợp các thuộc tính và các hành
động của một thực thể có liên quan đến ứng dụng
• Lợi ích:
– Tập trung vào vấn đề đang giải quyết
– Xác định những thuộc tính và hành động thiết yếu
– Loại trừ những chi tiết không cần thiết

9
Lớp (Class)

• Lớp định nghĩa thực thể dưới dạng những thuộc tính và hành
động điển hình
Lớp Khách hàng
Tên khách hàng
Địa chỉ khách hàng
Đời xe hơi
Tên người bán xe
Nhập tên
Nhập địa chỉ
Nhập đời của xe hơi
Nhập tên của người bán xe
Lập hóa đơn
10
Đối Tượng (Object)

• Đối tượng là một thể hiện của lớp


 Stephen
 Boston
 Opel Astra
 Robin

Stephen là một đối tượng của lớp khách hàng

11
Đối Tượng

• Thuộc tính
– Tính chất mô tả một đối tượng
• Hành động
– Dịch vụ mà đối tượng có thể đáp ứng
• Phương thức
– Cách hành động được đáp ứng khi được yêu cầu
• Thông điệp
– Yêu cầu một hành động
• Sự kiện
– Sự kích thích từ đối tượng này gửi sang đối tượng khác

12
Lớp Và Đối Tượng

• Lớp định nghĩa một thực thể, còn đối tượng là một thực thể
thực tế
• Lớp là một mô hình khái niệm định rõ các thuộc tính và các
hành động của một đối tượng, còn đối tượng là một mô hình
thực tiễn.
• Lớp là khuôn mẫu của đối tượng
• Tất cả các đối tượng trong cùng một lớp có tập các thuộc tính
và hành động như nhau

13
Constructor

• Tiến trình tạo ra một đối tượng được gọi là khởi tạo
(Construction)
• Constructor:
– Cấp phát vùng nhớ
– Khởi gán những thuộc tính, nếu có
– Cho phép truy cập những thuộc tính và phương thức

14
Destructor

• Tiến trình hủy một đối tượng gọi là Destructor


• Destructor:
– Giải phóng bộ nhớ
– Cấm truy cập thuộc tính và phương thức

15
Tính Bền vững (Persistence)

• Tính Bền vững là khả năng của đối tượng có thể lưu lại dữ
liệu của nó sau khi đã bị hủy (thời gian sống của nó không
còn nữa)

16
Tính Đóng Gói Dữ Liệu (Encapsulation)

• Tiến trình che dấu những chi tiết bên trong đối tượng được
gọi là Đóng Gói Dữ Liệu
• Ưu điểm:
– Tất cả những thuộc tính và phương thức cần thiết đều được tạo
– Một lớp có thể có nhiều thuộc tính và phương thức nhưng chỉ một số
trong đó cho phép bên ngoài đối tượng có thể sử dụng.

17
Tính Kế Thừa

LỚP SINH VIÊN LỚP NHÂN VIÊN LỚP KHÁCH HÀNG


Tên Tên Tên
Địa chỉ Địa chỉ Địa chỉ
Điểm môn 1 Lương Đời của xe hơi
Điểm môn 2 Chức vụ Nhập tên
Nhập tên Nhập tên Nhập địa chỉ
Nhập địa chỉ Nhập địa chỉ Nhập đời xe
Nhập điểm Nhập lương Lập hóa đơn
Tính tổng số điểm Tính lương

18
Tính Kế Thừa

LỚP NGƯỜI
Tên
Địa chỉ
Nhập tên
Nhập địa chỉ

+ = Lớp Khách Hàng


Thêm các thuộc tính và hành động
cần thiết của lớp khách hàng
Nhập đời xe hơi

Lập hóa đơn

19
Tính Kế Thừa

• Tính Thừa kế
– Là cơ chế cho phép một lớp chia sẻ những thuộc tính và những hành
động đã định nghĩa cho một hoặc nhiều lớp khác
• Lớp con
– Là lớp thừa kế từ lớp khác

• Lớp cha
– Là lớp từ đó một lớp khác thừa kế các thuộc tính và hành động của nó
• Đa thừa kế
– Khi một lớp con thừa kế từ hai hoặc nhiều lớp khác

20
Tính Đa Hình

• Tính đa hình là khả năng cho phép một hành động ứng xử
khác nhau trên các đối tượng khác nhau

Hành động Hiển thị

Chữ Hình ảnh


Đường
thẳng

How are you?

21
Các ưu điểm của phương pháp hướng đối tượng

• Tạo ra sự gần gũi giữa bài toán thực tế và việc cài đặt chương
trình
• Đẩy mạnh việc chia sẻ trong phạm vi một ứng dụng
• Đẩy mạnh sự sử dụng lại của các đối tượng khi cài đặt những
ứng dụng mới
• Về lâu dài, giảm đáng kể chi phí khi phát triển các ứng dụng
mới
• Giảm lỗi và sự phức tạp trong bảo trì
• Sửa đổi nhanh hơn

22
Tóm tắt bài học

• Tiếp cận hướng đối tượng đưa ra một giải pháp toàn diện cho
bài toán cụ thể
• Trừu tượng dữ liệu là một tiến trình phát hiện và tập hợp các
thuộc tính và các hành động có quan hệ với một thực thể cụ thể
• Lớp mô tả một thực thể, còn đối tượng là một thực thể thực tế
• Constructor và Destructor
• Tính lưu trữ, đóng gói dữ liệu, tính kế thừa và đa hình

23

You might also like