1. Trang chủ
  2. » Giáo Dục - Đào Tạo

OOP 01 introduction and review

109 50 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 109
Dung lượng 19,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình không cấu trúc ◼ Là phương pháp xuất hiện đầu tiên ◼ Gồm một dãy lệnh đơn giản được viết trong chương trình chính ◼ Sử dụng các biến dữ liệu toàn cục ◼ Lạm dụng lệnh GOTO ◼ Ngô

Trang 1

1Phương pháp lập trình hướng đối tượng

LẬP TRÌNH HƯỚNG ĐỐI

TƯỢNG VỚI C++

Trang 2

2Phương pháp lập trình hướng đối tượng

GIỚI THIỆU VÀ ÔN TẬP

Trang 3

3Phương pháp lập trình hướng đối tượng

NỘI DUNG

Đề cương môn học.

◼ Chuẩn và quy ước lập trình.

◼ Ôn tập hàm, cấu trúc, con trỏ.

◼ Bài tập.

Trang 4

4Phương pháp lập trình hướng đối tượng

ĐỀ CƯƠNG MÔN HỌC

◼ Mục tiêu môn học:

Định nghĩa được các khái niệm cơ bản của OOP.

Áp dụng được các tính chất của OOP để giải quyết vấn đề bằng C++

Trang 5

5Phương pháp lập trình hướng đối tượng

Trang 6

6Phương pháp lập trình hướng đối tượng

TÀI NGUYÊN HỌC TẬP

◼ 1 Bruce Eckel, Thinking in C++, 2 nd Edition, Volume 1+2

Trang 7

7Phương pháp lập trình hướng đối tượng

TÀI NGUYÊN HỌC TẬP

◼ 2 Bjarne Stroustrup, The C++ Programming, Special Edition

Trang 8

8Phương pháp lập trình hướng đối tượng

TÀI NGUYÊN HỌC TẬP

◼ 3 Ulla Kirch Prinz & Peter Prinz, A Complete Guide to

Programming in C++

Trang 9

9Phương pháp lập trình hướng đối tượng

TÀI NGUYÊN HỌC TẬP

◼ 4 Deitel, How to Program C++ 4 th Edition

Trang 10

10Phương pháp lập trình hướng đối tượng

TÀI NGUYÊN HỌC TẬP

◼ 5 Phạm Văn Ất, C++ Lập Trình Hướng Đối Tượng

◼ 6 Nguyễn Thanh Thủy, Lập Trình Hướng Đối Tượng với C++

Trang 11

11Phương pháp lập trình hướng đối tượng

TÀI NGUYÊN HỌC TẬP

◼ 7 Các tài nguyên khác

Trang 12

12Phương pháp lập trình hướng đối tượng

Nội dung

◼ Đề cương môn học.

Chuẩn và quy ước lập trình.

◼ Ôn tập hàm, cấu trúc, con trỏ.

◼ Bài tập.

Trang 13

13Phương pháp lập trình hướng đối tượng

Chuẩn và quy ước lập trình

◼ Vì sao phải có chuẩn và quy ước?

◼ Làm việc một mình:

➢ Tự làm tự hiểu.

Mình luôn hiểu mình?

◼ Làm việc nhóm:

➢ Mỗi người một việc.

➢ Ráp nối công việc.

Mọi người luôn hiểu nhau?

Phối hợp công việc hiệu quả Áp đặt kỷ luật!!

Trang 14

14Phương pháp lập trình hướng đối tượng

Chuẩn và quy ước lập trình

Không có chuẩn chung toàn thế giới!!

◼ Quy ước đặt tên (Naming Convention):

◼ Quy tắc vàng: tên phải thể hiện ý nghĩa.

➢ x, y, f, g, … ?!

➢ total, rate, create, run, … !!

◼ Quy tắc đặt tên theo kiểu “lạc đà” (Camel Case)

➢ Dùng để viết các từ dính liền nhau.

➢ Viết hoa chữ cái đầu mỗi từ.

U pper C amel C ase.

l ower C amel C ase.

Trang 15

15Phương pháp lập trình hướng đối tượng

Chuẩn và quy ước lập trình

◼ Quy ước viết câu lệnh:

◼ Quy tắc vàng: viết câu lệnh rộng rãi, rõ ràng.

➢ x=a+b-c*d; for(int i=0;i<n;i++)

➢ x = a + b – c * d;

for (int i = 0; i < n; i++)

◼ Viết mỗi câu lệnh một dòng.

◼ Viết cách khoảng giữa hai đoạn lệnh.

◼ Quy ước viết chú thích:

◼ Quy tắc vàng: viết chú thích đầy đủ, dễ hiểu.

◼ Viết chú thích cho từng hàm.

◼ Dùng dấu // thay cho /* */.

Trang 16

16Phương pháp lập trình hướng đối tượng

5 lời khuyên để đạt kết quả tốt

Trang 17

17Phương pháp lập trình hướng đối tượng

5 lời khuyên để đạt kết quả tốt

1_Làm việc chăm chỉ

Trang 18

18Phương pháp lập trình hướng đối tượng

5 lời khuyên để đạt kết quả tốt

2_Làm bài tập và thực hành nhiều

Trang 19

19Phương pháp lập trình hướng đối tượng

5 lời khuyên để đạt kết quả tốt

3_Tự mình làm các bài tập + thực hành

Trang 20

20Phương pháp lập trình hướng đối tượng

5 lời khuyên để đạt kết quả tốt

4_Phải kiên nhẫn với máy tính

Trang 21

21Phương pháp lập trình hướng đối tượng

5 lời khuyên để đạt kết quả tốt

5_Nghỉ ngơi khi …

Trang 22

22Phương pháp lập trình hướng đối tượng

Nội dung

◼ Đề cương môn học.

◼ Chuẩn và quy ước lập trình.

Ôn tập hàm, cấu trúc, con trỏ.

◼ Bài tập.

Trang 23

23Phương pháp lập trình hướng đối tượng

Ôn tập hàm, cấu trúc, con trỏ

◼ Chương trình là gì?

◼ Biến và Hằng là gì? Cách khai báo?

◼ Hàm là gì? Có mấy cách truyền tham số?

◼ Cấu trúc là gì? Cách sử dụng?

◼ Con trỏ là gì? Cách sử dụng?

◼ Header File để làm gì?

◼ Nhập xuất trong C/C++?

Trang 24

24Phương pháp lập trình hướng đối tượng

Tóm tắt

◼ Đề cương môn học:

◼ Mục tiêu: định nghĩa và áp dụng OOP bằng C++.

◼ Cách thức: học tập chăm chỉ và chủ động.

◼ Chuẩn và quy ước lập trình:

◼ Chuẩn và quy ước để phối hợp công việc hiệu quả.

◼ Áp đặt kỷ luật lên việc lập trình.

◼ Quy tắc đặt tên: tên thể hiện ý nghĩa.

◼ Quy tắc viết câu lệnh: rộng rãi, rõ ràng.

◼ Quy tắc viết chú thích: đầy đủ, dễ hiểu.

Trang 25

25Phương pháp lập trình hướng đối tượng

Tóm tắt

◼ Hàm, cấu trúc, con trỏ:

◼ Hàm chứa xử lý của chương trình.

◼ Cấu trúc chứa dữ liệu của chương trình.

◼ Cấu trúc dùng để đóng gói dữ liệu.

◼ Con trỏ chứa địa chỉ của biến hoặc vùng nhớ.

◼ Dùng con trỏ để thao tác linh động.

Trang 26

26Phương pháp lập trình hướng đối tượng

Nội dung

◼ Đề cương môn học.

◼ Chuẩn và quy ước lập trình.

◼ Ôn tập hàm, cấu trúc, con trỏ.

Bài tập.

Trang 27

27Phương pháp lập trình hướng đối tượng

Trang 28

28Phương pháp lập trình hướng đối tượng

Trang 29

29Phương pháp lập trình hướng đối tượng

Bài tập

◼ Bài tập 1.3:

Viết chương trình cho phép thực hiện các thao tác trên kiểu đơn thức :

◼ Nhập, xuất đơn thức.

◼ Tính giá trị, đạo hàm, nguyên hàm đơn thức.

◼ Cộng, trừ, nhân, chia, so sánh hai đơn thức cùng bậc.

Trang 30

30Phương pháp lập trình hướng đối tượng

Bài tập

◼ Bài tập 1.4:

Thông tin một học sinh bao gồm:

◼ Họ tên.

◼ Điểm văn, toán.

Viết chương trình cho phép thực hiện các thao tác trên kiểu học sinh :

◼ Nhập, xuất thông tin học sinh.

◼ Tính điểm trung bình.

◼ Xếp loại theo tiêu chí:

➢ Giỏi (>= 8.0), Khá (>= 7.0).

➢ Trung bình (>= 5.0), Yếu (< 5).

Trang 31

31Phương pháp lập trình hướng đối tượng

Trang 32

32Phương pháp lập trình hướng đối tượng

CƠ BẢN VỀ LẬP TRÌNH

HƯỚNG ĐỐI TƯỢNG

Trang 33

33Phương pháp lập trình hướng đối tượng

NỘI DUNG

◼ Giới thiệu lập trình hướng đối tượng

◼ Ngôn ngữ C++, các điểm mới so với C

◼ Các khái niệm cơ bản

◼ Bài tập.

Trang 34

34Phương pháp lập trình hướng đối tượng

Mục tiêu của Kỹ sư CNPM

◼ Tạo ra sản phẩm tốt một cách có hiệu quả

◼ Nắm bắt được công nghệ

Trang 35

35Phương pháp lập trình hướng đối tượng

Độ phức tạp ngày càng cao

◼ Một số hệ UNIX chứa khoảng 4 triệu dòng lệnh

◼ MS Windows chứa hàng chục triệu dòng lệnh

◼ Người dùng ngày càng đòi hỏi nhiều chức năng, nhất là các chức năng thông minh

◼ Phần mềm luôn cần được sửa đổi

Trang 36

36Phương pháp lập trình hướng đối tượng

Giải pháp???

◼ Cần kiểm soát chi phí

◼ Chi phí phát triển

◼ Chi phí bảo trì

◼ Giải pháp chính là sử dụng lại ( tính tái sử dụng )

◼ Giảm chi phí và thời gian phát triển

◼ Nâng cao chất lượng

Trang 37

37Phương pháp lập trình hướng đối tượng

Để sử dụng lại (thì mã nguồn)

◼ Cần phải dễ hiểu

◼ Được coi là chính xác

◼ Có giao diện rõ rang

◼ Tính module hóa cao

Không yêu cầu thay đổi khi sử dụng chương trình mới

Trang 38

38Phương pháp lập trình hướng đối tượng

Mục tiêu của việc thiết kế 1 phần mềm

thành phần có thể được sử dụng trong nhiều phần mềm khác nhau

Trang 39

39Phương pháp lập trình hướng đối tượng

Các phương pháp lập trình

◼ Lập trình không cấu trúc ( Unstructured Programming )

◼ Lập trình thủ tục ( Procedural Programming )

◼ Lập trình module ( Modular Programming )

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

◼ …

Trang 40

40Phương pháp lập trình hướng đối tượng

Lập trình không cấu trúc

◼ Là phương pháp xuất hiện đầu tiên

◼ Gồm một dãy lệnh đơn giản được viết trong chương trình chính

◼ Sử dụng các biến dữ liệu toàn cục

Lạm dụng lệnh GOTO

◼ Ngôn ngữ: Asembly, Basic

◼ Nhược điểm:

◼ Khó hiểu, khó bảo trì, hầu như được sử dụng lại

◼ Chất lượng kém, chi phí cao

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

◼ Không thể phát triển được các ứng dụng lớn

Main Program

Program

Data

Trang 41

41Phương pháp lập trình hướng đối tượng

Lập trình thủ tục

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

◼ Tổ chức thành các chương trình con độc lập với nhau.

◼ Mỗi chương trình con lại có thể chia nhỏ thành các chương trình con nhỏ hơn Program

Main Program

Data

Procedure 1 Procedure

2 Function 3

Trang 42

42Phương pháp lập trình hướng đối tượng

Lập trình thủ tục

◼ Sử dụng các lệnh có cấu trúc: if then else, for, while…

◼ Ngôn ngữ: Pascal, C, Foxpro…

◼ Chương trình chính có nhiệm vụ truyền dữ liệu cho các thủ tục, hàm

◼ Ưu điểm:

◼ Có cấu trúc →Dễ hiểu hơn, dễ bảo trì hơn

◼ Dễ dàng tạo ra các thư viện phần mềm

Chương trình = Cấu trúc Dữ liệu + Giải thuật

Trang 43

43Phương pháp lập trình hướng đối tượng

Trang 44

44Phương pháp lập trình hướng đối tượng

Lập trình thủ tục

Nhược điểm:

◼ Dữ liệu và mã xử lý là tách rời → người lập trình phải

biết cấu trúc dữ liệu (vấn đề này một thời gian dài được coi

là hiển nhiên)

◼ Khi CTDL thay đổi → mã nguồn cũng phải thay đổi

◼ Khó đảm bảo tính đúng đắn của dữ liệu

◼ Không tự động khởi tạo hay giải phóng dữ liệu tự động

Không mô tả được đầy đủ, trung thực các hệ thống thực tế

Trang 45

45Phương pháp lập trình hướng đối tượng

◼ Mỗi module có dữ liệu

riêng và độc lập với nhau

Trang 46

46Phương pháp lập trình hướng đối tượng

Nhược điểm của các phương pháp

lập trình truyền thống

◼ 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ế

◼ ➔ Cần một phương pháp lập trình mới???

Trang 47

47Phương pháp lập trình hướng đối tượng

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

◼ Dựa trên ý tưởng

◼ Xem thế giới ta đang sống là tuyển tập các đối

tượng, ví dụ như : bạn, những người bạn cùng

lớp với bạn, con chó của bạn, ĐTDĐ của bạn

◼ Có sự tương tác giữa các đối tượng này bên

trong ứng dụng để thực hiện các yêu cầu như:

bạn có một con chó, bạn gọi điện bằng ĐTDĐ

của bạn, bạn nói chuyện với bạn cùng lớp của

bạn

◼ Xem dữ liệu (các thuộc tính) và các chức

năng/xử lý (các phương thức) trên dữ liệu

đó như một đối tượng riêng Một đối

tượng đóng bao cả dữ liệu và các

phương thức

Trang 48

48Phương pháp lập trình hướng đối tượng

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

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

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

◼ Mã lệnh và dữ liệu được gắn kết với nhau thành một thể duy nhất là đối tượ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)

Trang 49

49Phươ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 là phương pháp

lập trình dựa trên kiến trúc lớp (class)

đối tượng (object)

Trang 50

50Phương pháp lập trình hướng đối tượng

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

Trang 51

51Phương pháp lập trình hướng đối tượng

Một số khái niệm 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 con

◼ Lớp trừu tượng

◼ Truyền thông điệp

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

◼ Sự đóng gói

◼ Sự kế thừa

◼ Sự đa hình

Trang 52

52Phương pháp lập trình hướng đối tượng

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

Trang 53

53Phương pháp lập trình hướng đối tượng

Đối tượng (Object)

◼ Là khái niệm trừu tượng phản ánh các thực

◼ 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

Trang 54

54Phương pháp lập trình hướng đối tượng

Hai thành phần của một đối tượng

Trang 55

55Phương pháp lập trình hướng đối tượng

Đối tượng trong thực tế

❖Ví dụ: Một người

Trang 56

56Phương pháp lập trình hướng đối tượng

Đối tượng trong OOP

❖Tách biệt giữa giao tiếp và cài đặt cụ thể

Trang 57

57Phương pháp lập trình hướng đối tượng

Thuộc tính và phương thức

Trang 58

58Phương pháp lập trình hướng đối tượng

Thuộc tính và phương thức

◼ Các thuộc tính (Attributes)

◼ Thành phần dữ liệu của một đối tượng

◼ Xác định các đặc trưng mô tả của một đối tượng

◼ Ví dụ: con chó của bạn có màu nâu, ĐTDĐ của bạn thuộc hãng Nokia

◼ Các phương thức (Methods)

◼ Thành phần xử lý của một đối tượng

◼ Xác định các hành vi của một đối tượng

◼ Ví dụ: con chó đi, ĐTDĐ nhắn tin SMS

Trang 59

59Phương pháp lập trình hướng đối tượng

Thuộc tính và 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:

Trang 60

60Phương pháp lập trình hướng đối tượng

Trang 61

61Phương pháp lập trình hướng đối tượng

Lớp

◼ Một khuôn mẫu (template, blueprint, prototype) để tạo đối tượng

Ví dụ: Lớp “Chó” xác định các thuộc tính và các phương thức của một con chó, nhưng lớp “Chó”

không phải là một đối tượng

◼ Một đối tượng được tạo từ một lớp

◼ Là một thể hiện/minh họa của một lớp

Ví dụ: bạn là một thể hiện lớp “SinhViên”, con chó của bạn là một minh họa của lớp “Chó”

Trang 62

62Phương pháp lập trình hướng đối tượng

Lớp

Trang 63

63Phương pháp lập trình hướng đối tượng

Trang 64

64Phương pháp lập trình hướng đối tượng

Lớp và Đối tượng

Trang 65

65Phương pháp lập trình hướng đối tượng

Lớp và Đối tượng

Trang 66

66Phương pháp lập trình hướng đối tượng

Lớp và Đối tượng

Trang 67

67Phương pháp lập trình hướng đối tượng

◼ Bản thân nó chưa có ý nghĩa nên chưa thể

viết mã cho đối tượng

◼ Lớp hình phẳng

◼ Lớp động vật

Trang 68

68Phương pháp lập trình hướng đối tượng

Truyền thông điệp

Trang 69

69Phương pháp lập trình hướng đối tượng

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

Trang 70

70Phương pháp lập trình hướng đối tượng

Kết hợp dữ liệu và hành vi

◼ Trong cách tiếp cận thủ tục cổ điển, hệ thống được

xây dựng trên 2 sơ đồ phân cấp chằng chịt: sơ đồ phân cấp dữ liệu & sơ đồ phân cấp thủ tục Sự liên

hệ giữa một loại dữ liệu và các thủ tục xử lý dữ liệu rất mờ nhạt

➔ Sữa chữa, nâng cấp trong tương lai rất khó khăn.

◼ Cách tiếp cận O.O đã loại bỏ những nhược điểm kể

trên bằng cách kết hợp phần dữ liệu và thủ tục vào trong một thực thể duy nhất

➔ Hệ thống trở thành một sơ đồ phân cấp duy nhất các đối tượng

Trang 71

71Phương pháp lập trình hướng đối tượng

Sơ đồ đối tượng

◼ Dùng để mô tả các lớp đối tượng

Gồm sơ đồ lớp và sơ đồ thể hiện

◼ Sơ đồ lớp mô tả các lớp đối tượng trong hệ thống.

◼ Một lớp đối tượng được biểu diễn bằng 1 HCN có 3

Trang 72

72Phương pháp lập trình hướng đối tượng

Sơ đồ lớp và sơ đồ thể hiện

Trang 73

73Phương pháp lập trình hướng đối tượng

Thiết kế theo HĐT.

◼ Trừu tượng hóa DL và các hàm/ thủ tục liên quan

◼ Chia hệ thống ra thành các lớp/đối tượng

◼ Mỗi lớp/đối tượng có các tính năng và hành động

chuyên biệt

◼ Các lớp có thể được sử dụng để tạo ra nhiều đối

tượng

Trang 74

74Phương pháp lập trình hướng đối tượng

Trừu tượng hóa (Abstraction)

◼ 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

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

◼ Bỏ qua các chi tiết không liên quan

Trang 75

75Phương pháp lập trình hướng đối tượng

Trừu tượng hóa (Abstraction)

Trang 76

76Phương pháp lập trình hướng đối tượng

Trừu tượng hóa (Abstraction)

Trang 77

77Phương pháp lập trình hướng đối tượng

Trừu tượng hóa (Abstraction)

Trang 78

78Phương pháp lập trình hướng đối tượng

Các đặc điểm quan trọng của OO

Trang 79

79Phương pháp lập trình hướng đối tượng

Đóng gói (Encapsulation)

◼ Đóng gói: Nhóm những gì có liên quan với nhau

vào làm một ➔ khi dùng có thể gọi thông qua một cái tên

◼ Các hàm/thủ tục đóng gói các câu lệnh

◼ Các đối tượng đóng gói dữ liệu của chúng và các thủ

tục có liên quan

◼ Che dấu thông tin: đóng gói để che dấu một số

thông tin & chi tiết cài đặt nội bộ để bên ngoài không nhìn thấy

◼ Che dấu những gì mà người dùng không cần

◼ Che dấu những gì mà mình cần giữ bí mật

Ngày đăng: 03/11/2019, 08:44

TỪ KHÓA LIÊN QUAN

w