• Không có kết quả nào được tìm thấy

Lập Trình Hướng Đối Tượng

N/A
N/A
Protected

Academic year: 2022

Chia sẻ "Lập Trình Hướng Đối Tượng"

Copied!
21
0
0

Loading.... (view fulltext now)

Văn bản

(1)

GVHD: Huỳnh Lê Tấn Tài Lớp: 07TH1D

Nhóm: 3

Tổng Quan Về

Lập Trình Hướng Đối Tượng

(2)

T ng Quan Về ổ

L p Trình H ậ ướ ng Đối T ượ ng

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

Khái quát về lập trình cấu trúc.

Ưu điểm lập trình cấu trúc.

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

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

Khái niệm Lập Trình Hướng Đối Tượng.

Đổi tượng là gì?

Lớp.

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

Tính kế thừa (Inheritance).

Tính đa hình (Polymorphism).

Ưu điểm.

Nhược điểm.

Tương lai.

Một số ngôn ngữ sử dụng phương pháp lập trình hướng đối tượng.

3. Ứng dụng OOP.

4. Tài liệu tham khảo.

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

Lớp :07TH1D 2

(3)

Lập Trình Cấu Trúc

1. Sơ lượt về lập trình cấu trúc:

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

• Chương trình được chia nhỏ thành chương trình con được đặt chung với nhau để xây dựng nên một ứng dụng.

• 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

(4)

Lập Trình Cấu Trúc

2. Ưu điểm lập trình cấu trúc:

Việc chia nhỏ một chương trình lớn thành các chương trình con giúp cho lập trình viên dễ nhận biết và quản lí chương trình tốt hơn.

3. Nhược điểm trong lập trình cấu trúc:

Không hổ trợ mạnh việc sử dụng lại mã nguồn.

Không phù hợp với các phần mềm lớn.

Nhiều hàm truy nhập, sử dụng dữ liệu chung. Dữ liêu trong hệ thống được chuyển động từ hàm này sang hàm khác nên khó kiểm soát dữ liệu.

Tập trung vào công việc cần thực hiện (thuật toán).

Chương trình lớn được chia thành các hàm nhỏ hơn nhưng nếu không thống nhất về thông tin dẫn đến hậu quả lớn.

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

Lớp :07TH1D 4

(5)

Khái niệm Lập Trình Hướng Đối Tượng

 Lập trình cấu trúc dẫn đến khái niệm trừu tượng hóa:

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

Không quan tâm việc thực hiện của chương trình.

Chỉ quan tâm đến kết quả.

 Khái niệm:

Lập trình hướng đối tượng được xây dựng trên

nền tảng của khái niệm lập trình có cấu trúc và

sự trừu tượng hóa dữ liệu.

(6)

Khái niệm 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) và từ trên xuống (top – down).

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

Lớp :07TH1D 6

(7)

Lập Trình Hướng Đối Tượng

1. Đối tượng là gì?

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

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.

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

Trạng thái (state) dữ liệu hay thuộc tính (attribute): đó là các đặc điểm của đối tượng.

Các ứng xử (behavior) hay hành vi, thao tác, phương thức: đó là một hành động mà đối tượng có thể thực hiện.

Có hai loại đối tượng: đối tượng trừu tượng và đối tượng thực.

Được định nghĩa là sự thể hiện của một lớp (sẽ biết ở phần sau).

Chính là các thực thể trong hệ thống hướng đối tượng (sẽ biết ở phần sau).

(8)

 Ví dụ 1:

Một con người là một đối tượng

Họ, tên, chiều cao, cân năng…là thuộc tính của tất cả con người.

Hành vi của con người là ngồi, đứng, đi, chạy, nhảy…

 Ví dụ 2:

Một sinh viên trừu tượng gồm các thuộc tính:

MSSV, HỌ TÊN, NGÀY SINH, QUÊ QUÁN…

Một sinh viên thực:

070042T, Võ Hoàng Bảo, 6/6/1989, TPHCM…

8

Lập Trình Hướng Đối Tượng

(9)

Lập Trình Hướng Đối Tượng

2. Lớp (class):

Tập hợp các đối tượng có cùng thuộc tính và hành vi.

Định nghĩa:

class <tên_lớp>

{

Private:

<khai báo các thành phần riêng>

Protected:

<Khai báo các thành phần được bảo vệ>

Public:

<Khai báo các thành phần công cộng>

};

 

(10)

Lập Trình Hướng Đối Tượng

3. Sự đóng gói (Encapsulation ):

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.(thể thống nhất là đối tượng)

Đó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

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

Lớp :07TH1D 10

(11)

Lập Trình Hướng Đối Tượng

4. Tính kế thừa (Inheritance).

Khái niệm

Khả năng cho phép xây dựng lớp mới được thừa hưởng một số hoặc tất cả thuộc tính cùng với cách hoạt động của lớp đã có.

Khi đó lớp mới (lớp dẫn xuất) có thể sử dụng dữ liệu và phương thức của các lớp cơ sở (lớp ban đầu).

Kế thừa tạo ra mô hình phân cấp giữa các lớp.

Có ba từ khóa dẫn xuất là private, protected và public qui định quy định tính chất của sự kế thừa.

Có hai loại thừa kế: đa thừa kế và đơn thừa kế.

(12)

Lập Trình Hướng Đối Tượng

Ví dụ:

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

Lớp :07TH1D 12

Person Weight Height Sex Walk() Sit() Student

ID

Firt nam Last name Graduation Write()

Display()

Gradstuden t

Under grad Major

Under Year

graduted Write() Display()

inheritance

inheritance

(13)

Lập Trình Hướng Đối Tượng

5.

Tính đa hình (Polymorphism).

Đa hình là khái niệm luôn đi kèm với kế thừa. Do tính kế thừa, một lớp có thể sử dụng lại các phương thức của lớp khác.

Tuy nhiên, nếu cần thiết, lớp dẫn xuất cũng có thể định nghĩa lại một số phương thức của lớp cơ sở. Đó là sự nạp chồng

phương thức trong kế thừa. Nhờ sự nạp chồng phương thức

này, ta chỉ cần gọi tên phương thức bị nạp chồng từ đối tượng

mà không cần quan tâm đó là đối tượng của lớp nào. Chương

trình sẽ tự động kiểm tra xem đối tượng là thuộc kiểu lớp cơ sở

hay thuộc lớp dẫn xuất, sau đó sẽ gọi phương thức tương ứng

với lớp đó. Đó là tính đa hình.

(14)

Lập Trình Hướng Đối Tượng

Nĩi cách khác, đa hình là khả năng cho phép mơ tả và sử dụng những phương thức cĩ tên giống nhau trong các lớp khác nhau.

Đa hình là một quá trình áp dụng một giao diện cho hai hay nhiều trường hợp tương tự nhau (nhưng khác biệt về mặt kỹ thuật), nó triển khai tư tưởng "một giao diện cho nhiều phương thức" .

Đa hình làm cho mối quan hệ luận lý giữa các hoạt động tương tự nhau được trở nên rõ ràng hơn, do đó nó giúp cho lập trình viên dễ dàng hơn trong việc đọc hiểu và bảo trì chương trình.

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

Lớp :07TH1D 14

(15)

Lập Trình Hướng Đối Tượng

Ví dụ:

(16)

Lập Trình Hướng Đối Tượng

5. Ưu điểm:

Loại bỏ các đoạn mã lặp lại (nguyên lý thừa kế).

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

Quản lý được độ phức tạp của chương trình, dự án phần mềm lớn.

Dễ dàng mở rộng và nâng cấp

Tạo ra các chương trình an toàn, bảo mật (nguyên lý che giấu).

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 (do nó được xây dựng từ những đơn thể (đối tượng) trao đổi với nhau

chứ không phải dựa vào kinh nghiệm và kỹ thuật như trước).

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

Lớp :07TH1D 16

(17)

Lập Trình Hướng Đối Tượng

6. Nhược điểm:

Thiếu tính động của object(tự thân

object không tự phát triển trước yêu cầu mới)

Tính đan lên nhau của các yêu cầu mà

mỗi một object phải gánh chịu

(18)

Lập Trình Hướng Đối Tượng

7. Một số ngôn ngữ sử dụng phương pháp lập trình hướng đối tượng:

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:

Eiffel, Clos, Loops, Flavors, Object Pascal, Object C, C+

+, Delphi, Java…

Ngôn ngữ hướng đối tượng:

SmallTalk, JAVA

Một số ngôn ngữ OOP phổ biến hiện nay:

Visual C++

VB.NET, C#...

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

Lớp :07TH1D 18

(19)

Ứng dụng OOP

 Để phát triển phần mềm trong nhìêu lĩnh vực khác nhau

Vd: hệ điều hành Windows

 Lĩnh vực ứng dụng chính của kỹ thuật lập trình hướng đối tượng bao gồm:

 Hệ thống làm việc thời gian thực, csdl hướng

đối tượng, hệ siêu văn bản, multimedia, trí tuệ

nhân tạo, lập trình song song và mạng nơron…

(20)

Ví dụ

Tổng quan về lập trình hướng đối tượng Lớp :07TH1D20

(21)

Tài liệu tham khảo

James P. Cohoon and Jack W.Davidson, C++ Program Design – An Introduction to Programming and Object-Oriented Design, 2nd edition, WCB McGraw-Hill, 1999.

Robert Lafore, Object – Oriented Programming in C++, Fourth edition, SAMS, 2001.

Lê Đ. Hưng, Tạ T. Anh, Nguyễn H. Đức và Nguyễn T. Thuỷ, Lập trình hướng đối tượng với C++, NXB Khoa học và Kỹ thuật, 2005.

Waite Group's Object-Oriented Programming in C++, Third Edition (Publisher: Macmillan Computer Publishing)

Author(s): Robert Lafore

Giáo trình OOP

NGÔN NGỮ LẬP TRÌNH C++ tác giả PGS.TS. Trần Đình Quế - KS. Nguyễn Mạnh Hùng

C++ tác giả Phạm Văn Ất Các địa chỉ web

1. http://www.angelfire.com/country/aldev0/cpphowto 2. http://www.gnacademy.org/text/cc/Tutorial/tutorial.html 3. http://sophia.dtp.fmph.uniba.sk/cpptut/tutorial.us.html 3. http://www.brpreiss.com/books/opus4/html/book.html

Tài liệu tham khảo

Tài liệu liên quan

Biết ngôn ngữ lập trình dùng cấu trúc lặp để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc nào đó một số lần.. Biết ngôn ngữ lập trình dùng cấu trúc lặp để

Môn học này nhằm giúp sinh viên nắm bắt những kiến thức cơ bản liên quan đến lập trình hướng đối tượng, các phương pháp phân tích bài toán, tìm lời giải cho

- về dữ liêu: Một lớp dẫn xuất sẽ thừa kế tất cả các thành phần dữ liệu của lớp cơ sở. - về hàm thành phần: tất cả trừ hàm tạo, hàm hủy, hàm bạn

Hãy xây dựng lớp Diem cùng với chứa các đốI tượng diểm trong mặt phẳng và xây dựng phương thức sau:. - Toán tử

+ Học viên có thể trình bày, tóm tắt được các khái niệm, các cấu trúc và các kỹ thuật lập trình từ cơ bản đến nâng cao.. + Sử dụng thành thạo một ngôn

Phần còn lại của bài báo này sẽ được cấu trúc như sau: phần 2 giới thiệu về quy trình nộp và chấm bài tự động; phần 3 đề xuất xây dựng hệ thống nộp và chấm bài tự động hỗ trợ quá trình

nên hiện tượng vọt l về tần s , chậm hòa lưới tổ máy, các ngõ ra tác động liên tục hoặc tổ máy dao động công suất lớn khi đang vận hành; Sử dụng ngôn ngữ lập trình có cấu trúc Grafcet

Mục tiêu của môn học: - Kiến thức: Cung cấp các kiến thức tổng quan về cấu trúc và kiến trúc của các thiết bị di động, tiếp cận môi trường và ngôn ngữ lập trình xây dựng các chương