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