cslt slide c1

Tổng quan

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

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

q     Object Oriented Programming (OOP)

n      Được xem là:

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

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

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

n      Mục đích:

q     Giảm bớt thao tác viết trình

q     Mô tả chân thực thế giới thực

Vậy OOP khó học hay dễ học ?

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

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

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

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 …

1.3 Lập trình môđun

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

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

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

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

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

1.4 Nhược điểm của lập trình truyền thống

n      Nhược điểm:

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

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

q     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

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

q     Không mô tả đầy đủ, trung thực hệ thống trong thực tế

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

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

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

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

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

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

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

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

q     Chương trình được thiết kết theo cách từ dưới lên (bottom-up)

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

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

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

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

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

q     Các thao tác trên dữ liệu

q     Các đối tượng có thể kế thừa các đặc tính của đối tượng khác

q     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

n      Thông báo

n      Gửi & nhận thông báo

2.2 Đối tượng (Object)

n      Là khái niệm trừu tượng phản ánh các thực thể trong thế giới thực

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

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

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

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

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

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

q     Các ứng xử (behavior) hay hành vi, thao tác

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

n      Thuộc tính bao gồm:

q     Hằng, biến

q     Tham số nội tại

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

q     Kiểu cổ điển

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

n      Phương thức là:

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

q     Có kiểu trả về

q     Tên gọi khác: hàm thành viên

2.4 Lớp (Class) & Lớp con (SubClass)

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

n      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:

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

q     Các phương thức

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

n      Lớp con:

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

q     Có thêm tính chất kế thừa đặc tính của lớp khác

2.5 Lớp trừu tượng

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

n      Được thiết kế nhằm tạo ra lớp có đặc tính tổng quát

n      Bản thân nó chưa có ý nghĩa nên chưa thể viết mã cho đối tượng

n      Ví dụ:

q     Lớp hình phẳng

q     Lớp động vật

2.6 Truyền thông điệp

n      Thông điệp:

q     Là phương tiện để đối tượng này chuyển yêu cầu tới đối tượng khác.

n      Một thông điệp bao gồm:

q     Handle của đối tượng đích (đối tượng chủ)

q     Tên phương thức cần thực hiện

q     Các thông tin cần thiết khác (tham số)

n      Hệ thống yêu cầu đối tượng thực hiện phương thức như sau:

q     Gửi thông báo và tham số cho đối tượng

q     Kiểm tra tính hợp lệ của thông báo

q     Gọi thực hiện hàm tương ứng phương thức

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

n      Khái niệm:

q     Là khả năng bỏ qua hay không để ý tới các thành phần không quan trọng.

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

q     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

q     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

n      Tóm lại:

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

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

2.8 Sự đóng gói

n      Khái niệm:

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

n      Đóng gói gồm:

q     Bao gói: người dùng giao tiếp với hệ thống qua giao diện

q     Che dấu: ngăn chặn các thao tác không được phép từ bên ngoài

n      Ưu điểm:

q     Quản lý sự thay đổi

q     Bảo vệ dữ liệu

2.9 Sự kế thừa

n      Khái niệm:

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

n      Đặc điểm:

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

q     Hoặc định nghĩa là các thuộc tính của lớp cha

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

q     Đơn kế thừa

q     Đa kế thừa

2.10 Sự đa hình

n      Khái niệm:

q     Khả năng đưa một phương thức có cùng tên trong các lớp con

n      Thực hiện bởi:

q     Định nghĩa lại

q     Nạp chồng

n      Cơ chế dựa trên sự kết gán:

q     Kết gán sớm

q     Kết gán muộn

3. Các bước thiết kế chương trình OOP

n      Các bước chính:

q     Xác định các dạng đối tượng (lớp)

q     Tìm dữ liệu dùng chung, chia sẻ

q     Xác định lớp cơ sở dựa vào dữ liệu dùng chung

q     Xây dựng lớp dẫn xuất từ lớp cơ sở

4. Ưu điểm của OOP

n      Ưu điểm chính:

q     Loại bỏ các đoạn mã lặp lại

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

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

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

q     Tăng năng xuất và hiệu quả hơn

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

5. Một số ngôn ngữ OOP

n      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:

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

n      Object C, Pascal, C++, Delphi…

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

n      SmallTalk, JAVA

n      Một số ngôn ngữ OOPhiện nay:

q     Visual C++

q     VB.NET, C#...

6. Ứng dụng của OOP

n      Dùng để phát triển phần mềm trong nhiều lĩnh vực khác nhau:

q     Ví dụ: hệ điều hành Windows

n      Lĩnh vực chính:

q     Hệ thống thời gian thực

q     Cơ sở dữ liệu hướng đối tượng

q     Hệ siêu văn bản, đa phương tiện

q     Trí tuệ nhân tạo

q     Lập trình song song, mạng nơron …

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: