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
Trang 1Lậ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
Trường đại học
hùng vương
Trang 2Phâ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
Trang 3I: 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.
Trang 4Cá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
Trang 51 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
Trang 62 Đố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
Trang 73 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
Trang 84 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
Trang 95 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
Trang 106 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
Trang 117 Thông điệp (message)
– Là phương tiện để đối tượng này chuyển yêu cầu tới đối tượng khác.
– 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
Trang 128 Đó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:
Trang 139 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
Trang 1410 Đa hình (polymorphism)
– 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
Trang 15II: 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ở
Trang 16III: Ư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
Trang 17IV: ứ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 …
Trang 18V: 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:
– Ngôn ngữ hướng đối tượng:
• Một số ngôn ngữ OOP hiện nay:
– Visual C++
– VB.NET, C#