Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 62 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
62
Dung lượng
289 KB
Nội dung
Object Oriented Programming GV:Nguyễn Thanh Hiên Email:nthien@lotus.edu.vn Chương 1:Nhập môn Phương pháp luận lập trình cấu trúc Phương pháp luận lập trình hướng đối tượng Các tính chất lập trình hướng đối tượng Các ưu điểm lập trình hướng đối tượng Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang Phương pháp luận luận lập trình cấu trúc ● Dữ liệu chương trình cấu trúc nhiều đa dạng Để truy xuất liệu ta cần: – Tên nhận dạng; – kiểu liệu miêu tả cấu trúc liệu; – Tầm vực truy xuất (giới hạn User truy xuất liệu) ● Trong lập trình cấu trúc, việc sử dụng chương trình cho phép cấu trúc chương trình, sử dụng lại code, Program = Data Structures + Algorithms Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang Phương pháp luận luận lập trình cấu trúc Program = Data Structures + Algorithms Module Globla data (Package) Local data of module Entry (start) Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Local data of function Trang Tại OOP phổ biến? ● “imperative” languages require you to think in terms of the structure of the computer rather than the structure of the problem and establish the association between the machine model and model of problem ● Early languages chose particular views of the world and were a good solution to the particular class of problem ● The object-oriented approach provides tools for the programmer to represent elements in the problem space This representation is general enough that the programmer is not constrained to any particular type of problem ● OOP allows you to describe the problem in terms of the problem, rather than in terms of the computer Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang Phương pháp luận lập trình hướng đối tượng Program =Group objects interact each other Object Local data of object Entry Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Local data of operation Trang Các tính chất lập trình hướng đối tượng ● Everything is an object ● A program is a bunch of objects telling each other what to by sending messages ● Each object has its own memory made up of other objects ● Every object has a type ● All objects of a particular type can receive the same messages Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang Chương 2:Các khái niệm sở Nội dung ● Object, attribute, method ● Abstract data type ● Class ● Message ● Encapsulation ● Inheritance ● Polymorphism ● Aggregation ● Generalization ● Persistence Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang Object ● Bao gồm – Thuộc tính: mang giá trị định thời điểm (thể tính chất đối tượng) – Tác vụ (Operation): thực công việc (tương ứng với hành vi đối tượng) PERSON Các tính chất chung đối tượng thuộc kiểu PERSON Height Weight BirthDay Age Walk() Run() Talk() Type name Các thuộc tính PERSON Anh; PERSON Hoang; Các tác vụ Anh Hoang Object thuộc kiểu PERSON Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang Abstract data type ● Abstract type định nghĩa Interface sử dụng đối tượng ● Interface tập hơp entry mà bên giao tiếp với đối tượng ● Dùng signature để định nghĩa entry, signature bao gồm: – Tên mthod (operation) – Danh sách đối số hình thức, đối số định nghĩa ba thuộc tính: tên, type, chiều chuyển động(IN, OUT, INOUT) – Đặc tả chức method (thường thích) ● Dùng Abstract type để đặc tả kiểu cho biến, thuộc tính, tham số hình thức ● User không quan tâm đến Class đối tượng Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang 10 Static members (thành viên tĩnh) ● Static variable (biến thành viên tĩnh) – Là thuộc tính class, đối tượng – Chỉ bảng copy cho tất đối tượng class – Tương đương biến toàn cục, tầm vực giới hạn phạm vi class chứa biến – Được khởi tạo lần chung cho đối tượng class – Tồn đối tượng class tồn – Có thể public, private protected Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang 48 Static members (thành viên tĩnh) (tt) ● Static variable (biến thành viên tĩnh) – Nếu khai báo public, static variable truy xuất vị trí theo qui tắc: tên class :: tên biến – Nếu khai báo private, static variable truy xuất hàm thành viên tĩnh (static member function) public ● Static function – Không truy xuất non-static member – Không return this pointer – Qui tắc gọi: tên class:: tên function ● Các static member tồn độc lập với đối tượng Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang 49 Static members (thành viên tĩnh) (tt) #ifndef EMPLOYEE_H #define EMPLOYEE_H class Employee { public: Employee( const char *, const char * ); //constructor ~Employee(); // destructor const char *getFirstName() ; // return first name const char *getLastName() ; // return last name static int getCount(); // trả số đối tượng sinh 10 private: 11 char *firstName; 12 char *lastName; 13 static int count; // số đối tượng sinh 14 }; Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang 50 Static members (thành viên tĩnh) (tt) #include "employee.h" int Employee::count = 0; int Employee::getCount() { return count; } Employee::Employee(const char *first, const char *last ){ 10 11 12 13 } firstName = new char[ strlen( first ) + ]; strcpy( firstName, first ); lastName = new char[ strlen( last ) + ]; strcpy( lastName, last ); ++count; // increment static count of employees Trường Cao Đẳng Hoa Sen – Khoa Công Nghệ Thông Tin Trang 51 Static members (thành viên tĩnh) (tt) 14 15 16 17 18 19 20 21 22 23 24 25 26 Employee::~Employee() { cout