Hướng đối tượng - Giới thiệu
Khái niệm về lập trình hướng đối tượngI. Lập trình hướng đối tượng là gì ?I. Lập trình hướng đối tượng là gì ?Lập trình hướng đối tượng (OOP - Object Lập trình hướng đối tượng (OOP - Object Oriented Programming) cho phép phân tích và Oriented Programming) cho phép phân tích và thiết kế ứng dụng thành các thực thể hoặc đối thiết kế ứng dụng thành các thực thể hoặc đối tượng tượng sao cho các tiến trình (process) sao lặp sao cho các tiến trình (process) sao lặp càng sát càng tốt quá trình tư duy của con càng sát càng tốt quá trình tư duy của con người.người.Trong OOP mã (code) và dữ liệu (data) hợp nhất Trong OOP mã (code) và dữ liệu (data) hợp nhất thành một nội dung không thể chia cắt : thành một nội dung không thể chia cắt : Một đối Một đối tượng !tượng !Đứng trước bài toán ta không còn bĐứng trước bài toán ta không còn bââng khung khuââng ng chia bài toán thành các thủ tục mà giờ đây ta chỉ chia bài toán thành các thủ tục mà giờ đây ta chỉ chú tâm vào các đối tượng mà thôi. chú tâm vào các đối tượng mà thôi. Khái niệm về lập trình hướng đối tượngII. Một số khái niệm trong lập trình hướng đối tượngII. Một số khái niệm trong lập trình hướng đối tượngĐối tượng (Object)Đối tượng (Object) là một modune tập hợp là một modune tập hợp các biến, các cấu trúc dữ liệu, các thủ tục các biến, các cấu trúc dữ liệu, các thủ tục liên quan một cách hoàn chỉnh nhằm giải liên quan một cách hoàn chỉnh nhằm giải quyết một vấn đề.quyết một vấn đề.Trong OOP, các objects có các qui tắc được Trong OOP, các objects có các qui tắc được thiết kế sẳn để giao tiếp với nhau .thiết kế sẳn để giao tiếp với nhau .Đối tượng: NGƯỜIĐối tượng: XE Tên: Nguyệt VyTuổi: 24Phái: NữTrọng lượng: 50 (kg)Các hành vi:ĐiNgồiNóiNgủBước xuốngBước lênMô hình: Xe thổ mộ.Màu: Cánh gián.Năm: 1960Số bánh: 2Các hành vi:ChạyNgừngTăng tốcChở Người láiGởi thông điệp: “Xuống xe!”Ngừng đây! Thưa cô.Tiếp tục Khái niệm về lập trình hướng đối tượngIII. Các ngôn ngữ hỗ trợ lập trình hướng đối tượngIII. Các ngôn ngữ hỗ trợ lập trình hướng đối tượngSimula:Simula: Ngôn ngữ được phát triển trong những năm 1962 đến 1967 bởi Ngôn ngữ được phát triển trong những năm 1962 đến 1967 bởi Ole-Johan Dahl và Kristen Nygaard tại Norwegian Computing Ole-Johan Dahl và Kristen Nygaard tại Norwegian Computing Center, Oslo, Norway. Center, Oslo, Norway. Smalltalk: Smalltalk: Do Alan Key phát triển vào đầu các năm 1970s, tại Palo Alto Do Alan Key phát triển vào đầu các năm 1970s, tại Palo Alto Research Center (Xerox Corporation). Smalltalk làm một cuộc cách Research Center (Xerox Corporation). Smalltalk làm một cuộc cách mạng bằng cách dùng giao diện đồ họa (Graphical user interface - mạng bằng cách dùng giao diện đồ họa (Graphical user interface - GUI) cho phép người dùng sử dụng thiết bị chuột.GUI) cho phép người dùng sử dụng thiết bị chuột.C++ :C++ :Ngôn ngữ OOP phổ biến nhất, phát triển bởi Bjarne Stroustrup tại Ngôn ngữ OOP phổ biến nhất, phát triển bởi Bjarne Stroustrup tại Bell Laboratories trong đầu những năm 1980s. Bell Laboratories trong đầu những năm 1980s. Java:Java:Vào 1995 Sun Microsystems, Inc., phát hành Java, ngôn ngữ OOP Vào 1995 Sun Microsystems, Inc., phát hành Java, ngôn ngữ OOP có thể chạy trên phần lớn máy tính bất kể thuộc platform nào.có thể chạy trên phần lớn máy tính bất kể thuộc platform nào. v.vv.v Khái niệm về lập trình hướng đối tượngLỚP (CLASS) LỚP (CLASS) Một lớp là một cách gom / nhóm các đối Một lớp là một cách gom / nhóm các đối tượng có cùng tính chất, cách ứng xử và tượng có cùng tính chất, cách ứng xử và các mối quan hệ chungcác mối quan hệ chungLớp: ĐA GIÁCCác tính chất:Các đỉnhMàu viềnMàu tôCác phương thức:VẻXóaDờiCác đối tượng:Tiếp tục Khái niệm về lập trình hướng đối tượngTÍNH CHẤT (PROPERTIES) VÀ PHƯƠNG THỨC (METHOD)TÍNH CHẤT (PROPERTIES) VÀ PHƯƠNG THỨC (METHOD)Một đặc tính cần có của một đối tượng Một đặc tính cần có của một đối tượng hoặc một thực thể khi được biểu thị trong hoặc một thực thể khi được biểu thị trong một lớp gọi là một một lớp gọi là một tính chấttính chất Một hành vi cần có của một đối tượng Một hành vi cần có của một đối tượng hoặc một thực thể khi được biểu thị trong hoặc một thực thể khi được biểu thị trong một lớp gọi là một một lớp gọi là một phương thứcphương thức Tiếp tục Khái niệm về lập trình hướng đối tượngTÍNH TRỪU TƯỢNG HÓA (ABSTRACTION)TÍNH TRỪU TƯỢNG HÓA (ABSTRACTION)Trừu tượng hóa dữ liệu là tiến trình định Trừu tượng hóa dữ liệu là tiến trình định danh các tính chất và các phương thức danh các tính chất và các phương thức liên quan đến một đối tượng cụ thể thích liên quan đến một đối tượng cụ thể thích ứng với ứng dụng cần xây dựng.ứng với ứng dụng cần xây dựng.Lớp: ĐA GIÁCCác tính chất:Các đỉnhMàu viềnMàu tôDiện tíchCác phương thức:VẻXóaDờiTiếp tục Khái niệm về lập trình hướng đối tượngTÍNH THỪA KẾ (INHERITANCE)TÍNH THỪA KẾ (INHERITANCE)Thừa kế là tính chất cho phép dùng lại Thừa kế là tính chất cho phép dùng lại một lớp hiện có để xây dựng một lớp mớimột lớp hiện có để xây dựng một lớp mớiSiêu lớp là lớp từ đó một lớp khác thừa kế Siêu lớp là lớp từ đó một lớp khác thừa kế các tính chất và phương thức.các tính chất và phương thức.Lớp mà thừa kế các tính chất và phương Lớp mà thừa kế các tính chất và phương thức của một lớp khác gọi là lớp conthức của một lớp khác gọi là lớp conLớp : Động vậtLớp con: Côn trùng Lớp con: Loài Bò sátLớp con: Loài có vúLớp con: Bọ cánh cứngTiếp tục Khái niệm về lập trình hướng đối tượngTÍNH ĐÓNG GÓI (ENCAPSULATION)TÍNH ĐÓNG GÓI (ENCAPSULATION)Đóng gói là tiến trình cho phép che có Đóng gói là tiến trình cho phép che có chọn lọc các tính chất và các phương thức chọn lọc các tính chất và các phương thức trong một lớp.trong một lớp.Đóng gói là tiến trình cho phép phô diễn Đóng gói là tiến trình cho phép phô diễn có chọn lọc các tính chất và các phương có chọn lọc các tính chất và các phương thức trong một lớp.thức trong một lớp.HỘP ĐENDời qua phải 50 pixelDời xong rồi nhá!Tiếp tục Khái niệm về lập trình hướng đối tượngKHẢ NĂNG DÙNG LẠI (REUSABILITY)KHẢ NĂNG DÙNG LẠI (REUSABILITY)Là khả năng chia sẻ thông tin bên trong Là khả năng chia sẻ thông tin bên trong một ứng dụng.một ứng dụng.Là khả năng cho phép dùng lại các thiết Là khả năng cho phép dùng lại các thiết kế và mã chương trình trong các đề án kế và mã chương trình trong các đề án (project) khác(project) khácTiếp tục Khái niệm về lập trình hướng đối tượngTÍNH ĐA THỂ (POLYMORPHISM)TÍNH ĐA THỂ (POLYMORPHISM)Tính đa thể cho phép cùng một phương Tính đa thể cho phép cùng một phương thức sẽ ứng xử khác nhau trên các lớp thức sẽ ứng xử khác nhau trên các lớp khác nhau.khác nhau.Lớp: Hình thểCác tính chất:Màu viềnMàu tôCác phương thức:VẼXóaDờiLớp con: Đa giác Lớp con: EllipLớp con: KhốiVẼVẼVẼ . trình hướng đối tượngI. Lập trình hướng đối tượng là gì ?I. Lập trình hướng đối tượng là gì ?Lập trình hướng đối tượng (OOP - Object Lập trình hướng đối tượng. vào các đối tượng mà thôi. chú tâm vào các đối tượng mà thôi. Khái niệm về lập trình hướng đối tượngII. Một số khái niệm trong lập trình hướng đối tượngII.