giáo trình lập trình oop - đh bách khoa

107 694 0
giáo trình lập trình oop - đh bách khoa

Đ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

MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide 1 Đối tượng : SV ₫ại học chính quy ngành CNTT Tài liệu tham khảo :  Tập slide bài giảng & thực hành của môn học này.  The C++ Programming Language (special 3rd edition), Bjarne Stroustrup, 2000.  3 CD MSDN trong Microsoft Visual Studio.  Online-Help của môi trường JBuilder MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide 2 Nội dung chính gồm 10 chương : 1. Ôn lại các tính chất của lập trình cấu trúc. 2. Các khái niệm chính của lập trình OOP. 3. Cơ chế dịch mã OOP sang mã máy. 4. Tổng quát về mức ₫ộ hỗ trợ OOP của VC++ & Java. 5. Đặc tả class & các tính chất cơ bản của ₫ối tượng trong VC++. 6. Đặc tả class & các tính chất cơ bản của ₫ối tượng trong Java. 7. Chi tiết về gọi hàm, gởi thông ₫iệp & ₫a xạ của VC++. 8. Chi ti ết về gọi hàm, gởi thông ₫iệp & ₫a xạ của Java. 9. Chi tiết về thường trú, serialization, COM, Generalization & Template của VC++. 10. Chi tiết về thường trú, serialization, Generalization của Java. MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide 3 Chương 1 ÔN LẠI CÁC TÍNH CHẤT CỦA LẬP TRÌNH CẤU TRÚC Chương 1: Ôn lại các tính chất của lập trình cấu trúc Phương pháp phân tích từ-trên-xuống Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide 4 Mỗi sự vật trong môi trường xung quanh ta ₫ều ₫ược cấu thành từ nhiều phần tử nhỏ hơn, mỗi phần tử nhỏ lại ₫ược cấu thành từ nhiều phần tử nhỏ hơn nữa. Thí dụ, con người gồm ₫ầu, mình, tứ chi. Tứ chi gồm 2 tay và 2 chân Mỗi công việc cần giải quyết bằng máy tính cũng ₫ược cấu thành từ nhiều công việc nhỏ hơn, mỗ i công việc nhỏ hơn lại ₫ược cấu thành từ nhiều công việc nhỏ hơn nữa Phương pháp phân tích từ-trên-xuống (top-down analysis) là phương pháp thường sử dụng ₫ể phân tích công việc, nội dung của phương pháp này là cố gắng xác ₫ịnh xem công việc cần giải quyết ₫ược cấu thành từ những công việc nhỏ nào, mỗi công việc nhỏ ₫ược cấu thành từ các công việc nhỏ hơn nào, cứ như v ậy cho ₫ến khi những công việc xác ₫ịnh ₫ược là những công việc thật ₫ơn giản, có thể thực hiện dễ dàng. Thí dụ việc học lấy bằng kỹ sư CNTT khoa CNTT ĐHBK TP.HCM có thể bao gồm 9 công việc nhỏ hơn là học từng học kỳ từ 1 tới 9, học học kỳ i là học n môn học của học kỳ ₫ó, học 1 môn học là học m chương của môn ₫ó, Hình vẽ của slide kế cho thấy trực quan của phương pháp phân tích top-down. Chương 1: Ôn lại các tính chất của lập trình cấu trúc Phương pháp phân tích từ-trên-xuống (tt) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide 5 Công việc cần giải quyết (A) Công việc A 1 Công việc A 2 Công việc A n Công việc A 11 Công việc A 12 Công việc A 1n Công việc A n1 Công việc A n2 Công việc A nn chia thành nhiều công việc nhỏ hơn, ₫ơn giản ₫ể giải quyết hơn. Các công việc ₫ủ nhỏ ₫ể ₫ược miêu tả bằng 1 lệnh hay 1 lời gọi hàm/thủ tục ₫ã có. Chương 1: Ôn lại các tính chất của lập trình cấu trúc Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide 6 Tầm vực truy xuất biến  Tầm vực của một biến là tập các lệnh ₫ược phép truy xuất biến ₫ó.  C và C++ cho phép 3 cấp ₫ộ tầm vực sau : o cục bộ trong function : bất kỳ lệnh nào trong function ₫ều có thể truy xuất ₫ược biến cục bộ trong function ₫ó. void Command1_Click() { char strGreeting[256]; // Khai báo cục bộ } o cục bộ trong module : bất kỳ lệnh nào trong module ₫ều có thể truy xuất ₫ược biến cục bộ trong module ₫ó. static char strAddr[256]; // biến cục bộ trong module char strName[256]; // biến toàn cục o toàn cục : bất kỳ lệnh nào trong chương trình cũng có thể truy xuất ₫ược biến toàn cục.  Trong một ngữ cảnh (cùng 1 function, cùng 1 module, hay cấp toàn cục), không thể dùng hai biến cùng tên (C phân biệt chữ HOA và chữ thường). Chương 1: Ôn lại các tính chất của lập trình cấu trúc Cấu trúc 1 chương trình hướng cấu trúc Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide 7 Chương trình = cấu trúc dữ liệu + giải thuật entry 'start' global data module (package) local data of module local data of function Chương 1: Ôn lại các tính chất của lập trình cấu trúc Cấu trúc 1 chương trình hướng cấu trúc Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide 8  Thành phần “giải thuật” bao gồm code ₫ược viết trong các module. Trong từng module, code ₫ược gom nhóm thành những hàm chức năng, mỗi hàm ₫ược nhận dạng và truy xuất thông qua tên hàm.  Thành phần “dữ liệu” bao gồm các biến dữ liệu ₫ược ₫ịnh nghĩa trong các module. Trong từng module, về mặt tầm vực truy xuất, các biến có thể ₫ược ₫ịnh nghĩa 1 trong 2 cấp tầm vực :  Public : bất kỳ lệnh nào của chương trình ₫ều có thể truy xuất ₫ược.  Private : chỉ có các lệnh trong module hiện hành mới có thể truy xuất.  Ngoài ra trong từng hàm chức năng, người ta có thể ₫ịnh nghĩa các biến cục bộ, các biến này chỉ ₫ược truy xuất cục bộ bởi các lệnh trong hàm tương ứng. Ngoại lệ, trong 1 số ngôn ngữ như C, người ta cho phép ₫ịnh nghĩa biến trong lệnh thực thi (block — compose), biến này chỉ ₫ược truy xuất cục bộ bởi các lệnh trong thân của lệnh block tương ứng. Ö ₫iểm yếu nhất trong ngôn ngữ h ướng cấu trúc là cho phép ₫ịnh nghĩa biến toàn cục, nếu biến này bị lỗi, ta rất khó xác ₫ịnh nguyên nhân gây lỗi. Việc mang 1 hàm hay 1 module của ứng dụng này sang ứng dụng khác cũng sẽ khó khăn vì thường gây ra hiệu ứng “dây chuyền”. Chương 1: Ôn lại các tính chất của lập trình cấu trúc Cấu trúc 1 chương trình hướng cấu trúc Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide 9  Xét Turbo Pascal, 1 ứng dụng gồm 1 module chương trình và nhiều module dịch vụ ₫ược gọi là Unit. Để sử dụng các thành phần trong 1 module nào ₫ó, ta phải dùng lệnh Use.  Xét C, 1 ứng dụng gồm nhiều module ngang hàng, mỗi module là 1 file gồm nhiều hàm chức năng. Điểm nhập ứng dụng là hàm main(). Module C cũng có thể là file thư viện liên kết tĩnh (*.lib) hay ₫ộng (*.dll). Để sử dụng các thành phần trong 1 module nào ₫ó, ta phải dùng lệnh #include. Chương 1: Ôn lại các tính chất của lập trình cấu trúc Mối quan hệ client/server giữa các module Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide 10 //₫ặc tả interface của module B : server extern int B_intA; typedef struct { } B_Type1; #define B_MAXLEN 1024 int B_func1(char c, char* d); //₫ặc tả interface của module A : client #include B.h extern int A_intA; typedef struct { } A_Type1; #define A_PI 3.14159 int A_func1(int a, double b); #include B.h //hiện thực của module B int B_intA; static int B_intB; int B_func1(int a, double b) { B_func2(a); } static void B_func2(int a) { } #include A.h //hiện thực của module A int A_intA; static int A_intB; int A_func1(int a, double b) { B_Type1 var; B_intA = B_MAXLEN; A_func2(a); B_func1(a,b); } static void A_func2(int a) { } Chương 1: Ôn lại các tính chất của lập trình cấu trúc [...]... void B_func2(int a) { } Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Chương 1: Ôn lại các tính chất của lập trình cấu trúc Slide 11 MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Chương 2 CÁC KHÁI NIỆM CHÍNH CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lập trình hướng ₫ối tượng... Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lập trình hướng ₫ối tượng Slide 31 MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Chương 3 CƠ CHẾ DỊCH MÃ HƯỚNG ĐỐI TƯỢNG SANG MÃ MÁY Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Chương 3: Cơ chế dịch mã OOP sang mã máy Slide 32 Tổng quát về vấn ₫ề dịch OOP Chương trình là tập các... 2.9 Tính thường trú Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lập trình hướng ₫ối tượng Slide 13 Cấu trúc chương trình OOP Chương trình = tập các ₫ối tượng tương tác nhau Đối tượng (object) entry local data of object local data of operation Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng... tượng sống ₫ộc lập và tương tác lẫn nhau khi cần thiết Các ₫ối tượng thuộc 1 số loại nhất ₫ịnh (n) Mỗi loại ₫ối tượng ₫ược miêu tả bởi 1 type & 1 class Mã nguồn chương trình là tập n ₫ịnh nghĩa type & class Dịch chương trình OOP là qui trình lặp dịch n type & n class Ta sẽ miêu tả qui trình dịch 1 type và 1 class trong chương này Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng... ₫oạn lập trình ngược với tính thừa kế : supertype/superclass là type/class tổng quát hóa của các con của nó Thường dùng ngữ nghĩa này trong giai ₫oạn phân tích/thiết kế phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lập trình hướng ₫ối tượng Slide 29 Tính thường trú (persistence) Thời gian sống của 1 ₫ối tượng ₫ộc lập với... cho 2 bước duyệt từ vựng & phân tích cú pháp Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Chương 3: Cơ chế dịch mã OOP sang mã máy Slide 35 Dịch thuộc tính dữ liệu class → cấu trúc record class C1 : C0 { double d; int i ; public : int proc4(int i); void proc5 (double d); }; Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM typedef struct { // import các field... tcp port are we going to use? }; Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lập trình hướng ₫ối tượng Slide 20 Tính bao ₫óng (encapsulation) Bao ₫óng : che dấu mọi chi tiết hiện thực của ₫ối tượng, không cho bên ngoài thấy và truy xuất ⇒ tạo ₫ộ ₫ộc lập cao giữa các ₫ối tượng (hay tính kết dính - cohesion giữa các ₫ối tượng rất... niệm chính của lập trình hướng ₫ối tượng Slide 14 Cấu trúc chương trình OOP Cấu trúc chương trình hướng ₫ối tượng rất thuần nhất, chỉ chứa 1 loại thành phần : ₫ối tượng Các ₫ối tượng có tính ₫ộc lập rất cao ⇒ quản lý, kiểm soát chương trình rất dễ (cho dù chương trình có thể rất lớn) ⇒ dễ nâng cấp, bảo trì Không thể tạo ra dữ liệu toàn cục của chương trình ⇒ ₫iểm yếu nhất của chương trình cấu trúc... có thể là 1 session của máy ảo (JVM) hay lâu dài (thông qua ₫ĩa cứng, CDROM) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lập trình hướng ₫ối tượng Slide 30 Tổng kết Mô hình hướng ₫ối tượng quan niệm thế giới (hay chương trình) bao gồm các ₫ối tượng ₫ộc lập sống chung và tương tác lẫn nhau Các ₫ặc ₫iểm chính của mô hình hướng ₫ối... }; Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lập trình hướng ₫ối tượng Slide 23 Tính bao gộp (aggregation) 1 ₫ối tượng có thể chứa nhiều ₫ối tượng khác ⇒ tạo nên mối quan hệ bao gộp 1 cách ₫ệ quy giữa các ₫ối tượng Có 2 góc nhìn về tính báo gộp : ngữ nghĩa & hiện thực Góc nhìn ngữ nghĩa Góc nhìn hiện thực O2 O2 O1 O1 O3 Khoa . CỦA LẬP TRÌNH CẤU TRÚC Chương 1: Ôn lại các tính chất của lập trình cấu trúc Phương pháp phân tích từ-trên-xuống Khoa Công nghệ Thông tin Trường ĐH Bách Khoa. lại các tính chất của lập trình cấu trúc MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Lập trình hướng ₫ối tượng Slide

Ngày đăng: 17/02/2014, 15:11

Từ khóa liên quan

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

Tài liệu liên quan