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.. Lập trình hướng đối tượng – Object Oriented Programming OOP • Chương trình đượ
Trang 1Chương 2
Trang 2Mụ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
Trang 3Nộ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.
Trang 42.1 Lịch sử phát triển của phương pháp
Trang 5Lậ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ươngtrình
Trang 6Hàm 2
Dữ liệu riêng
Hàm 3
Dữ liệu riêng
Trang 7Lậ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
Trang 8Lậ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
Trang 9Lậ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
Trang 10Lậ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 đốitượng khác
• Có thể sử dụng lại mã nguồn, tiết kiệm tài
nguyên
Trang 112.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)
Trang 12Lớ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
Trang 13Lớ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 đốitượng
Trang 14Lớ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ươngthức)
Trang 15Thuộ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)
Trang 16Thô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ố)
Trang 17Sự 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ươngthứ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ẳnghạn như click chuột trái trên một nút
Trang 18Sự 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ựchiện (HOW)
Trang 19Ư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.
Trang 20Sự đó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
Trang 21Sự 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 đã địnhnghĩa (gọi là lớp cơ sở)
Trang 22Sự đ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 đốitượng/các lớp khác nhau
Ngữ cảnh khác ⇒ kết quả khác.
Chạy
Trang 23Cá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) …
Trang 24Tổ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
Trang 25Quan 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
Trang 273 Các bước giải quyết bài toán OOP
Phân tích bài toán:
• Tìm danh từ, tính từ trong bài toán ⇒ dữ liệu.
• Các danh từ ⇒ class.
• Tìm những động từ, tác vụ hành động ⇒ phương thức.
Thiết kế lớp đối tượng:
• Xác định các class (tên class).
• Xác định thành phần dữ liệu: Tên, kiểu.
• Xác định thành phần phương thức: Tên, tham số đầu vào, kiểu trả về.
• Xác định kiểu truy nhập.
• Thiết kế sự kế thừa (nếu có).
Trang 283 Các bước giải quyết bài toán OOP (tt)
Thiết kế chi tiết các phương thức:
• Viết mã giả (giải thuật)
Cài đặt chương trình.
Trang 294 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: VB.NET, C#
Trang 30• Cơ sở dữ liệu hướng đối tượng
• Trí tuệ nhân tạo
• Lập trình song song, mạng nơron …
Trang 31Bài tập chương 2
Phân tích và thiết kế lớp cho bài toán:
Viết chương trình quản lý sinh viên, các thông tin của sinh viên gồm: họ tên, ngày sinh, giới tính, điểmtoán, điểm lý, điểm hóa
Chương trình có các chức năng sau:
- Nhập thông tin của Sinh viên
- Tính điểm trung bình
- Xem các thông tin của Sinh viên