Tải bản đầy đủ (.ppt) (35 trang)

Bài giảng điện tử môn tin học: Lập trình hướng đối tượng pps

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 (1011.67 KB, 35 trang )

LOGO
Lập trình
hướng đối tượng
(Object-Oriented Programming)
Phan Mạnh Thường
Thông tin về môn học

Số tiết lý thuyết : 45

Số tiết thực hành : 30
Thời lượng
Thời lượng
Thời lượng
Thời lượng

Kỹ thuật lập trình cơ bản

Cấu trúc dữ liệu
Điều kiện
Điều kiện
Điều kiện
Điều kiện
Cung cấp các kiến thức cơ bản về

Ngôn ngữ C++

Phân tích và thiết kế ứng dụng theo
phương pháp hướng đối tượng
Mục tiêu
Mục tiêu
Mục tiêu


Mục tiêu
Thông tin về môn học
1. Trần Văn Lăng, “Lập trình hướng đối tượng sử dụng C++”, Nxb
Thống kê, 2004.
2. Phạm Văn Ất, “C++ và Lập Trình Hướng Đối Tượng”, Khoa Học
Kỹ Thuật, 2000.
3. Vũ Thanh Hiền, “Lập trình Hướng Đối Tượng”, NXB ĐHQG ,
2000.
4. Bruce Eckel, “Thinking in C++”, Prentice Hall Inc., 2000.
5. Budd, Timothy, “An Introduction to Object-Oriented
Programming”, Addison-Wesley, 1997.
6. Robert Lafore, “Object-oriented Programming in C++”, SAMS,
2001.
7. Ali Bahrami, “Object-oriented Systems Development”, McGraw-
Hill Companies Inc., 1999.
Tài liệu tham khảo
Tài liệu tham khảo
Tài liệu tham khảo
Tài liệu tham khảo
Thông tin về môn học
Gồm 3 cột điểm:

Điểm chuyên cần (10%): điểm danh buổi học
(Lưu ý: nghỉ quá 30% số tiết bị cấm thi)

Điểm kiểm tra (30%): lập trình trên máy

Điểm thi (60%): làm bài thi giấy
Đánh giá
Đánh giá

Đánh giá
Đánh giá
Nội dung môn học


Chương 1: Giới thiệu lập trình hướng đối tượng
Chương 1: Giới thiệu lập trình hướng đối tượng


Chương 2: Ngôn ngữ lập trình C++
Chương 2: Ngôn ngữ lập trình C++2


Chương 3: Lớp đối tượng
Chương 3: Lớp đối tượng3
Chương 4: Nạp chồng toán tử và hàm
Chương 4: Nạp chồng toán tử và hàm4
Chương 5: Tính kế thừa
Chương 5: Tính kế thừa5
Chương 6: Tính đa hình
Chương 6: Tính đa hình5
Chương 7: Khuôn mẫu thiết kế
Chương 7: Khuôn mẫu thiết kế5
Giới thiệu phương pháp
lập trình hướng đối tượng
Chương 1
Bài tập lý thuyết
4
Các phương pháp lập trình
1

Lập trình hướng đối tượng
2
Các ngôn ngữ lập trình OOP
3
Nội dung
Nội dung
Nội dung
Nội dung
Chương 1 Phương pháp lập trình hướng đối tượng

Lập trình không có cấu trúc (lập trình tuyến
tính)

Lập trình có cấu trúc (lập trình thủ tục)

Lập trình module

Lập trình hướng đối tượng
Các phương pháp lập trình
Các phương pháp lập trình

Một “chương trình chính” bao gồm một dãy các
lệnh liên tiếp

Các biến dùng trong chương trình là toàn cục
Lập trình tuyến tính
Lập trình tuyến tính
Chương 1 Phương pháp lập trình hướng đối tượng
TITLE PGR3-1:IBM CHARACTER DISPLAY
.MODEL SMALL

.STACK 100H
.CODE
MAIN PROC
MOV AH,2 ; hàm xuất ký tự
MOV CX,256 ; số ký tự cần xuất
MOV DL,0 ; DL giữ mã ASCII của ký tự NUL
; PRINT_LOOP :
INT 21H ;display character
INC DL
DEC CX
JNZ PRINT_LOOP ;nhảy đến print_loop nếu CX# 0
;DOS EXIT
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
Ví dụ lập trình tuyến tính
Ví dụ lập trình tuyến tính
Chương 1 Phương pháp lập trình hướng đối tượng
Chương 1 Phương pháp lập trình hướng đối tượng

Nhược điểm:

Mọi dữ liệu trong chương trình đều là biến toàn cục
do đó có thể bị thay đổi bởi bất kỳ phần nào đó của
chương trình.

Khó khăn trong việc gỡ lỗi chương trình

Không tận dụng lại được mã nguồn

Lập trình tuyến tính
Lập trình tuyến tính
Chương 1 Phương pháp lập trình hướng đối tượng

Nhóm các câu lệnh thường xuyên thực hiện trong
chương trình chính lại một chỗ và đặt tên đoạn câu lệnh
đó thành một thủ tục (Procedure) hay còn gọi là chương
trình con (Sub Routines)

Một chương trình chính bao gồm nhiều chương trình
con, mang tính cấu trúc cao và ít lỗi hơn

Các biến có thể được xử lý cục bộ trong các chương
trình con mà không ảnh hưởng lẫn nhau

Tiếp cận theo hướng từ trên xuống (Top-Down)
Lập trình thủ tục
Lập trình thủ tục
Chương 1 Phương pháp lập trình hướng đối tượng
Lập trình thủ tục
Lập trình thủ tục
Cấu trúc chương trình theo thủ tục, trong chương trình
chính có các lời gọi thực hiện các thủ tục với các đối số
Chương 1 Phương pháp lập trình hướng đối tượng

Ưu điểm:

Chương trình có tính cấu trúc cao

Dễ cài đặt và ít lỗi hơn


Có thể sử dụng các thủ tục dùng chung

Khuyết điểm

Với các chương trình lớn số lượng thủ tục nhiều dẫn
đến khó bảo trì và sửa lỗi
Lập trình thủ tục
Lập trình thủ tục
Chương 1 Phương pháp lập trình hướng đối tượng

Các thủ tục có cùng một chức năng chung sẽ
được nhóm lại với nhau tạo thành một module
riêng biệt

Một chương trình được chia thành nhiều module

Mỗi module có dữ liệu riêng của nó
Lập trình module
Lập trình module
Chương 1 Phương pháp lập trình hướng đối tượng
Lập trình module
Lập trình module
Lập trình module. Chương trình chính là sự kết hợp giữa các lời gọi tới
các thủ tục trong các module riêng biệt với các dữ liệu thích hợp
Chương 1 Phương pháp lập trình hướng đối tượng

Ưu điểm:

Chương trình có tính cấu trúc cao


Dữ liệu được kiểm soát trong từng module

Có thể tái sử dụng module cho nhiều chương trình

Khuyết điểm

Khi thay đổi cấu trúc dữ liệu thì phải viết lại module

Với các chương trình lớn, mỗi module có thể do nhiều lập trình
viên đảm trách có thể dẫn đến thiếu nhất quán trong việc sử
dụng các dữ liệu dùng chung
Lập trình module
Lập trình module
Chương 1 Phương pháp lập trình hướng đối tượng

Lập trình hướng đối tượng (OOP- Object-
Oriented Programming)

một cách tư duy mới, tiếp cận hướng đối tượng để
giải quyết vấn đề bằng máy tính.

một 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.
Lập trình hướng đối tượng
Lập trình hướng đối tượng
Chương 1 Phương pháp lập trình hướng đối tượng
Lập trình hướng đối tượng
Lập trình hướng đối tượng
Cấu trúc chương trình

được xây dựng trên nền
tảng các đối tượng,
trong chương trình các
đối tượng giao tiếp với
nhau bằng cách chuyển
thông điệp (gọi hàm)
Chương 1 Phương pháp lập trình hướng đối tượng

Loại bỏ những thiếu sót của tiếp cận theo thủ tục

Trong OOP

Dữ liệu được xem như một phần tử chính yếu và được
bảo vệ

Hàm gắn kết với dữ liệu, thao tác trên dữ liệu

Phân tách bài toán thành nhiều thực thể (đối tượng) 
xây dựng dữ liệu + hàm cho các đối tượng này.

Tăng cường khả năng sử dụng lại mã nguồn
Ưu điểm của lập trình hướng đối tượng
Ưu điểm của lập trình hướng đối tượng
Chương 1 Phương pháp lập trình hướng đối tượng

Nhấn mạnh trên dữ liệu hơn là thủ tục

Các chương trình bao gồm các đối tượ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 đối tượng có thể giao tiếp với nhau thông
qua các hàm

Dữ liệu hay các hàm mới có thể được thêm vào
khi cần

Tiếp cận từ dưới lên (Bottom – Up)
Phương pháp lập trình
Phương pháp lập trình
Chương 1 Phương pháp lập trình hướng đối tượng

Kiểu dữ liệu trừu tượng (ADT_Abstract Data
Type)

Đối tượng (Object) và lớp đối tượng (Class)

Đóng gói (Encapsulation) và ẩn thông tin
(Information Hiding)

Thừa kế (Inheritance)

Đa hình (Polymorphism)
Một số khái niệm cơ bản
Một số khái niệm cơ bản
Chương 1 Phương pháp lập trình hướng đối tượng

Một kiểu dữ liệu trừu tượng là một mô hình toán
học của các đối tượng dữ liệu tạo thành một

kiểu dữ liệu và các toán tử (phép toán) thao tác
trên các đối tượng đó

Kiểu dữ liệu trừu tượng: T = <V, O>

V (Values - miền giá trị): tập hợp các giá trị mà kiểu T
có thể nhận

O (Operators – các thao tác): tập hợp các thao tác
được định nghĩa trên V
Kiểu dữ liệu trừu tượng
Kiểu dữ liệu trừu tượng
Chương 1 Phương pháp lập trình hướng đối tượng
Ví dụ về kiểu dữ liệu trừu tượng: Số nguyên.
Dữ liệu: một tập các chữ số 0-9 và một dấu tiền tố
là + hoặc Chúng ta ký hiệu cả số là N.
Các toán tử:
constructor: khởi tạo một số nguyên
sub(k): trả về hiệu N – k.
add(k): trả về tổng N + k.
……
End
Kiểu dữ liệu trừu tượng
Kiểu dữ liệu trừu tượng
Chương 1 Phương pháp lập trình hướng đối tượng

Một đối tượ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.


Mỗi đối tượng có các đặc điểm (feature), trạng thái
(state) và khả năng thực hiện hành vi (behaviour)

Ví dụ : một con cọp có:
* Đặc điểm: màu lông, số chân, cân nặng
* Trạng thái: vui vẻ, giận dữ, no, đói
* Hành vi: ăn, ngủ, chạy, vồ mồi
Đối tượng (Object)
Đối tượng (Object)
Chương 1 Phương pháp lập trình hướng đối tượng

Các đối tượng phần mềm có thể được dùng để
biểu diễn các đối tượng thế giới thực.

Mỗi đối tượng phần mềm cũng có các đặc điểm,
trạng thái và hành động.

Đặc điểm: thuộc tính (property)

Hành động: phương thức (method)

Trạng thái: sự kiện (event)

Đối tượng= dữ liệu + phương thức
Đối tượng (Object)
Đối tượng (Object)

×