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

Lập trình hướng đối tượng với .NET & C#.Chương 2 Tổng quan về lập trình hướng đối tượng pdf

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 (257.13 KB, 31 trang )

Chương 2
Mục tiêu
 Đặc trưng cơ bản của lập trình hướng đối tượng.
 Các khái niệm cơ bản trong lập trình hướng đối
tượng.
 Xác định các lớp của một bài toán, phương thức và
dữ liệu của lớp.
Nội dung
 Lịch sử phát triển của phương pháp lập trình
 Các khái niệm trong lập trình hướng đối tượng
(OOP).
 Các bước thiết kế chương trình OOP.
 Một số ngôn ngữ OOP.
 Ứng dụng của OOP.
2.1. Lịch sử phát triển của phương pháp
lập trình
 Lập trình không có cấu trúc (hay lập trình tuyến
tính)
 Lập trình cấu trúc
 Lập trình hướng đối tượng
Lập trình tuyến tính
 Ưu điểm: Chương trình đơn giản, dễ hiểu.
 Nhược điểm: khó giải quyết các ứng dụng phức tạp.
 Một chương trình là một tập các lệnh hoặc câu lệnh
làm việc với các dữ liệu toàn cục trong cả chương
trình
Lập trình cấu trúc (1)
 Chương trình chính được chia nhỏ thành các chương
trình con.
 Chương trình = Cấu trúc dữ liệu + Giải thuật
Dữ liệu chung


Hàm 1
Dữ liệu
riêng
Hàm 2
Dữ liệu
riêng
Hàm 3
Dữ liệu
riêng
Lập trình cấu trúc (2)
 Ưu điểm:
• Chương trình sáng sủa, dễ hiểu, dễ theo dõi.
• Tư duy giải thuật rõ ràng.
 Nhược điểm:
• Nhiều hàm có thể truy nhập, sử dụng dữ liệu
chung , làm thay đổi giá trị của chúng và vì vậy
rất khó kiểm soát.
• Nếu thay đổi, bổ sung cấu trúc dữ liệu của biến
toàn cục ->phải viết lại hầu như toàn bộ các hàm
có liên quan.
Lập trình hướng đối tượng (1)
 Mục đích:
• Giảm bớt thao tác viết trình.
• Mô tả chân thực thế giới thực.
 Lập trình hướng đối tượng – Object Oriented
Programming (OOP)
• Chương trình được chia thành các đối tượng
• Đối tượng = Dữ liệu + Phương thức.
• Đóng gói dữ liệu.
• Cho phép sử dụng lại mã nguồn.

Lập trình hướng đối tượng (2)
Đối tượng A
Dữ liệu
Các phương thức
Đối tượng B
Dữ liệu
Các phương thức
Đối tượng C
Dữ liệu
Các phương thức
Lập trình hướng đối tượng (3)
 Ưu điểm:
• Không còn nguy cơ dữ liệu bị thay đổi tự do
trong chương trình.
• Khi thay đổi cấu trúc dữ liệu của một đối tượng,
không cần thay đổi các đổi mã nguồn của các đối
tượng khác.
• Có thể sử dụng lại mã nguồn, tiết kiệm tài
nguyên.
2.2. Một số khái niệm
 Lớp (class) & Đối tượng (object)
 Thuộc tính (attribute) & Phương thức (method)
 Thông điệp (message), sự kiện (event)
 Trừu tượng hóa (abstraction)
 Sự đóng gói (encapsulation)
 Sự kế thừa (inheritance
 Sự đa hình (polymorphism)
Lớp (Class) và đối tượng (Object) (1)
 Trong thế giới thực có nhiều đối tượng cùng loại.
 Nhiều đối tượng cùng loại chia sẻ những đặc điểm

chung.
Lớp và đối tượng (2)
 Một lớp là một thiết kế hay mẫu (prototype) cho
các đối tượng cùng kiểu.
 Đối tượng là 1 thể hiện của lớp, lớp được dùng để
biểu diễn đối tượng:
• Thuộc tính của lớp ≈ thuộc tính của các đối tượng.
• Phương thức của lớp ≈ hành động của các đối
tượng.
Lớp và đối tượng (3)
 Một đối tượng:
• Trạng thái (state) hay dữ liệu (thuộc tính).
• Các hành vi (behavior) hay thao tác (phương
thức).
Thuộc tính & phương thức
 Thuộc tính (attribute) là dữ liệu trình bày các đặc
điểm về một đối tượng (Hằng, biến)
 Phương thức (method) là các hành động mà đối
tượng có thể làm (hàm).
Thông điệp
 Một thông điệp là một lời yêu cầu một hoạt động.
 Một thông điệp bao gồm:
• Đối tượng đích (đối tượng nhận thông điệp).
• Tên phương thức cần thực hiện.
• Các thông tin cần thiết khác (tham số).
Sự kiện
 Một sự kiện là một sự việc xảy ra cho một đối
tượng tại một thời điểm. Để đáp ứng lại sự kiện ấy,
đối tượng sẽ thực hiện một hoặc nhiều phương
thức.

 Nói cách khác, một sự kiện là một tác nhân mà đối
tượng này gây ra cho một đối tượng khác. Chẳng
hạn như click chuột trái trên một nút.
Sự trừu tượng hoá
 Khái niệm: Là khả năng bỏ qua hay không để ý tới
các thành phần không quan trọng.
 Chú ý đến những gì (WHAT) phương thức/đối
tượng thực hiện, không quan tâm đến cách thực
hiện (HOW).
Ưu điểm của trừu tượng hóa
 Tập trung vào vấn đề cần quan tâm.
 Xác định những đặc tính thiết yếu và những hành
động cần thiết.
 Giảm thiểu những chi tiết không cần thiết.
Sự đóng gói
 Đóng gói (encapsulation) là tiến trình che giấu
việc thực thi chi tiết của một đối tượng.
 Ưu điểm:
• Quản lý sự thay đổi.
• Bảo vệ dữ liệu.
Sự kế thừa
 Khái niệm: Khả năng cho phép định nghĩa một lớp
mới (gọi là lớp dẫn xuất) dựa trên lớp khác đã định
nghĩa (gọi là lớp cơ sở).
 Đặc điểm:
• Lớp nhận được có thể bổ sung các thành phần.
• Hoặc định nghĩa lại các thuộc tính của lớp cha.
 Các loại kế thừa:
• Đơn kế thừa.
• Đa kế thừa.

Sự đa hình
 Đa hình: “nhiều hình thức”, hành động cùng tên
có thể được thực hiện khác 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.
Chạy
Các quan hệ (relationships)
 Các đối tượng không tồn tại một cách độc lập, luôn
tồn tại mối quan hệ giữa nó và các đối tượng khác:
tổng quát hóa (generalization) , cộng tác
(asscociation) …
Tổng quát hóa (generalization)
 Lớp cha (Người) tổng quát hóa các thuộc tính,
phương thức chung của các lớp con (Sinh viên và
Giáo viên).
 Các lớp con cũng có những thuộc tính, phương thức
riêng.
Người
Sinh viên Giáo viên
Quan hệ cộng tác (Association)
 Các lớp có liên kết (connected) hoặc liên quan
(related) với nhau

×