Tải bản đầy đủ (.pdf) (210 trang)

Kỹ thuật lập trình chương 6 9

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.59 MB, 210 trang )

KỸ THUẬT LẬP TRÌNH
Chương 6. Lập trình hướng
đối tượng

277


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

278


Tổng quan

279


Lập trình cấu trúc
• Lập trình cấu trúc (1960s)
– Phân chia vấn đề lớn thành các vấn đề con độc lập, từ
đó tạo thành thủ tục và hàm.
– Trọng tâm của lập trình truyền thống: dựa trên các chi
tiết của việc thực hiện.
– Phương pháp viết chương trình chặt chẽ
– Rõ ràng, dễ thử nghiệm và sửa lỗi, dễ thay đổi
– Khi chương trình lớn hơn  khó quản lý
– Dữ liệu đóng vai trị quan trọng
• Khi thêm 1 dữ liệu kiểu mới, phải thay đổi tất cả các cơng việc
và các hàm liên quan đến dữ liệu đó
• Không thể phân chia các phần cần che dấu thông tin trong


chương trình.
280


Các phương pháp lập trình
Lập trình tuyến tính

Thời gian đầu

Lập trình có cấu trúc

1960 – 1970

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

1980
281


(1) Lập trình tuyến tính
• Chương trình là một
dãy các lệnh
• Lập trình là viết các
lệnh trong dãy lệnh

• Khơng mang tính thiết kế
• Tiêu biểu là ngơn ngữ Basic, Fortran
282



(1) Lập trình tuyến tính: Đặc điểm
• Chương trình đơn giản, số dịng lệnh ít
• Thực hiện trình tự từ đầu đến cuối
• Khơng có cấu trúc
• Dùng các lệnh “goto/ gosub” để nhảy đến một
vị trí nào đó trong chương trình

283


(2) Lập trình có cấu trúc
• Chương trình là một hệ thống các thủ tục/
hàm. Mỗi thủ tục/ hàm là một dãy các lệnh
• Lập trình là xây dựng các thủ tục/ hàm
• Kết quả là hệ thống cấu trúc và mối quan hệ
giữa các hàm/ thủ tục
• Tiêu biểu là ngôn ngữ Pascal, C
284


(2) Lập trình có cấu trúc
• Khái niệm trừu tượng hóa (abstraction) theo
chức năng: Làm được gì, khơng quan tâm chi
tiết bên trong
• Phân chia cơng việc thành các chức năng đơn
giản hơn gọi là lập trình đơn thể (module)

285



(2) Lập trình có cấu trúc: Đặc điểm
Ưu điểm
• Đơn giản hóa q trình thiết kế và cài đặt
• Dễ đọc chương trình, hiểu chi tiết bài tốn
• Các chương trình con tương đối độc lập, dễ
phân cơng cho từng nhóm

286


(2) Lập trình có cấu trúc: Đặc điểm
Khuyết điểm
Khi thay đổi dữ liệu thì phải thực hiện các thay
đổi ở mọi đơn thể có tác động trên chúng
Hàm và dữ liệu khơng có quan hệ với nhau
Hàm khơng hạn chế truy nhập tới các biến toàn
cục
287


(2) Lập trình có cấu trúc: Đặc điểm
Khuyết điểm
• Sai sót trong việc trao đổi thơng tin giữa các
thành viên trong nhóm có thể mất nhiều thời
gian để sửa chữa chương trình
• Phần xử lý nằm rải rác và phải hiểu rõ cấu
trúc dữ liệu
• Khó bảo trì chương trình
288



(3) Lập trình Hướng đối tượng
(Object-oriented Programming)
• Tư duy mới, tiếp cận theo hướng đối
tượng để giải các bài toán trên máy tính
• Thiết kế và phát triển phần mềm dựa trên
kiến trúc lớp và đối tượng

289


(3) Lập trình Hướng đối tượng
(Object-oriented Programming)
Mục tiêu
• Loại bỏ những thiếu sót của tiếp cận theo thủ tục
• Tiếp cận theo hướng trừu tượng hố (abstraction)
• Dữ liệu được xem là phần trung tâm và được bảo
vệ
• Hàm gắn kết với dữ liệu

290


(3) Lập trình Hướng đối tượng
(Object-oriented Programming)
Mục tiêu
• Phân tách bài toán thành nhiều đối tượng và
yêu cầu chúng thực hiện hành động của mình
• Tăng cường khả năng sử dụng lại


291


(3) Lập trình Hướng đối tượng
(Object-oriented Programming)
Ưu điểm
• Cung cấp một cấu trúc module rõ ràng: Giao
diện định nghĩa rõ ràng và chi tiết cài đặt ẩn
• Duy trì và sửa đổi mã nguồn dễ dàng
• Cung cấp framework tốt với các thư viện mã
nguồn
292


Lập trình hướng đối tượng
• Object oriented programming (OOP)
– Chia bài tốn thành các nhóm nhỏ có liên hệ với
nhau gọi là đối tượng.

293


Đối Tượng (Object)
• Đối tượng là
chìa khóa để hiểu
được kỹ thuật
hướng đối tượng
• Trong hệ thống
hướng đối tượng,

mọi thứ đều là đối
tượng
Viết một chương trình hướng đối tượng nghĩa là đang tạo
một mơ hình của một vài bộ phận trong thế giới thực
294


Đối tượng (Object)
What is the
salary of Jack?
Sales

Jack's salary
is $2000
Accounts

– Hộp đen chứa các
lệnh (code) và dữ
liệu.
– Thông tin truyền
giữa các phần khác
nhau gọi là các
thông điệp giữa các
đối tượng.
– Các thơng điệp này
có thể được chuyển
thành lời gọi hàm
trong chương trình.
295



Đối Tượng

Đối tượng phần mềm

Đối tượng (object) là một
thực thể phần mềm bao
bọc các thuộc tính và
các phương thức liên
quan.

Đối tượng phần mềm Xe Đạp

Thuộc tính được xác định
bởi giá trị cụ thể gọi là
thuộc tính thể hiện.
Một đối tượng cụ thể
được gọi là một thể hiện.
296


Đối Tượng Thế Giới Thực
(Real Object)
• Một đối tượng thế giới thực là một thực
thể cụ thể mà thông thường bạn có thể sờ,
nhìn thấy hay cảm nhận được.
• Tất cả có
trạng thái
(state) và
hành động

(behaviour)

Dữ liệu thành viên Hàm thành viên

297


Đối Tượng Phần Mềm
(Software Object)
• Các đối tượng phần mềm có thể được
dùng để biểu diễn các đối tượng thế giới
thực.
• Cũng có trạng thái và
hành động
– Trạng thái: thuộc tính
(attribute; property)
– Hành động: phương thức
(method)

298


Lớp (Class)
• Nhóm các đối tượng có cùng thuộc tính (hay còn gọi là
trạng thái, hoặc Dữ liệu thành viên), hành vi (Hàm thành
viên) và mối quan hệ chung.
• Lớp là viết tắt của “lớp của đối tượng”.
• Một lớp là một thiết kế (blueprint) hay mẫu (prototype)
cho các đối tượng cùng kiểu
– Ví dụ: lớp XeDap là một thiết kế chung cho nhiều đối tượng xe

đạp được tạo ra

• Một đối tượng là một thể hiện (instance) cụ thể của một
lớp.
– Ví dụ: mỗi đối tượng xe đạp là một thể hiện của lớp XeDap

• Mỗi thể hiện có thể có những thuộc tính thể hiện khác
nhau
– Ví dụ: một cây mai có hoa 6 cánh, trong khi một cây khác có hoa
299
đến 12 cánh.


Thuộc Tính Lớp
& Phương Thức Lớp
Đối tượng đa giác

Lớp đa giác

Trừu tượng hóa

Thuộc tính
(properties):
Số cạnh
Màu viền
Màu nền
Phương thức
(methode):
Vẽ
Xóa

Di chuyển
300


Thuộc Tính Lớp
& Phương Thức Lớp
• Thuộc tính lớp (class attribute): đặc trưng yêu cầu của
đối tượng hoặc thực thể được biểu diễn trong một lớp.
• Thuộc tính lớp được định nghĩa bên trong định nghĩa lớp
và được chia sẻ bởi tất cả các thể hiện của lớp.
– Ví dụ: Lớp đa giác gồm các thuộc tính như: số cạnh, màu viền,
màu chữ…

• Phương thức lớp (class method): phương thức (hành
động) yêu cầu của đối tượng hoặc thực thể được biểu
diễn trong một lớp.
• Tất cả các phương thức lớp ảnh hưởng đến tồn bộ lớp
chứ khơng ảnh hưởng đến một lớp riêng rẽ nào.
– Ví dụ: Lớp đa giác gồm các phương thức như: vẽ, xóa, di
chuyển…

301


×