Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 44 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
44
Dung lượng
1,31 MB
Nội dung
Click to edit Master subtitle CHƯƠNG 1: style GIỚI THIỆU LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Khoa Cơng nghệ thơng tin Trường Đại học Ngoại ngữ - Tin học, TP.HCM NỘI DUNG Một số Mơ thức lập trình Khái niệm Lớp Đối tượng Ba nguyên tắc lập trình hướng đối tượng Một số phần mềm viết theo hướng đối tượng Tại OOP? Object oriented programming (OOP) mô thức quan trọng Tất ngôn ngữ đại điều object oriented hay hỗ trợ object class Các framework, library, API đại điều object oriented • NET Framework Class Library (C#), Java API classes (Java), • Laravel (PHP), Rails (Ruby), • STL (C++), Django (Python), Android, … Bất kỳ bắt đầu công việc phát triển phần mềm nên làm quen với OOP OO modeling MỘT SỐ MƠ THỨC LẬP TRÌNH Mơ thức lập trình Programming paradigm: Mơ thức/Mơ hình lập trình Cách “nhìn” việc xây dựng chương trình máy tính Một số programming paradigm: Imperative Structured Procedural Object oriented Functional Declarative … Imperative programming Mô thức “Lập trình Tuần tự” với ý tưởng chủ đạo lệnh (commands) Input data Process Output data Chương trình chuỗi lệnh (cụ thể/rõ ràng (explicit)) có thứ tự (step by step) dùng để thay đổi trạng thái chương trình Ví dụ DATA A DB DATA CODE SEGMENT 1,2,3,4,5,6,7,8,9,10 ENDS SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX MOV CL,10 LEA BX,A MOV AH,00 MOV AL,00 L1: ADD AL,BYTE PTR[BX] INC BX DEC CL CMP CL,00 JNZ L1 MOV AH,4CH INT 21 END START CODE ENDS Imperative programming Đặc điểm: Các biến toàn cục Mỗi bước ảnh hưởng đến trạng thái tồn cục chương trình Có lệnh goto để nhảy đến lệnh khác Có đoạn mã viết nhiều lần Ngôn ngữ: Assembly, Pascal, C, … Structured programming Mơ thức “Lập trình Cấu trúc” dạng Imperative programming, Chương trình có tổ chức, cấu trúc logic hơn: result = []; for i = 0; i < length(people); i++ { p = people[i]; if length(p.name)) > { addToList(result, toUpper(p.name)); } } return sort(result); Structured programming Đặc điểm: Lệnh (Sequence), Lệnh lặp (Loop), Lệnh điều kiện (Condition) Phong cách lập trình Thục đầu dịng (indentation) Loại bỏ/hạn chế lệnh goto Ngơn ngữ: Pascal, C, … Khuyết điểm: Khó phân cơng cho nhiều người viết Dữ liệu “thả tự do” Có đoạn mã viết nhiều lần 10 NGUYÊN TẮC LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 30 nguyên tắc lập trình hướng đối tượng Đóng gói (Encapsulation) Giao diện (Interface) Ẩn chi tiết lớp (Đóng gói), cung cấp phương thức cần thiết để dùng (Giao diện) Thừa kế (Inheritance) Tạo lớp thừa kế lớp có Đa hình (Polymorphism) Khả tạo lớp dẫn xuất, cài đặt method lớp sở theo cách khác (tùy lớp dẫn xuất) 31 Encapsulation Interface Đóng gói (Encapsulation) Ẩn chi tiết cơng việc thực thi lớp Trong OOP, Đóng gói • Ẩn property • Ẩn số method • Ẩn chi tiết thực method Giao diện (Interface) Bản điều khiển cho phép dùng đối tượng Trong OOP, Giao diện tập method cho phép dùng object 32 Encapsulation Interface 33 Thừa kế (inheritance) Thừa kế (inheritance) Tạo lớp thừa kế lớp có Một cách tái sử dụng lớp cách mở rộng lớp có thành lớp cụ thể “Lớp có”: base class, superclass, parent class “Lớp mới”: derived class, subclass, child class 34 Thừa kế (inheritance) 35 Thừa kế (inheritance) 36 Thừa kế (inheritance) 37 Thừa kế (inheritance) Thừa kế: Lớp thừa kế Các liệu lớp cha Các hàm lớp cha Ngồi ra, lớp cịn Có liệu riêng lớp Có hàm riêng lớp 38 Đa hình (polymorphism) Đa hình (polymorphism) Poly = many Morphism = forms Các lớp cài đặt hàm lớp cha, lớp có cách cài đặt khác 39 Đa hình (polymorphism) 40 MỘT SỐ PHẦN MỀM VIẾT THEO OOP Photoshop Adobe Acrobat NotePad++ VLC (VideoLan) Camtasia Studio Paint.NET Visual Studio Microsoft Office (Word, Excel, …) SQL Server Sky client 41 BÀI TẬP Sử dụng lớp có sẵn: Lớp Random Viết chương trình mơ gieo súc sắc Hãy tiến hành thí nghiệm gieo súc sắc N lần (N=100), tính xác suất mặt súc sắc thí nghiệm Thay N=1.000, N=10.000, N=100.000, N=1.000.000 quan sát kết (so sánh với giá trị xác suất tính lý thuyết) 42 BÀI TẬP Sử dụng lớp có sẵn: Lớp Random Hãy tiến hành thí nghiệm gieo súc sắc N lần (N=100), tính xác suất tổng hai mặt súc sắc thí nghiệm Thay N=1.000, N=10.000, N=100.000, N=1.000.000 quan sát kết (so sánh với giá trị xác suất tính lý thuyết) 43 ĐIỂM CHÍNH Tại học OOP? OOP gì? Object Class nguyên tắc lập trình hướng đối tượng Đóng gói (Encapsulation) Thừa kế (Inheritance) Đa hình (Polymorphism) 44