Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 90 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
90
Dung lượng
781,59 KB
Nội dung
OOP Cơ hướng đối tượng C++ OOP Tài liệu tham khảo Bài giảng LTHĐT, Trần Minh Châu, Đại học Công nghệ, ĐH Quốc gia HN Bài giảng LTHĐT, Nguyễn Việt Hà, Đại học Công nghệ, ĐH Quốc gia HN Bài giảng LTHĐT, Nguyễn Ngọc Long, ĐH KHTN TPHCM Bài giảng LTHĐT, Huỳnh Lê Tấn Tài, ĐH KHTN TPHCM C++ How to Program, Dietel ……………………… 3/3/2009 OOP Nội dung Giới thiệu lập trình hướng đối tượng Ngôn ngữ C++, điểm so với C Lớp C++ 3/3/2009 OOP Mục tiêu kỹ sư phần mềm Tạo sản phẩm tốt cách có hiệu Nắm bắt công nghệ 3/3/2009 OOP Độ phức tạp độ lớn ngày cao Một số hệ Unix chứa khoảng 4M dòng lệnh MS Windows chứa hàng chục triệu dòng lệnh Người dùng ngày đòi hỏi nhiều chức năng, đặc biệt chức thông minh Phần mềm cần sửa đổi 3/3/2009 OOP Giải pháp Cần kiểm soát chi phí Chi phí phát triển Chi phí bảo trì Giải pháp sử dụng lại (tái sử dụng) Giảm chi phí thời gian phát triển Nâng cao chất lượng 3/3/2009 OOP Để sử dụng lại (mã nguồn) Cần dễ hiểu Được coi xác Có giao diện rõ ràng Tính module hóa Không yêu cầu thay đổi sử dụng chương trình 3/3/2009 OOP Mục tiêu việc thiết kế phần mềm Tính tái sử dụng (reusability): thiết kế thành phần sử dụng nhiều phần mềm khác Tính mở rộng (extensibility): hỗ trợ plug-ins Tính mềm dẻo (flexibility): Có thể dễ dàng thay đổi thêm liệu hay tính Các thay đổi không làm ảnh hưởng nhiều đến toàn hệ thống 3/3/2009 OOP Các phương pháp lập trình Lập trình cấu trúc Lập trình có cấu trúc (lập trình thủ tục),hướng chức Lập trình logic, lập trình hàm Lập trình hướng đối tượng 3/3/2009 OOP Lập trình cấu trúc Là phương pháp xuất ngôn ngữ Assembly, Basic sử dụng biến toàn cục lạm dụng lệnh GOTO Các nhược điểm khó hiểu, khó bảo trì, sử dụng lại chất lượng chi phí cao phát triển ứng dụng lớn 3/3/2009 10 23 24 25 26 27 28 29 30 31 32 33 34 // function that receives arguments of types // char, int, float * and double * char *nothing2( char a, int b, float *c, double *d ) { return 0; } int main() { return 0; } // end main _main @nothing2$qcipfpd @nothing1$qifcpi @square$qd @square$qi // indicates successful termination Mangled names produced in assembly language $q separates the function name from its parameters c is char, d is double, i is int, pf is a pointer to a float, etc Ví dụ OOP Tham số ngầm định lời gọi hàm void inc(int &a, int b = 1); void inc(int &a, int b) { a = a + b; } int x = 5, y = 10; inc(x, 10); inc(y); // x = x + 10 // y = y + Chú ý: Các tham số có giá trị ngầm định phải đặt cuối danh sách tham số, để tránh nhầm lẫn giá trị Các giá trị ngầm định tham số khai báo khuôn mẫu hàm 3/3/2009 77 OOP Default Arguments Function call with omitted parameters If not enough parameters, rightmost go to their defaults Default values • Can be constants, global variables, or function calls Set defaults in function prototype int myFunction( int x = 1, int y = 2, int z = ); myFunction(3) • x = 3, y and z get defaults (rightmost) myFunction(3, 5) • x = 3, y = and z gets default 3/3/2009 78 10 11 12 13 14 15 16 17 18 19 20 21 22 23 // Fig 3.23: fig03_23.cpp // Using default arguments #include using std::cout; using std::endl; Set defaults in function prototype Ví dụ // function prototype that specifies default arguments int boxVolume( int length = 1, int width = 1, int height = ); int main() { // no arguments use default values for all dimensions cout [...]... 3/3/2009 15 OOP Lập trình Hướng đối tượng Trong thế giới thực, chung quanh chúng ta là những đối tượng, đó là các thực thể có mối quan hệ với nhau Ví dụ: các phòng trong một cơng ty Lập trình hướng đối tượng (Object Oriented Programming - LTHĐT) là phương pháp lập trình lấy đối tượng làm nền tảng để xây dựng thuật giải, xây dựng chương trình 3/3/2009 16 OOP Lập trình Hướng đối tượng Lập trình hướng đối tượng. .. phương pháp lập trình dựa trên kiến trúc lớp (class) và đối tượng (object) 3/3/2009 17 OOP Lập trình Hướng đối tượng 18 Lập trình Hướng đối 3/3/2009 OOP Một số khái niệm Đối tượng (object): Trong thế giới thực, khái niệm đối tượng được hiểu như là một thực thể: người, vật hoặc một bảng dữ liệu… Mỗi đối tượng sẽ tồn tại trong một hệ thống và có ý nghĩa nhất định trong hệ thống Đối tượng giúp biểu... dụ 10 k =1 20 gosub 10 0 30 if y > 12 0 goto 60 40 k = k +1 50 goto 20 60 print k, y 70 stop 10 0 y = 3*k*k + 7*k-3 11 0 return 3/3/2009 11 OOP Lập trình có cấu trúc lập trình thủ tục Tổ chức thành các chương trình con(hay các module) Mỗi chương trình con đảm nhận xử lý một cơng việc nhỏ hay một nhóm cơng việc trong tồn bộ hệ thống Mỗi chương trình con này lại có thể chia nhỏ thành các chương trình. .. methods Private: methods 25 OOP Sơ đồ đối tượng Sơ đồ đối tượng dùng để mơ tả các lớp đối tượng Sơ đồ đối tượng bao gồm sơ đồ lớp và sơ đồ thể hiện Sơ đồ lớp mơ tả các lớp đối tượng trong hệ thống, một lớp đối tượng được diễn tả bằng một hình chữ nhật có 3 phần: phần đầu chỉ tên lớp, phần thứ hai mơ tả các thuộc tính phần thứ ba mơ tả các thao tác của các đối tượng trong lớp đó 3/3/2009 26 OOP... (Sinh viên) Nguyễn Văn A 19 84 0 610 234T 9.2 Đi học Đi thi Phân loại Sơ đồ lớp Sơ đồ thể hiện Đối tượng = Dữ liệu + Phương thức 3/3/2009 27 OOP Thiết kế theo hướng đối tượng Trừu tượng hóa dữ liệu và các hàm/thủ tục liên quan Chia hệ thống ra thành các lớp /đối tượng Mỗi lớp /đối tượng có các tính năng và hành động chun biệt Các lớp có thể được sử dụng để tạo ra nhiều đối tượng cụ thể 3/3/2009 28 OOP... programming 3/3/2009 22 OOP Một số khái niệm Lớp: Các đối tượng có các đặc tính tương tự nhau được gom chung lại thành lớp đối tượng Ví dụ Người là một lớp đối tượng Một lớp đối tượng được đặc trưng bằng các thuộc tính, và các hoạt động (hành vi, thao tác) Thuộc tính (attribute) là một thành phần của đối tượng, có giá trị nhất định cho mỗi đối tượng tại mỗi thời điểm trong hệ thống Vd: Tên, Tuổi,... một đối tượng tác động qua lại với các đối tượng khác hoặc với chính nó 23 OOP Một số khái niệm Mỗi thao tác trên một lớp đối tượng cụ thể tương ứng với một cài đặt cụ thể khác nhau Một cài đặt như vậy được gọi là một phương thức (method) Cùng một thao tác(phương thức) có thể được áp dụng cho nhiều lớp đối tượng khác nhau, một thao tác như vậy được gọi là có tính đa hình (polymorphism) Một đối tượng. .. chương trình con nhỏ hơn Chương trình = Cấu trúc dữ liệu + Giải thuật 3/3/2009 12 OOP Lập trình có cấu trúc lập trình thủ tục sử dụng các lệnh có cấu trúc: for, do, while, if then else các ngơn ngữ: Pascal, C, chương trình là tập các hàm/thủ tục Ưu điểm chương trình được module 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 3/3/2009 13 OOP Ví dụ struct Date { int year,... Mỗi đối tượng bao gồm 2 thành phần: thuộc tính và thao tác(hành động) 3/3/2009 19 OOP Ví dụ: một người Một người có các thuộc tính: tên, tuổi, địa chỉ, màu mắt… Các hành động: đi, nói, thở… Một đối tượng là 1 thực thể bao gồm thuộc tính và hành động 3/3/2009 20 OOP Đối tượng trong LTHĐT Tách biệt giữa giao tiếp và cài đặt cụ thể interface Làm cái gì? Làm bằng cách nào? 3/3/2009 Implementation 21 OOP... của OO Các lớp đối tượng - Classes Đóng gói – Encapsulation Thừa kế - Inheritance Đa hình - Polymorphism 3/3/2009 29 OOP Trừu tượng hóa Thế giới thực Trừu tượng hóa Phần mềm Dữ liệu Thuộc tính Thực thể Hành động 3/3/2009 30 hàm OOP Trừu tượng hóa cách nhìn khái qt hóa về một tập các đối tượng có chung các đặc điểm được quan tâm (và bỏ qua những chi tiết khơng cần thiết) 3/3/2009 31 OOP Đóng gói ... phương pháp lập trình Lập trình khơng có cấu trúc Lập trình có cấu trúc (lập trình thủ tục) ,hướng chức Lập trình logic, lập trình hàm Lập trình hướng đối tượng 3/3/2009 OOP Lập trình khơng... LTHĐT) phương pháp lập trình lấy đối tượng làm tảng để xây dựng thuật giải, xây dựng chương trình 3/3/2009 16 OOP Lập trình Hướng đối tượng Lập trình hướng đối tượng phương pháp lập trình dựa kiến... lớp (class) đối tượng (object) 3/3/2009 17 OOP Lập trình Hướng đối tượng 18 Lập trình Hướng đối 3/3/2009 OOP Một số khái niệm Đối tượng (object): Trong giới thực, khái niệm đối tượng hiểu thực