Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 107 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
107
Dung lượng
506,63 KB
Nội dung
MÔN LẬPTRÌNH HƯỚNG ĐỐI TƯỢNG
Khoa Công nghệ Thông tin
Trường ĐHBáchKhoa Tp.HCM
Môn : Lậptrì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ẬPTRÌNH HƯỚNG ĐỐI TƯỢNG
Khoa Công nghệ Thông tin
Trường ĐHBáchKhoa Tp.HCM
Môn : Lậptrì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ậptrình cấu trúc.
2. Các khái niệm chính của lậptrì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ẬPTRÌNH HƯỚNG ĐỐI TƯỢNG
Khoa Công nghệ Thông tin
Trường ĐHBáchKhoa Tp.HCM
Môn : Lậptrình hướng ₫ối tượng
Slide 3
Chương 1
ÔN LẠI CÁC TÍNH CHẤT
CỦA LẬPTRÌNH CẤU TRÚC
Chương 1: Ôn lại các tính chất của lậptrì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 ĐHBáchKhoa Tp.HCM
Môn : Lậptrì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ậptrì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 ĐHBáchKhoa Tp.HCM
Môn : Lậptrì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ậptrình cấu trúc
Khoa Công nghệ Thông tin
Trường ĐHBáchKhoa Tp.HCM
Môn : Lậptrì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ậptrì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 ĐHBáchKhoa Tp.HCM
Môn : Lậptrì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ậptrì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 ĐHBáchKhoa Tp.HCM
Môn : Lậptrì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ậptrì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 ĐHBáchKhoa Tp.HCM
Môn : Lậptrì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ậptrì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 ĐHBáchKhoa Tp.HCM
Môn : Lậptrì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ậptrình cấu trúc
[...]... void B_func2(int a) { } Khoa Công nghệ Thông tin Trường ĐHBáchKhoa Tp.HCM Môn : Lậptrình hướng ₫ối tượng Chương 1: Ôn lại các tính chất của lậptrình cấu trúc Slide 11 MÔN LẬPTRÌNH HƯỚNG ĐỐI TƯỢNG Chương 2 CÁC KHÁI NIỆM CHÍNH CỦA LẬPTRÌNH HƯỚNG ĐỐI TƯỢNG Khoa Công nghệ Thông tin Trường ĐHBáchKhoa Tp.HCM Môn : Lậptrình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lậptrình hướng ₫ối tượng... Thông tin Trường ĐHBáchKhoa Tp.HCM Môn : Lậptrình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lậptrình hướng ₫ối tượng Slide 31 MÔN LẬPTRÌ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 ĐHBáchKhoa Tp.HCM Môn : Lậptrì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 ĐHBáchKhoa Tp.HCM Môn : Lậptrình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lậptrình hướng ₫ối tượng Slide 13 Cấu trúc chương trìnhOOP 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 ĐHBáchKhoa Tp.HCM Môn : Lậptrì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ìnhOOP là qui trìnhlặ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 ĐHBáchKhoa Tp.HCM Môn : Lậptrình hướng... ₫oạn lậptrì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 ĐHBáchKhoa Tp.HCM Môn : Lậptrình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lậptrì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 ĐHBáchKhoa Tp.HCM Môn : Lậptrì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 ĐHBáchKhoa Tp.HCM typedef struct { // import các field... tcp port are we going to use? }; Khoa Công nghệ Thông tin Trường ĐHBáchKhoa Tp.HCM Môn : Lậptrình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lậptrì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ậptrình hướng ₫ối tượng Slide 14 Cấu trúc chương trìnhOOP 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 ĐHBáchKhoa Tp.HCM Môn : Lậptrình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lậptrì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 ĐHBáchKhoa Tp.HCM Môn : Lậptrình hướng ₫ối tượng Chương 2 : Các khái niệm chính của lậptrì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