BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NGHỀ LTMT

119 476 2
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NGHỀ LTMT

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐỀ CƯƠNG BÀI GIẢNG MƠN HỌC: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG MỤC LỤC Chương I: Phương pháp hướng đối tượng Các phương pháp lập trình 2 Các đặc điểm lập trình hướng đối tượng .2 Xây dựng lớp đối tượng Chương II: Các thành phần lớp Khai báo lớp sở Hàm constructor destructor 15 Hàm in-line 25 Thành phần lớp static 26 Hàm friend 31 Chương III: Đối tượng 35 Đối tượng trỏ 35 Phép gán đối tượng .37 Truyền tham số đối tượng cho hàm 38 Mảng đối tượng .38 Con trỏ this 38 Hàm new delete .39 Chương IV: Hàm định nghĩa chồng 41 Hàm constructor định nghĩa chồng 41 Cách tạo sử dụng hàm copy constructor .42 Hàm định nghĩa chồng .45 Lấy địa hàm định nghĩa chồng .45 Chương V: Toán tử định nghĩa chồng 45 Những khái niệm toán tử chồng 45 Định nghĩa chồng toán tử hai .47 Định nghĩa chồng tốn tử ngơi 47 Toán tử gán ( = ) 47 Một số định nghĩa toán tử chồng 47 Chương VI: Sự kế thừa .56 Các loại kế thừa 56 Đơn kế thừa 58 Đa kế thừa 74 Chương VII: Hàm ảo tính tương ứng bội 79 Hàm ảo 79 Lớp sở ảo .92 Chương VIII: Hàm, lớp Template .95 Khuôn hình hàm 95 Khn hình lớp 107 TÀI LIỆU THAM KHẢO 119 NỘI DUNG Chương I: Phương pháp hướng đối tượng Các phương pháp lập trình a) Phương pháp lập trình tuyến tính: xuất vào ngày đầu phát triển máy tính, phần mềm cịn đơn giản cỡ vài chục dịng lệnh, chương trình viết với câu lệnh thực từ đầu đến cuối b) Lập trình có cấu trúc: Khoa học máy tính ngày phát triển, phần mềm đòi hỏi ngày phức tạp lớn nhiều Lúc phương pháp lập trình tuyến tính tỏ hiệu có trường hợp người lập trình khơng thể kiểm sốt chương trình Phương pháp lập trình có cấu trúc đời, theo cách tiếp cận này, chương trình tổ chức thành chương trình Mỗi chương trình đảm nhận xử lý cơng việc nhỏ tồn hệ thống Mỗi chương trình lại chia nhỏ thành chương trình nhỏ Quá trình phân chia tiếp tục diễn chương trình nhận đủ đơn giản Ta cịn gọi q trình làm mịn dần Các chương trình tương đối độc lập với nhau, phân cơng cho nhóm đảm nhận viết chương trình khác Ngơn ngữ lập trình thể rõ phương pháp lập trình có cấu trúc Pascal Tuy nhiên khó khăn sử dụng phương pháp việc tổ chức liệu hệ thống máy tính, địi hỏi người lập trình phải có kiến thức vững cấu trúc liệu, theo quan điểm lập trình cấu trúc Chương trình = Cấu trúc liệu + Giải thuật Một khó khăn gặp phải giải thuật chương trình phụ thuộc chặt chẽ vào cấu trúc liệu, cần thay đổi nhỏ cấu trúc liệu làm thay đổi giải thuật phải viết lại chương trình Điều rõ ràng khơng thích hợp xây dựng dự án phần mềm lớn c) Sự trừu tượng hóa liệu: phương pháp lập trình đời khắc phục nhược điểm lập trình có cấu trúc d) Lập trình hướng đối tượng Các đặc điểm lập trình hướng đối tượng Hướng đối tượng (object orientation) cung cấp kiểu để xây dựng phần mềm Trong kiểu này, đối tượng (object) lớp (class) khối xây dựng phương thức (method), thông điệp (message), kế thừa (inheritance) cung cấp chế chủ yếu Lập trình hướng đối tượng (OOP – Object Oriented Programming) cách tư mới, tiếp cận hướng đối tượng để giải vấn đề máy tính Thuật ngữ OOP ngày trở nên thông dụng lĩnh vực công nghệ thông tin Khái niệm: Lập trình hướng đối tượng (OOP) phương pháp thiết kế phát triển phần mềm dựa kiến trúc lớp đối tượng Đối tượng (object): Các liệu thị kết hợp vào đơn vị đầy đủ tạo nên đối tượng Đơn vị tương đương với chương trình đối tượng chia thành hai phận chính: phần phương thức (method) phần thuộc tính (property) Trong thực tế, phương thức đối tượng hàm thuộc tính biến, tham số hay nội đối tượng (hay nói cách khác tập hợp liệu nội tạo thành thuộc tính đối tượng) Các phương thức phương tiện để sử dụng đối tượng thuộc tính mơ tả đối tượng có tính chất Các phương thức thuộc tính thường gắn chặt với thực tế đặc tính sử dụng đối tượng Trong thực tế, đối tượng thường trừu tượng hóa qua việc định nghĩa lớp (class) Tập hợp giá trị có thuộc tính tạo nên trạng thái đối tượng Mỗi phương thức hay liệu nội với tính chất định nghĩa (bởi người lập trình) xem đặc tính riêng đối tượng Nếu khơng có lầm lẫn tập hợp đặc tính gọi chung đặc tính đối tượng Lập trình hướng đối tượng phương pháp lập trình có tính chất sau: Tính trừu tượng (abstraction): Đây khả chương trình bỏ qua hay khơng ý đến số khía cạnh thơng tin mà trực tiếp làm việc lên, nghĩa có khả tập trung vào cốt lõi cần thiết Mỗi đối tượng phục vụ "động tử" hồn tất cơng việc cách nội bộ, báo cáo, thay đổi trạng thái liên lạc với đối tượng khác mà không cần cho biết làm cách đối tượng tiến hành thao tác Tính chất thường gọi trừu tượng liệu Tính trừu tượng thể qua việc đối tượng ban đầu có số đặc điểm chung cho nhiều đối tượng khác mở rộng thân đối tượng ban đầu khơng có biện pháp thi hành Tính trừu tượng thường xác định khái niệm gọi lớp trừu tượng hay hay lớp sở trừu tượng Tính đóng gói (encapsulation) che dấu thơng tin (information hiding): Tính chất khơng cho phép người sử dụng đối tượng thay đổi trạng thái nội đối tượng Chỉ có phương thức nội đối tượng cho phép thay đổi trạng thái Việc cho phép mơi trường bên ngồi tác động lên liệu nội đối tượng theo cách hoàn toàn tùy thuộc vào người viết mã Đây tính chất đảm bảo tồn vẹn đối tượng Tính đa hình (polymorphism): Thể thông qua việc gửi thông điệp (message) Việc gửi thơng điệp so sánh việc gọi hàm bên đối tượng Các phương thức dùng trả lời cho thông điệp tùy theo đối tượng mà thơng điệp gửi tới có phản ứng khác Người lập trình định nghĩa đặc tính (chẳng hạn thơng qua tên phương thức) cho loạt đối tượng gần thi hành dùng tên gọi mà thi hành đối tượng tự động xảy tương ứng theo đặc tính đối tượng mà khơng bị nhầm lẫn Thí dụ định nghĩa hai đối tượng "hinh_vuong" "hinh_tron" có phương thức chung "chu_vi" Khi gọi phương thức đối tượng "hinh_vuong" tính theo cơng thức khác với đối tượng "hinh_tron" Tính kế thừa (inheritance): Đặc tính cho phép đối tượng có sẵn đặc tính mà đối tượng khác có thơng qua kế thừa Điều cho phép đối tượng chia sẻ hay mở rộng đặc tính sẵn có mà tiến hành định nghĩa lại Tuy nhiên, ngôn ngữ định hướng đối tượng có tính chất Xây dựng lớp đối tượng Đối tượng khái niệm lập trình hướng đối tượng biểu thị liên kết liệu thủ tục (gọi phương thức) thao tác liệu Ta có cơng thức sau: ĐỐI TƯỢNG = DỮ LIỆU+PHƯƠNG THỨC Ở hiểu đối tượng cơng cụ hỗ trợ cho đóng gói Sự đóng gói chế liên kết lệnh thao tác liệu có liên quan, giúp cho hai an tồn tránh can thiệp từ bên việc sử dụng sai Nhìn chung định nghĩa đối tượng phức tạp so với định nghĩa biến cấu trúc thơng thường, lẽ ngồi việc mơ tả thành phần liệu, ta phải xác định thao tác tác động lên đối tượng Hình 2.1 mô tả đối tượng điểm mặt phẳng: Mỗi đối tượng xác định hai thành phần toạ độ biểu diễn hai biến nguyên Các thao tác tác động lên điểm bao gồm việc xác định toạ độ điểm mặt phẳng toạ độ (thể việc gán giá trị cho hai thành phần toạ độ), thay đổi toạ độ hiển thị kết lên mặt phẳng toạ độ (tương tự việc chấm điểm mặt phẳng đó) Lợi ích việc đóng gói nhìn từ bên ngồi, đối tượng biết tới mô tả phương thức nó, cách thức cài đặt liệu không quan trọng người sử dụng Với đối tượng điểm, người ta quan tâm đến việc thực thao tác mà khơng cần biết thao tác thực nào, điều xảy bên thân đối tượng Ta thường nói “sự trừu tượng hố liệu” (khi chi tiết cài đặt cụ thể giấu đi) Mô tả đối tượng điểm { //dữ liệu int x,y; //phương thức void init(int ox,int oy); void move(int dx,int dy); void display(); }; HÌNH 1.1 MƠ TẢ CÁC ĐỐI TƯỢNG ĐIỂM Đóng gói có nhiều lợi ích góp phần nâng cao chất lượng chương trình Nó làm cho cơng việc bảo trì chương trình thuận lơi nhiều: thay đổi cấu trúc đối tượng ảnh hưởng tới thân đối tượng; người sử dụng đối tượng không cần biết đến thay đổi (với lập trình cấu trúc người lập trình phải tự quản lý thay đổi đó) Chẳng hạn biểu diễn toạ độ điểm dạng số thực, có người thiết kế đối tượng phải quan tâm để sửa lại định nghĩa đối tượng người sử dụng khơng cần hay biết điều đó, miễn thay đổi khơng tác động đến việc sử dụng đối tượng điểm Tương tự vậy, ta bổ sung thêm thuộc tính màu số thao tác lên đối tượng điểm, để có đối tượng điểm màu Rõ ràng đóng gói cho phép đơn giản hoá việc sử dụng đối tượng Trong lập trình hướng đối tượng, đóng gói cho phép liệu đối tượng che lấp nhìn từ bên ngoài, nghĩa người dùng muốn tác động lên liệu đối tượng phải gửi đến đối tượng thông điệp(message) Ở phương thức đóng vai trị giao diện bắt buộc đối tượng người sử dụng Ta có nhận xét: “Lời gọi đến phương thức truyền thông báo đến cho đối tượng” Các thông điệp gửi tới đối tượng gắn chặt với đối tượng đối tượng nhận thơng điệp phải thực theo thơng điệp đó; chẳng hạn đối tượng điểm độc lập với nhau, thông điệp thay đổi toạ độ đối tượng điểm p làm ảnh hưởng đến thành phần toạ độ p thay đổi nội dung đối tượng điểm q khác So với lập trình hướng đối tượng tuý, cài đặt cụ thể đối tượng C++ linh động chút, cách cho phép che dấu phận liệu đối tượng mở rộng khả truy nhập đến thành phần riêng đối tượng Khái niệm lớp sở cho linh động Chương II: Các thành phần lớp Khai báo lớp sở Lớp mơ tả trừu tượng nhóm đối tượng có chất Trong lớp ta đưa mơ tả tính chất thành phần liệu, cách thức thao tác thành phần (hành vi đối tượng), ngược lại đối tượng thể cụ thể cho mơ tả trừu tượng Trong ngơn ngữ lập trình, lớp đóng vai trị kiểu liệu người dùng định nghĩa việc tạo đối tượng ví khai báo biến có kiểu lớp Cú pháp khai báo lớp: class { private: public: }; Ví dụ: khai báo lớp điểm mặt phẳng /*point.cpp*/ #include #include class point { /*khai b¸o c¸c thành phần liệu riêng*/ private: int x,y; /*khai báo hàm thành phần công cộng*/ public: void init(int ox, int oy); void move(int dx, int dy); void display(); }; void point::init(int ox, int oy) { cout

Ngày đăng: 09/10/2014, 22:55

Từ khóa liên quan

Mục lục

  • Chương I: Phương pháp hướng đối tượng

    • 1. Các phương pháp lập trình

    • 2. Các đặc điểm của lập trình hướng đối tượng

    • 3. Xây dựng lớp đối tượng

    • Chương II: Các thành phần của lớp

      • 1. Khai báo một lớp cơ sở

      • 2. Hàm constructor và destructor

      • 3. Hàm in-line

      • 4. Thành phần của lớp là static

      • 5. Hàm friend

      • Chương III: Đối tượng

        • 1. Đối tượng là một con trỏ

        • 2. Phép gán một đối tượng

        • 3. Truyền tham số là đối tượng cho hàm

        • 4. Mảng của các đối tượng

        • 5. Con trỏ this

        • 6. Hàm new và delete

        • Chương IV: Hàm định nghĩa chồng

          • 1. Hàm constructor định nghĩa chồng

          • 2. Cách tạo và sử dụng hàm copy constructor

          • 3. Hàm định nghĩa chồng

          • 4. Lấy địa chỉ hàm định nghĩa chồng

          • Chương V: Toán tử định nghĩa chồng

            • 1. Những khái niệm cơ bản toán tử chồng

            • 2. Định nghĩa chồng toán tử hai ngôi

Tài liệu cùng người dùng

Tài liệu liên quan