Bài giảng Lập trình hướng đối tượng (OOP): Ôn tập
lượt xem 6
download
Bài giảng Lập trình hướng đối tượng (OOP): Ôn tập sau đây sẽ giúp cho các bạn hệ thống lại những kiến thức về khái niệm OOP; khai báo lớp; Overloading; kế thừa trong lập trình hướng đối tượng; tính đa hình trong lập trình hướng đối tượng.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hướng đối tượng (OOP): Ôn tập
- LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (OOP) ÔN TẬP
- NỘI DUNG • Khái niệm OOP • Khai báo lớp • Overloading • Kế thừa • Đa hình 11/26/15 Khoa Công nghệ phần mềm 2
- Khái niệm • Objectoriented programming (OOP) – Đóng gói dữ liệu(thuộc tính) và chức năng(hành vi) thành gói gọi là lớp(class) • Che dấu dữ liệu(Information hiding) – Các đối tượng của lớp giao tiếp thông qua giao diện. – Chi tiết cài đặt được che dấu. • Kiểu dữ liệu người dùng định nghĩa: classes – Data (data members) – Functions (member functions or methods) – Class instance: object 3
- Lịch sử C++ – Mở rộng của C – Đầu thập niên 1980: Bjarne Stroustrup (Bell Laboratories) – Cung cấp khả năng lập trình hướng đối tượng • Objects • Objectoriented programs – Ngôn ngữ lai • Clike style • Objectoriented style • Both 4
- Cài đặt lớp Time • Lớp – Mô hình đối tượng • Thuộc tính (data members) • Hành vi (member functions) – Khai báo với từ khóa class – Member functions • Methods • Invoked in response to messages • Từ khoá xác định phạm vi truy cập – public: • Truy cập bởi đối tượng của lớp ở bất cứ nơi nào – private: • Truy cập bởi các hàm thành viên của lớp – protected: 5
- Cài đặt lớp Time • Hàm khởi tạo – Hàm thành viên đặc biệt • Khởi tạo các dư liệu thành viên • Tên trùng với tên lớp – Tự động thực thi khi đối tượng được khởi tạo – Có thể có nhiều hàm khởi tạo – Không có giá trị trả về 6
- 1 class Time { 2 Nguyên mẫu hàm cuả các 3 public: Lớp bắt đầu với từ khóa hàm thành viên public 4 Time(); class. // constructor Class Time 5 void setTime( int, int, int ); // set hour, minute, second Phạm vi truy cập definition 6 void printUniversal(); // print universal-time format (1 of 1) 7 void printStandard(); // print standard-time format private data members 8 Hàm khởi tạo 9 private: 10 int hour; // 0 - 23 (24-hour clock format) 11 int minute; // 0 - 59 12 int second; // 0 - 59 13 14 }; // end class Time
- Cài đặt lớp Time Time sunset; // object of type Time Time arrayOfTimes[ 5 ]; // array of Time objects Time *pointerToTime; // pointer to a Time object Time &dinnerTime = sunset; // reference to a Time object 8
- 6.5 Implementing a Time Abstract Data Type with a class • Member functions defined outside class – Binary scope resolution operator (::) • “Ties” member name to class name • Uniquely identify functions of particular class • Different classes can have member functions with same name – Format for defining member functions ReturnType ClassName::MemberFunctionName( ){ … } – Does not change whether function public or private • Member functions defined inside class – Do not need scope resolution operator, class name – Compiler attempts inline • Outside class, inline explicitly with keyword inline 9
- 1 // Fig. 6.3: fig06_03.cpp 2 // Time class. 3 #include 4 fig06_03.cpp 5 using std::cout; (1 of 5) 6 using std::endl; 7 8 #include 9 10 using std::setfill; 11 using std::setw; Define class Time. 12 13 // Time abstract data type (ADT) definition 14 class Time { 15 16 public: 17 Time(); // constructor 18 void setTime( int, int, int ); // set hour, minute, second 19 void printUniversal(); // print universal-time format 20 void printStandard(); // print standard-time format 21
- 22 private: 23 int hour; // 0 - 23 (24-hour clock format) 24 int minute; // 0 - 59 25 int second; // 0 - 59 fig06_03.cpp 26 (2 of 5) 27 }; // end class Time 28 Constructor initializes 29 // Time constructor initializes each data member to zero and 30 // ensures all Time objects start in a consistent state private data members 31 Time::Time() to 0. 32 { 33 hour = minute = second = 0; 34 35 } // end Time constructor 36 37 // set new Time value using universal time, perform validity 38 // checks on the data values and set invalid values to zero public member 39 void Time::setTime( int h, int m, int s ) function checks 40 { parameter values for 41 hour = ( h >= 0 && h < 24 ) ? h : 0; validity before setting 42 minute = ( m >= 0 && m < 60 ) ? m : 0; private data 43 second = ( s >= 0 && s < 60 ) ? s : 0; members. 44 45 } // end function setTime 46
- 47 // print Time in universal format 48 void Time::printUniversal() 49 { 50 cout
- 70 // output Time object t's initial values 71 cout
- 93 cout
- 6.5 Implementing a Time Abstract Data Type with a class • Hàm hủy – Trùng tên với tên lớp nhưng bắt đầu bởi ~ – Không tham số – Duy nhất – Làm nhiệm vụ dọn dẹp 15
- 6.5 Implementing a Time Abstract Data Type with a class • Lợi ích của dùng lớp – Lập trình đơn giản – Che dấi cài đặt – Tái sử dụng phần mềm • Composition (aggregation) – Class objects included as members of other classes • Inheritance – New classes derived from old 16
- 6.6 Class Scope and Accessing Class Members • Class scope – Data members, member functions – Within class scope • Class members – Immediately accessible by all member functions – Referenced by name – Outside class scope • Referenced through handles – Object name, reference to object, pointer to object • File scope – Nonmember functions 17
- 6.6 Class Scope and Accessing Class Members • Function scope – Variables declared in member function – Only known to function – Variables with same name as classscope variables • Classscope variable “hidden” – Access with scope resolution operator (::) ClassName::classVariableName – Variables only known to function they are defined in – Variables are destroyed after function completion 18
- 6.6 Class Scope and Accessing Class Members • Operators to access class members – Identical to those for structs – Dot member selection operator (.) • Object • Reference to object – Arrow member selection operator (->) • Pointers 19
- 6.8 Controlling Access to Members • Access modes – private • Default access mode • Accessible to member functions and friends – public • Accessible to any function in program with handle to class object – protected • Chapter 9 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - TS. Trần Công Án
57 p | 89 | 13
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p | 174 | 12
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p | 140 | 9
-
Bài giảng Lập trình hướng đối tượng C++ - Chương 2: Lập trình hướng đối tượng
53 p | 46 | 8
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p | 80 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 120 | 8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p | 103 | 8
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 197 | 7
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - ThS. Trịnh Thành Trung
53 p | 87 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Minh Thái
40 p | 116 | 6
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p | 100 | 6
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p | 63 | 5
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p | 99 | 5
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p | 104 | 4
-
Bài giảng Lập trình hướng đối tượng: Nhập môn - Trần Phước Tuấn
15 p | 139 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p | 11 | 4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p | 15 | 3
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Nguyễn Khanh Văn
0 p | 83 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn