intTypePromotion=1
ADSENSE

Bài giảng Lập trình hướng đối tượng (OOP): Ôn tập

Chia sẻ: Lavie Lavie | Ngày: | Loại File: PPT | Số trang:184

102
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình hướng đối tượng (OOP): Ôn tập

  1. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (OOP) ÔN TẬP
  2. 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
  3. Khái niệm • Object­oriented 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
  4. 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 • Object­oriented programs – Ngôn ngữ lai • C­like style • Object­oriented style • Both 4
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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    
  11. 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    
  12. 47    // print Time in universal format 48    void Time::printUniversal() 49    { 50     cout
  13. 70     // output Time object t's initial values 71     cout
  14. 93     cout
  15. 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
  16. 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
  17. 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
  18. 6.6 Class Scope and Accessing Class  Members  • Function scope – Variables declared in member function – Only known to function – Variables with same name as class­scope variables • Class­scope 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2