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

Chương 1: Lập trình hướng đối tượng C++

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 (619.25 KB, 29 trang )





Lập trình hướng đối tượng
Lập trình hướng đối tượng
Hà Văn Sang
Khoa HTTT,
Academy Of Finance, Hanoi
Lập trình hướng đối tượng với C++
GV: Hà Văn Sang
Khoa HTTT – HVTC
Email:
Homepage: www.hvtc.edu.vn/sanghv
2008-2009
Object Oriented Programing– Information Systems Department
2
Chương I
Chương I
Object Oriented Programing– Information Systems Department
3
Giới thiệu
Giới thiệu
Tổng quan

Lập trình hướng đối tượng

Lập trình định hướng đối tượng

Object Oriented Programming (OOP)


Được xem là:

Cách tiếp cận mới, hiệu quả hơn

Giúp tăng năng suất

Dễ dàng bảo trì, sửa đổi, nâng cấp

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
Vậy OOP khó học hay dễ học ?
Object Oriented Programing– Information Systems Department
4
1. Tổng quan về các kỹ thuật lập trình
1. Tổng quan về các kỹ thuật lập trình

1.1 Lập trình tuyến tính

1.2 Lập trình cấu trúc

1.3 Lập trình môđun

1.4 Nhược điểm của lập trình cấu trúc

1.5 Lập trình hướng đối tượng
Object Oriented Programing– Information Systems Department
5

1.1 Lập trình tuyến tính
1.1 Lập trình tuyến tính

Lập trình tuyến tính :

Còn gọi là lập trình phi cấu trúc

Giải quyết các bài toán tương nhỏ, đối đơn giản

Đặc điểm:

Chỉ gồm một chương trình chính

Gồm một dãy tuần tự các câu lệnh

Chương trình ngắn, ít hơn 100 dòng
Object Oriented Programing– Information Systems Department
6
1.1 Lập trình tuyến tính (tiếp)
1.1 Lập trình tuyến tính (tiếp)

Nhược điểm:

Không sử dụng lại được các đoạn mã

Không có khả năng kiểm soát phạm vi truy xuất dữ liệu

Mọi dữ liệu trong chương trình là toàn cục

Dữ liệu có thể bị sửa đổi ở bất cứ vị trí nào trong

chương trình

Không đáp ứng được việc triển khai phần mềm
Object Oriented Programing– Information Systems Department
7
1.2 Lập trình cấu trúc
1.2 Lập trình cấu trúc

Ra đời vào những năm 70:

Chương trình được chia nhỏ thành chương
trình con:

Thủ tục (Procedure)

Hàm (Function)

Các chương trình con:

Độc lập với nhau và có dữ liệu riêng

Trao đổi qua: tham số và biến toàn cục
Object Oriented Programing– Information Systems Department
8
1.2 Lập trình cấu trúc (tiếp)
1.2 Lập trình cấu trúc (tiếp)

Xuất hiện khái niệm trừu tượng hoá

Là khả năng quan sát sự vật mà:


Không quan tâm tới các chi tiết không quan trọng
bên trong

Không quan tâm tới việc thực hiện như thế nào

Trừu tượng hoá dữ liệu

Trừu tượng hoá thao tác

Ngôn ngữ lập trình cấu trúc:

C, Pascal

Foxpro …
Object Oriented Programing– Information Systems Department
9
1.3 Lập trình môđun
1.3 Lập trình môđun

Với lập trình môđun:

Các thủ tục có chung một chức năng được nhóm lại
với nhau

Chương trình được chia thành nhiều phần nhỏ

Các phần tương tác thông qua việc gọi thủ tục

Mỗi mô đun có dữ liệu của riêng nó

Object Oriented Programing– Information Systems Department
10
1.4 Nhược điểm của lập trình truyền thống
1.4 Nhược điểm của lập trình truyền thống

Nhược điểm:

Chương trình khó kiểm soát

Khó khăn trong việc bổ sung, nâng cấp chương
trình

Khi thay đổi, bổ sung dữ liệu dùng chung thì
phải thay đổi gần như tất cả thủ tục/hàm liên
quan

Khả năng sử dụng lại các đoạn mã chưa nhiều

Không mô tả đầy đủ, trung thực hệ thống trong
thực tế
Object Oriented Programing– Information Systems Department
11
1.5 Lập trình hướng đối tượng
1.5 Lập trình hướng đối tượng

Là phương pháp lập trình:

Mô tả chính xác các đối tượng trong thế giới

Lấy đối tượng làm nền tảng xây dựng thuật toán


Thiết kế xoay quanh dữ liệu của hệ thống

Chương trình được chia thành các lớp đối tượng

Dữ liệu được đóng gói, che dấu và bảo vệ

Đối tượng làm việc với nhau qua thông báo

Chương trình được thiết kết theo cách từ dưới
lên (bottom-up)
Object Oriented Programing– Information Systems Department
12
1.5 Lập trình hướng đối tượng
1.5 Lập trình hướng đối tượng
Object Oriented Programing– Information Systems Department
13
2. Một số khái niệm cơ bản
2. Một số khái niệm cơ bản

2.1 Hệ thống hướng đối tượng

2.2 Đối tượng

2.3 Thuộc tính & Phương thức

2.4 Lớp & Lớp con

2.5 Lớp trừu tượng


2.6 Truyền thông điệp

2.7 Sự trừu tượng hoá

2.8 Sự đóng gói

2.9 Sự kế thừa

2.10 Sự đa hình
Object Oriented Programing– Information Systems Department
14
2.1 Hệ thống hướng đối tượng
2.1 Hệ thống hướng đối tượng

Là hệ thống có đặc điểm sau:

Gồm tập hợp các đối tượng

Sự đóng gói của 2 thành phần:

Dữ liệu (thuộc tính của đối tượng)

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 & nhận thông báo
Object Oriented Programing– Information Systems Department
15
2.2 Đối tượng (Object)
2.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

Có thể là một thực thể vật lý

Có thể là một khái niệm trừu tượng

Được định nghĩa là sự thể hiện của một lớp

Chính là các thực thể trong hệ thống
hướng đối tượng

Một đối tượng là sự đóng gói 2 thành phần:

Trạng thái (state) hay dữ liệu

Các ứng xử (behavior) hay hành vi, thao tác
Object Oriented Programing– Information Systems Department
16
2.3 Thuộc tính & phương thức
2.3 Thuộc tính & phương thức


Thuộc tính bao gồm:

Hằng, biến

Tham số nội tại

Thuộc tính được xác định kiểu, gồm:

Kiểu cổ điển

Kiểu do người dùng định nghĩa

Phương thức là:

Các hàm nội tại của đối tượng

Có kiểu trả về

Tên gọi khác: hàm thành viên
Object Oriented Programing– Information Systems Department
17
2.4 Lớp (Class) & Lớp con (SubClass)
2.4 Lớp (Class) & Lớp con (SubClass)

Lớp: 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ế hoặc bản mẫu mô tả một
cấu trúc dữ liệu gồm:


Các thành phần dữ liệu

Các phương thức

Lớp được sử dụng như kiểu dữ liệu người
dùng định nghĩa

Lớp con:

Là lớp thông thường

Có thêm tính chất kế thừa đặc tính của lớp khác
Object Oriented Programing– Information Systems Department
18
2.5 Lớp trừu tượng
2.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
Object Oriented Programing– Information Systems Department
19
2.6 Truyền thông điệp
2.6 Truyền thông điệp

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
Object Oriented Programing– Information Systems Department
20
2.7 Sự trừu tượng hoá

2.7 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.

Các loại trừu tượng hoá:

Trừu tượng hoá dữ liệu: không quan tâm các chi
tiết không quan trọng bên trong

Trừu tượng hoá chức năng: không quan tâm làm
thế nào để thực hiện công việc

Tóm lại:

Chỉ quan tâm tới đặc điểm quan trọng

Bỏ qua các chi tiết không liên quan
Object Oriented Programing– Information Systems Department
21
2.8 Sự đóng gói
2.8 Sự đóng gói

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
Object Oriented Programing– Information Systems Department
22
2.9 Sự kế thừa
2.9 Sự kế thừa

Khái niệm:

Khả năng cho phép xây dựng lớp mới được thừa
hưởng các thuộc tính của lớp đã có

Đặc điểm:

Lớp nhận được có thể bổ sung các thành phần

Hoặc định nghĩa là 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
Object Oriented Programing– Information Systems Department
23
2.10 Sự đa hình
2.10 Sự đa hình

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
Object Oriented Programing– Information Systems Department
24
3. Các bước thiết kế chương trình OOP
3. Các bước thiết kế 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ở
Object Oriented Programing– Information Systems Department
25
4. Ưu điểm của OOP
4. Ưu điểm của OOP

Ư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

×