Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 123 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
123
Dung lượng
1,72 MB
Nội dung
Lậptrìnhhướngđốitượng C+
Lập trìnhhướngđốitượng C+
+
+
Tổng quan
Tổng quan
Lập trình cấu trúc
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ậptrì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.
•
Object oriented programming (OOP)
–
Chia bài toán thành các nhóm nhỏ có liên hệ với
nhau gọi là đối tượng.
Lập trìnhhướngđối tượng
Lập trìnhhướngđối tượng
Đối Tượng
Đối Tượng
(Object)
(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ìnhhướngđốitượ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
Sales
Accounts
What is the
salary of Jack?
What is the
salary of Jack?
Jack's salary
is $2000
Jack's salary
is $2000
–
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.
Đối tượng (Object)
Đối tượng (Object)
Đối Tượng
Đối Tượng
Đố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 Đốitượ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 đốitượng cụ thể
được gọi là một thể hiện.
Đối Tượng Thế Giới Thực
Đối Tượng Thế Giới Thực
(Real Object)
(Real Object)
•
Một đốitượ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)
Đối Tượng Phần Mềm
Đối Tượng Phần Mềm
(Software Object)
(Software Object)
•
Các đốitượng phần mềm có thể được
dùng để biểu diễn các đốitượ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)
Lớp (Class)
Lớp (Class)
•
Nhóm các đốitượng có cùng thuộc tính, hành vi 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 đốitượng cùng kiểu
–
Ví dụ: lớp XeDap là một thiết kế chung cho nhiều đốitượng xe
đạp được tạo ra
•
Một đốitượng là một thể hiện cụ thể của một lớp.
–
Ví dụ: mỗi đốitượ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
đến 12 cánh.
[...]... (Method) • Một hoạt động, hành vi của đốitượng • Đốitượng là “hộp đen” nhận và gửi thông điệp (message) Cơ bản về lớp • Đối tượng của lớp – Đốitượng là một thể hiện cụ thể của một lớp – Khai báo sau định nghĩa lớp • Khai báo đốitượng hoặc mảng, con trỏ, tham chiếu đến đốitượng • Ví dụ: Point pt; Point polygon[9]; Point *pt1, pt2, pt3; • Chỉ dữ liệu của đốitượng mới được cấp phát vùng nhớ, các... tốt • Những chi tiết cài đặt được ẩn – OOP giúp lậptrình viên duy trì mã và sửa đổi mã tồn tại dễ dàng (các đốitượng được tạo ra với những khác nhau nhỏ so với những đốitượng tồn tại) – OOP cung cấp một cơ chế tốt với các thư viện mã mà các thành phần có thể được chọn và sửa đổi bởi lậptrình viên Trừu Tượng Hóa (Abstraction) • Trừu tượng hóa – Tiến trình xem xét các khía cạnh nào đó của bài toán... nhau đối với các đối tượng/ các lớp khác nhau • Ngữ cảnh khác kết quả khác Điểm Đường Thẳng Hình Tròn Vẽ Hình Vuông Lớp Khái niệm lớp • Lớp: khái niệm trung tâm của OOP • Định nghĩa: Lớp là nhóm của những đốitượng (objects) có cùng chung thuộc tính (properties) và có những mối quan hệ chung • Đối tượng: thể hiện một thực thể trong thế giới thực Khái niệm lớp • Lớp: kiểu dữ liệu trừu tượng Đặc tả đối. .. hiện – Các tham số mà phương thức cần • Truyền thông điệp: một đốitượng triệu gọi một hay nhiều phương thức của đốitượng khác để yêu cầu thông tin Đặc Điểm Quan Trọng • Nhấn mạnh trên dữ liệu hơn là thủ tục • Các chương trình được chia thành các đốitượng • Dữ liệu được che giấu và không thể được truy xuất từ các hàm bên ngoài • Các đốitượng có thể giao tiếp với nhau thông qua các hàm • Dữ liệu hay... y; } void Point::OffsetPt (int x, int y) { Point xVal += x; yVal += y; } void main() { Point pt; pt.SetPt(10,20); pt.OffsetPt(2,2); …… Tạo ra đốitượng thuộc lớp Point Gọi hàm trên đốitượng pt.xVal = 10; // Đúng hay sai? Point pt1, pt2, pt3; ……… } Cơ bản về lớp • Lớp gồm các thành viên: – Dữ liệu thành viên (Member Data): • Một đặc trưng của đốitượng • Có thể là kiểu đã được định nghĩa hoặc tự định... (Information Hiding) • Đóng gói Thuộc tính được lưu trữ hay phương thức được cài đặt như thế nào được che giấu đi từ các đốitượng khác Việc che giấu những chi tiết thiết kế và cài đặt từ những đốitượng khác được gọi là ẩn thông tin Tính Thừa Kế (Inheritance) • Hệ thống hướng đốitượng cho phép các lớp được định nghĩa kế thừa từ các lớp khác – Ví dụ, lớp xe đạp leo núi và xe đạp đua là những lớp con... thích • Các kỹ thuật trừu tượng – Đóng gói (encapsulation) – Ẩn thông tin (information hiding) – Thừa kế (inheritance) – Đa hình (polymorphism) Tính đóng gói (Encapsulation) • Đóng gói (encapsulation): – Cho phép truy cập đốitượng chỉ qua thông điệp của nó trong khi giữ kín các chi tiết riêng tư gọi là ẩn thông tin – Là tiến trình che giấu việc thực thi chi tiết của một đốitượng Ẩn thông tin (Information... s1(100); Set s2(20); Set s3(1000); … } Mềm dẻo hơn Không cần phải nhớ gọi hàm EmptySet() khi khởi tạo Hàm tạo • Hàm tạo sao chép khởi tạo đốitượng dựa trên một đốitượng khác thuộc cùng lớp • Mỗi lớp có một hàm tạo sao chép mặc định – hàm này có một tham số là đốitượng cùng lớp • Ta có thể định nghĩa lại hàm tạo sao chép Date(Date& d) • Ví dụ void main() { Date d1(12,4,1997); Date d2(d1); // hàm tạo... Định xVal = x; nghĩa yVal = y; bên } trong void OffsetPt (int x, int y) { xVal += x; lớp yVal += y; } }; Truy cập các thành phần (dữ liệu và hàm) • Các chế độ truy cập – private • Chế độ truy cập mặc định • Các hàm thành phần và các hàm bạn, lớp bạn có thể truy cập được – public • Bất kỳ hàm nào trong chương trình xử lý đốitượng đó cũng có thể truy cập được – protected • Sẽ được học sau Hiện tại giống... cô lập lỗi ⇒ dễ dàng tìm kiếm và sữa chữa Hàm tạo • • • • Dùng để định nghĩa và khởi tạo đốitượng cùng 1 lúc Có tên trùng với tên lớp, không có kiểu trả về Không gọi trực tiếp, sẽ được tự động gọi khi khởi tạo đt Gán giá trị, cấp vùng nhớ cho các dữ liệu thành viên viên class Point { int xVal, yVal; public: Point (int x, int y) { xVal = x; yVal = y; } void OffsetPt (int x, int y) { xVal += x; yVal += . Lập trình hướng đối tượng C+ Lập trình hướng đối tượng C+ + + Tổng quan Tổng quan Lập trình cấu trúc Lập trình cấu trúc • Lập trình cấu trúc (1960s) – Phân chia. chương trình. • Object oriented programming (OOP) – Chia bài toán thành các nhóm nhỏ có liên hệ với nhau gọi là đối tượng. Lập trình hướng đối tượng Lập trình hướng đối tượng Đối Tượng Đối Tượng . (Object) (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