Bài giảng Lập trình hướng đối tượng Chương 1 Giới thiệu lập trình hướng đối tượng cung cấp cho người học các kiến thức Một số Mô thức lập trình, khái niệm Lớp và Đối tượng, ba nguyên tắc lập trình hướng đối tượng, một số phần mềm được viết theo hướng đối tượng. Mời các bạn cùng tham khảo.
Click to edit Master subtitle style CHƯƠNG 1: 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 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 SEGMENT A DB 1,2,3,4,5,6,7,8,9,10 DATA ENDS CODE 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 Lớp Đối tượng VD: Để tạo Car, Lấy Car class, dựa tạo Car object object object Class 28 Lớp Đối tượng class Car class Program { { int velocity; staitc void Main () public Accelerator() { { Car a = new Car(); Car b = new Car(); } Car c = new Car(); } public int Speedmotor() } { } } 29 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 Ngoà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 Đ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) 42 ... 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ữ. .. nhiên Giúp mơ hình hóa đối tượng giới thực máy tính Ngơn ngữ: C++, Java, C#, … 18 Khái niệm Lớp Đối tượng 19 Đối tượng (object) Trong giới thực có nhiều đối tượng: 20 Đối tượng (object) Hoạt động... programming Mơ thức ? ?Lập trình Hướng đối tượng? ?? cải biên procedure programming cách đưa vào ý tưởng object (đối tượng) Đối tượng = Dữ liệu + Hàm thao tác Dữ liệu Chương trình máy tính gồm objects,