Kỹ thuật lập trình - Chương 2: Giới thiệu về lập trình hướng đối tượng oop

Giới thiệu

Tổng quan về các kỹ thuật lập trình

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

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

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

III. Một số khái niệm cơ bản về lập trình hướng đối tượng

 

ppt25 trang | Chia sẻ: Mr Hưng | Lượt xem: 781 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Kỹ thuật lập trình - Chương 2: Giới thiệu về lập trình hướng đối tượng oop, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
*Chương 2: GiỚI THIỆU VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG OOPGiới thiệuTổng quan về các kỹ thuật lập trình 1. Lập trình cổ điển 2. Lập trình cấu trúc 3. Lập trình hướng đối tượngIII. Một số khái niệm cơ bản về lập trình hướng đối tượngNỘI DUNG*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#, ... *II. TỔNG QUAN VỀ CÁC KỸ THUẬT LẬP TRÌNH Lập trình cổ điển:a. Lập trình tuyến tínhMá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 GOTOCác ngôn ngữ như Assemly, Fortran, Basic* 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*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.-Trao đổi qua tham số và biến toàn cục.*Lập trình cấu trúc Ưu điểm: 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.Nhược điểm:Dữ liệu và code xử lý tách rờiNgườ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 theoKhó đảm bảo tính đúng đắn của dữ liệuKhông tự động khởi tạo hay giải phóng dữ liệu động.*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ượngDữ 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.*Ư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ụcTạo ra các chương trình an toàn, bảo mậtRút ngắn thời gian xây dựng hệ thốngChương trình được thiết kế theo đúng qui trình, *Một số ngôn ngữ OOPHầ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++, DelphiNgôn ngữ hướng đối tượng:SmallTalk, JAVAMột số ngôn ngữ OOP hiện nay:Visual C++VB.NET, C#...*6. Ứng dụng của OOPDùng để phát triển phần mềm trong nhiều lĩnh vực khác nhau:Ví dụ: hệ điều hành WindowsLĩnh vực chính:Hệ thống thời gian thựcCơ sở dữ liệu hướng đối tượngHệ siêu văn bản, đa phương tiệnTrí tuệ nhân tạoLập trình song song, mạng nơron *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*1. Hệ thống hướng đối tượngLà 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ệuCác đối tượng có thể kế thừa các đặc tính của đối tượng khác.Các đối tượng có thể tồn tại hoạt động phân tán hoặc song song.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:Thông báoGửi và nhận thông báo*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 đó.*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 và hành viLà bản thiết kế hoặc bản mẫu mô tả một cấu trúc dữ liệu gồm: - Các thành phần dữ liệu. - Các phương thức.Lớp được sử dụng như kiểu dữ liệu người dùng định nghĩa.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úngLớ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*3. Thuộc tính lớp và phương thức lớpThuộ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ẽ nào.*4. Thuộc tính và phương thứcThuộ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ếnTham số nội tại.Thuộc tính được xác định kiểu, gồm:Kiểu cổ điểnKiểu do người dùng định nghĩa*Thuộc tính và phương thứcPhươ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ượngCó 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.*4. Lớp cơ sở trừu tượngLà 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.Ví dụ:Lớp hình phẳng Lớp động vậtLớp nhân viên (nếu có nhiều loại nhân viên)*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ầnTruyề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 -Gọi thực hiện hàm tương ứng với phương thức*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 trongTrừ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ệcTóm lại:Chỉ quan tâm tới đặc điểm quan trọngBỏ qua các chi tiết không liên quan*7. Sự đóng gói (Encapsulation)và che dấu thông tinKhá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ệnChe 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.*8. Thừa kế (inheritance)Khái niệm:Hệ thống hướng đối tượng cho phép các lớp được định nghĩa thừa kế từ các lớp khác Ví dụ: lớp xe đạp leo núi và lớp xe đạp đua là những lớp con (subclass) của lớp xe đạp.Thừa kế (hay kế thừa) nghĩa là các phương thức và các thuộc tính được định nghĩa trong một lớp có thể được thừa kế hoặc được sử dụng lại bởi lớp khác. *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 *9. Đa hìnhKhái niệm:Đa hình là “nhiều hình thức”, hành động cùng tên có thể được thực hiện khác nhau đối với các đố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 trong các lớp conThực hiện bởi:Định nghĩa lạiNạp chồngCơ chế dựa trên sự kết gán:Kết gán sớmKết gán muộn *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 chungXây dựng lớp dẫn xuất từ lớp cơ sở

Các file đính kèm theo tài liệu này:

  • pptchuong2_gioithieu_lthdt_2612.ppt