1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Chương 2: Giới thiệu về lập trình hướng đối tượng OOP

25 27 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 25
Dung lượng 501,5 KB

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

Nội dung

Bài giảng Chương 2: Giới thiệu về lập trình hướng đối tượng OOP sẽ giới thiệu tới các bạn tổng quan về các kỹ thuật lập trình: Lập trình cổ điển, lập trình cấu trúc, lập trình hướng đối tượng; một số khái niệm cơ bản về lập trình hướng đối tượng.

Trang 1

Chương 2: GiỚI THIỆU VỀ LẬP TRÌNH

HƯỚNG ĐỐI TƯỢNG OOP

NỘI DUNG

Trang 2

I GiỚI THIỆU

• Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các chương trình con (hàm, thủ tục) Mỗi hàm có dữ liệu riêng, thực hiện các công việc rời rạc Thông qua các ngôn ngữ Foxpro, Pascal, C

đa số những người làm tin học đã khá quen biết với phương pháp lập trình này

• Lập trình hướng đối tượng dựa trên việc tổ chức

chương trình thành các lớp Khác với hàm và thủ tục, lớp là một đơn vị bao gồm cả dữ liệu và các phương thức xử lý Vì vậy lớp có thể mô tả các thực thể một cách chân thực, đầy đủ cả thành phần dữ liệu và yêu cầu quản lý Tư tưởng lập trình hướng đối tượng được

áp dụng trong các ngôn ngữ như Microsoft Access, Visual Basic, C++, Visual C, C#,

Trang 3

II TỔNG QUAN VỀ CÁC KỸ THUẬT LẬP TRÌNH

1 Lập trình cổ điển:

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

Máy tính đầu tiên được lập trình bằng mã nhị phân,

sử dụng các công tắc cơ khí để nạp chương trình

Cùng với sự phát triển máy tính, ngôn ngữ lập trình

cấp cao cũng ra đời và đưa vào sử dụng Ngôn ngữ

lập trình tuyến tính đầu tiên thiết kế làm các công việc đơn giản như tính toán, chương trình ngắn

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

giản

• Sử dụng biến tổng thể, lạm dụng lệnh GOTO

Trang 4

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

Đặc điểm:

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

• Chỉ dùng hai cấu trúc lệnh là cấu trúc lệnh tuần tự

(sequential) và nhảy không điều kiện (goto)

• 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

• Hệ thống thư viện nghèo nàn và lập trình trở

nên khó khăn

• 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

Trang 5

b Lập trình cấu trúc / lập trình thủ tục

(structured/procedural programming)

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

• Các ngôn ngữ như: Pascal, C, Foxpro…

• Người lập trình phân tích nhiệm vụ lớn thành nhiều

công việc nhỏ hơn, sau đó dần dần chi tiết hơn, cụ thể hơn Tức là chương trình được chia nhỏ thành những chương trình con Trong Pascal chương trình con là 2 kiểu thủ tục (Procedure) và hàm (Function), trong C chỉ có 1 loại là hàm

• Lập trình theo nguyên lý từ trên xuống.

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

- Độc lập với nhau và có dữ liệu riêng Chúng được ghép nối với nhau cho ra một hệ thống chương trình

Trang 6

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

• Chương trình được cục bộ hóa, do đó dễ

hiểu, dễ bảo trì hơn

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

• Dữ liệu và code xử lý tách rời

• Người lập trình phải biết cấu trúc dữ liệu.

• Khi thay đổi cấu trúc dữ liệu thì code phải thay

đổi theo

• 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

động

Trang 7

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

(Object Oriented Programming)

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

– Lấy đối tượng (Object) làm nền tảng để xây dựng

giải thuật, xây dựng chương trình Đối tượng đóng vai trò trung tâm của lập trình, nên gọi là nguyên lý lập trình từ dưới lên

– Đối tượng được hiểu như một thực thể (instance),

đối tượng được đặc trưng bởi một số thao tác và các thông tin

– 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 qua thông báo.

Trang 8

Ưu điểm của OOP

Ưu điểm chính:

– Loại bỏ các đoạn mã lặp lại, viết code hiệu

quả hơn, dễ bổ sung và dễ mở rộng

– Dễ học hơn lập trình thủ tục

– Tạo ra các chương trình an toàn, bảo mật

– Rút ngắn thời gian xây dựng hệ thống

– Chương trình được thiết kế theo đúng qui

trình, …

Trang 9

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:

– Visual C++

– VB.NET, C#

Trang 10

– 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 11

III Một số khái niệm cơ bản

về lập trình hướng đối tượng

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

- Lớp và đối tượng

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

- Lớp & Lớp con

- Lớp cơ sở trừu tượng

- Truyền thông điệp

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

- Sự đóng gói và che dấu thông tin

- Thừa kế

- Đa hình

Trang 13

2 Lớp (class) và đối tượng (Object)

• Lớp đối tượng là khuôn mẫu để sinh ra đối

tượng

• Đối tượng

- Là thể hiện (instance) của một lớp

- 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

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

tượng

• Đối tượng có: Định danh (tên), thuộc tính (dữ

liệu), hành vi (phương thức)

• Sự khác biệt giữa lớp và đối tượng giống như sự

khác biệt giữa tập hợp và phần tử trong tập hợp

Trang 14

Lớp (Class) và Lớp con (SubClass)

Lớp: là tập hợp các đối tượng có cùng thuộc tính

• Những đối tượng của cùng một lớp có cùng định

nghĩa về các thao tác và cùng cấu trúc dữ liệu của chúng

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

Trang 15

3 Thuộc tính lớp và phương thức lớp

Thuộc tính lớp (class attribute) là một hạng mục dữ liệu liên kết với một lớp cụ thể mà không liên kết với các thể hiện của lớp Nó được định nghĩa bên trong định nghĩa lớp và được chia sẻ bởi tất cả các thể hiện của lớp

Phương thức lớp (class method) là một phương thức được triệu gọi mà không tham khảo tới bất kỳ một đối tượng nào Tất cả các phương thức lớp ảnh hưởng đến toàn bộ lớp chứ không ảnh hưởng đến một lớp riêng rẽ

Trang 16

4 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 về một đối tượng

• Thuộc tính của đối tượng 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

Trang 17

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

Phương thức (method) có liên quan tới những thứ

mà đối tượng có thể làm Một phương thức đáp ứng một chức năng tác động lên dữ liệu của đối tượng (thuộc tính)

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

• Một đối tượng sau khi khai báo sẽ được cấp phát

một vùng nhớ riêng chứa các thuộc tính, nhưng không có vùng nhớ riêng cho các phương thức

Trang 18

4 Lớp cơ sở trừu tượng

• Là lớp mà nó không thể trở thành một lớp thực tế

nào

• Là lớp chỉ được dùng cơ sở cho lớp khác.

• Đượ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

• Không hề có đối tượng nào của lớp trừu tượng

được tạo ra

Trang 19

5 Thông điệp và truyền thông điệp

Thông điệp (message): là một lời yêu cầu một hoạt động Gồm có:

- Đối tượng nhận thông điệp

-Tên của phương thức thực hiện

- Các tham số mà phương thức cần

Truyền thông điệp: một đối tượng triệu gọi một hay nhiều phương thức của đối tượng khác để yêu cầu thông tin

-Truyền thông điệp ta hiểu là sử dụng đối tượng để gọi

các phương thức của đối tượng đó

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

Trang 20

6 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

Trang 21

7 Sự đóng gói (Encapsulation)

và che dấu thông tin

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, thuận tiện cho việc

sử dụng lại Sự đóng gói không chỉ là gom chung

dữ liệu và chương trình thành một khối mà phải

có sự đồng nhất dữ liệu và các thao tác lên nó

Đó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 Che dấu người lập trình khác

có khả năng thay đổi dữ liệu bên trong lớp

Ưu điểm: Quản lý sự thay đổi, bảo vệ dữ liệu.

Trang 22

dụng lại bởi lớp khác

Trang 23

Thừa kế

– 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ó (lớp cơ sở)

Do đó lớp mới không phải xây dựng lại từ đầu

– Lớp mới nhận được có thể bổ sung các thành

phần khác lớp cơ sở

– Những lớp thừa kế những hành vi và dữ liệu của

lớp cơ sở gọi là lớp dẫn xuất Lớp dẫn xuất có thể là lớp cơ sở của lớp dẫn xuất khác

Các loại kế thừa:

– Đơn kế thừa

– Đa kế thừa

Trang 24

đối tượng/các lớp khác nhau

– Khả năng đưa một phương thức có cùng tên

Trang 25

10 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ở

Ngày đăng: 11/05/2021, 03:45

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm