Lập trình hướng đối tượng
Lập trình hướng đối tượng
- Nguyễn Tuấn Anh
- Lê Văn Ngọc
- Lê Minh Thành
- Vi Văn Toàn
GV: Nguyễn Hùng Cường
Trường đại học
hùng vương
Phân công công việc
•
Lê Văn Ngọc
–
Khái niệm về OOP
–
Hệ thống hướng đối tượng
–
Đối tượng
–
Thuộc tính, phương thức
•
Vi Văn Toàn
–
Lớp
–
Lớp trừu tượng
–
Trừu tượng hoá
•
Nguyễn Tuấn Anh
–
Thông điệp
–
Đóng gói
–
Kế thừa
–
Đa hình
•
Lê Minh Thành
–
Các bước thiết kế chương trình OOP
–
Ưu điểm của OOP
–
ứng dụng của OOP
–
Các ngôn ngữ OOP
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
2
I: Khái niệm về lập trình hướng đối tượng
•
Lập trình hướng đối tượng
–
Object Oriented Programming (OOP).
–
Phương pháp 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.
–
Được xem là:
•
Cách tư duy, tiếp cận hướng đối tượng.
–
Mục đích:
•
Mô tả chân thực thế giới thực.
•
Tăng năng suất, dễ bảo trì, nâng cấp.
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
3
Các khái niệm cơ bản trong OOP
•
Hệ thống hướng đối tượng
•
Đối tượng
•
Thuộc tính, phương thức
•
Lớp
•
Lớp trừu tượng
•
Trừu tượng hoá
•
Thông điệp
•
Đóng gói
•
Kế thừa
•
Đa hình
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
4
1. Hệ thống hướng đối tượng
•
Gồm tập hợp các đối tượng:
–
Được đóng gói bởi:
•
Dữ liệu (thuộc tính của dữ liệu)
•
Các thao tác trên dữ liệu
–
Các đối tượng có thể kế thừa các đặc tính của
đối tượng khác
–
Hoạt động thông qua sự tương tác giữa các
đối tượng nhờ cơ chế truyền thông điệp
•
Thông báo
•
Gửi và nhận thông báo
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
5
2. Đối tượng (object)
•
Là khái niệm trừu tượng phản ánh các thực thể trong
thế giới thực
•
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 dùng để biểu diễn các đối
tượng trong thế giới thực
•
Một đối tượng cụ thể được gọi là một thể hiện
•
Là sự đóng gói của 2 thành phần:
–
Trạng thái (state) hay dữ liệu
–
Các hành động (behavior), thao tác
đối tượng=dữ liệu+phương thức
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
6
3. Thuộc tính và phương thức
•
Thuộc tính (attribute):
–
Là dữ liệu trình bày các đặc điểm của một đối tượng
–
Bao gồm: hằng, biến, tham số nội tại
–
Được xác định kiểu: kiểu cổ điển hoặc kiểu do người
dùng định nghĩa
•
Phương thức (method):
–
Là các hàm nội tại của đối tượng, có kiểu trả về
–
Xác định cách thức hoạt động của đối tượng và
được thực thi khi một đối tượng cụ thể được tạo ra
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
7
4. Lớp (class)
•
Là tập hợp các đối tượng có cùng thuộc tính và hành vi
•
Là bản thiết kế hay mẫu mô tả một cấu trúc dữ liệu gồm:
–
các thuộc tính
–
các phương thức
→dùng chung cho các đối tượng cùng loại
•
Trong lập trình, có thể coi lớp như là một kiểu, đối tượng sẽ là
các biến có kiểu của lớp.
•
các loại:
–
Lớp cha
–
Lớp con
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
8
5. Lớp trừu tượng
•
Là lớp mà nó không thể trở thành một lớp
thực tế nào
•
Được thiết kế nhằm tạo ra lớp có đặc tính
tổng quát
•
Bản thân nó chưa có ý nghĩa nên chưa thể
viết mã cho đối tượng
•
Ví dụ:
–
Lớp hình phẳng
–
Lớp động vật
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
9
6. Sự trừu tượng hoá (abstraction)
•
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
•
Trừu tượng hoá dữ liệu:
–
Tiến trình xác định và nhóm các thuộc tính và các hành động liên quan
đến một thực thể đặc thù trong ứng dụng đang phát triển
–
không quan tâm các chi tiết không quan trọng bên trong
•
Trừu tượng hoá chương trình (chức năng):
–
Là một sự trừu tượng hoá dữ liệu mà làm cho các dịch vụ thay đổi
theo dữ liệu
–
không quan tâm làm thế nào để thực hiện công việc
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
10
7. Thông điệp (message)
•
Thông điệp:
–
Là phương tiện để đối tượng này chuyển yêu cầu tới đối tượng khác.
•
Một thông điệp bao gồm:
–
Handle của đối tượng đích (đối tượng chủ)
–
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ố)
•
Hệ thống yêu cầu đối tượng thực hiện phương thức như
sau:
–
Gửi thông báo và tham số cho đối tượng
–
Kiểm tra tính hợp lệ của thông báo
–
Gọi thực hiện hàm tương ứng phương thức
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
11
8. Đóng gói (encapsulation)
•
Khái niệm:
–
Là cơ chế ràng buộc dữ liệu và các thao tác trên dữ liệu
thành thể thống nhất.
•
Đóng gói gồm:
–
Bao gói: người dùng giao tiếp với hệ thống qua giao diện
–
Che dấu: ngăn chặn các thao tác không được phép từ bên
ngoài
•
Ưu điểm:
–
Quản lý sự thay đổi
–
Bảo vệ dữ liệu
•
Che giấu thông tin:
–
Ẩn đi các chi tiết thiết kế hay thi công từ các đối tượng
khác
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
12
9. Kế thừa (inheritance)
•
Khái niệm:
–
Các phương thức hay thuộc tính được định nghĩa trong một lớp
có thể được thừa kế hoặc được sử dụng lại bởí lớp khác
•
Các loại kế thừa:
–
Đơn kế thừa
–
Đa kế thừa
•
Lớp cha (superclass):
–
Là lớp có các thuộc tính hay phương thức thừa hưởng bởi một
hay nhiều lớp khác
•
Lớp con (subclass):
–
Là lớp thừa hưởng những đặc tính chung của lớp cha và thêm
vào những đặc tính riêng khác
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
13
10. Đa hình (polymorphism)
•
Khái niệm:
–
Khả năng đưa một phương thức có cùng tên trong các lớp
con
•
Thực hiện bởi:
–
Định nghĩa lại
–
Nạp chồng
•
Cơ chế dựa trên sự kết gán:
–
Kết gán sớm
–
Kết gán muộn
•
Xuất hiện khi có tính kế thừa
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
14
II: Các bước thiết kế một chương trình OOP
•
Các bước chính:
–
Xác định các dạng đối tượng (lớp)
–
Tìm dữ liệu dùng chung, chia xẻ
–
Xác định lớp cơ sở dựa vào dữ liệu dùng
chung
–
Xây dựng lớp dẫn xuất từ lớp cơ sở
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
15
III: Ưu điểm của OOP
•
Các ưu điểm chính:
–
Loại bỏ các đoạn mã lặp lại
–
Tạo ra các chương trình an toàn, bảo mật
–
Dễ dàng mở rộng và nâng cấp
–
Rút ngắn thời gian xây dựng hệ thống
–
Tăng năng xuất và hiệu quả hơn
–
Chương trình được thiết kế theo đúng qui
trình
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
16
IV: ứng dụng của OOP
•
Dùng để phát triển phần mềm trong nhiều
lĩnh vực khác nhau:
–
Ví dụ: hệ điều hành Windows
•
Lĩnh vực chính:
–
Hệ thống thời gian thực
–
Cơ sở dữ liệu hướng đối tượng
–
Hệ siêu văn bản, đa phương tiện
–
Trí tuệ nhân tạo
–
Lập trình song song, mạng nơron …
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
17
V: Một số ngôn ngữ OOP
•
Hầu hết các ngôn ngữ lập trình đều hỗ trợ
OOP, có thể chia thành 2 loại:
–
Ngôn ngữ hỗ trợ hướng đối tượng:
•
Object C, Pascal, C++, Delphi…
–
Ngôn ngữ hướng đối tượng:
•
SmallTalk, JAVA
•
Một số ngôn ngữ OOP hiện nay:
–
Visual C++
–
VB.NET, C#
10/22/14
Công nghệ phần mềm - Lập trình hướng đối tượng
18