Giáo án - Bài giảng: MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG KHI LẬP TRÌNH - Pdf 13

MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
■ ■
Đố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
w I Khoa Công nghệ Thông tin
B K k Trường ĐH Bach Khoa Tp.HCM
Môn : Lập trinh hướng đối tượng
Slide 1
MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
■ ■
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.
w I Khoa Công nghệ Thông tin
B K k Trường ĐH Bach Khoa Tp.HCM
Môn : Lập trinh hướng đối tượng
Slide 2

Chuông 1: ôn lại các tính chất của lập trinh cấu trúc
Slide 4
Phương pháp phân tích từ-trên-xuống (tt)
chia thành nhiều công
việc nhỏ hơn, đơn giản để
giải quyết hơn.
Công việc cần
giải quyết (A)
I
I Công viêc Công việc Công viêc
I A,
A2
■ ■ ■
A„
Công việc
Ẩ.
‘11
Công việc
A.
12
Công việc
A,
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ó.
I
Công việc
A,
n1

Môn : Lập trinh hướng đối tưọng
Chuông 1: ôn lại các tính chất của lập trinh cấu trúc
Slide 6
Cấu trúc 1 chương trình huứng cấu trúc
Chương trình = cấu trúc dữ liệu + giải thuật
local data
of function
module
(package)
entry 'start'
local data
module
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Lập trinh huớng đối tuợng
Chuông 1: ôn lại các tính chất của lập trinh cấu trúc
Slide 7
Cẩu trúc 1 chương trình huứng cấu trúc
□ 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

extern int A_intA;
typedef struct { } A_Type1;
¿define A_PI 3.14159
int A_func1 (int a, double b);
#include A.h
//hiện thục của module A
int AJntA;
static int AJntB;
int A_func1 (int a, double b) {
B_Type1 var;
BJntA = B_MAXLEN;
A_func2(a);
B_func1(a,b);
}
static void A_func2(int a) {
}
//đặc tả interface của module B : server
extern int BJntA;
typedef struct { } B_Type1 ;
#define B_MAXLEN 1024
int B_func1 (char c, char* d);
#include B.h
//hiện thực của module B
int BJntA;
static int BJntB;
int B_func1(int a, double b) {
B_func2(a);
}
static void B_func2(int a) {
}

typedef struct { } B_Type1 ;
#define B_PI 3.14159
int B_func1 (char c, char* d);
#include B.h
//hiện thực của module B
int BJntA;
static int AJntB;
int B_func1(int a, double b) {
B_func2(a);
}
static void B_func2(int a) {
}
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Lập trinh huớng đối tuợng
Chuông 1: ôn lại các tính chất của lập trinh 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 huửng đối tuợng
Chương 2 : Các khái niệm chính của lập trình hưóng đối tưọng
Slide 12
Nội dung
2.1 Cấu trúc của 1 ứng dụng hướng đôi tưọng
2.2 Đối tượng, thuộc tính, tác vụ.

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 không tồn tại nữa.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Lập trình huửng đối tuợng
Chương 2 : Các khái niệm chính của lập trình hưóng đối tưọng
Slide 15
Đối tượng (Object)
□ Đối tượng là nguyên tử cấu thành ứng dụng.
□ Đối tượng bao gồm 2 loại thành phần :
■ thuộc tính (dữ liệu): mỗi thuộc tính mang 1 giá trị nhất định tại
từng thời điểm.
■ tác vụ (operation): thực hiện 1 công việc nào đó.
^ Môn : Lập trinh hướng đối tuợng
o LT L ^ h0aC<ĩn? Thõng tin Chương 2 : Các khái niêm chính của lâp trinh hưóng đối tưong
B K ^ Trường ĐH Bách Khoa Tp.HCM a siide 16
Kiểu trừu tượng (Abstract type)
■ Abstract type (type) định nghĩa interface sử dụng đối tượng. Ta
dùng tên nhận dạng để đặt tên cho kiểu và để nhận dạng nó.
■ Interface là tập hợp các 'entry' mà bên ngoài có thể giao tiếp với
đối tượng.
■ Ta dùng signature để định nghĩa mỗi 'entry1. Signature gồm :
■ tên tác vụ (opération, function)
■ danh sách tham số hình thức, mỗi tham số được đặc tả bởi 3
thuộc tính : tên, type và chiều di chuyển (IN, OUT, INOUT).
■ đặc tả chức năng của tác vụ (thường ở dạng chú thích).
■ Ta dùng tên của abstract type (chứ không phải class) để đặc tả
kiểu cho biến, thuộc tính, tham số hình thức.

các thông tin về nó như tên nhận dạng, kiểu dữ liệu, tầm vực truy
xuất, Kiểu của thuộc tính có thể là type cổ điển (số nguyên, thực,
ký tự, chuỗi ký tự, ) hay 'abstract type1, trong trường hợp sau thuộc
tính sẽ là tham khảo đến đối tượng khác. Trạng thái của đối tượng
là tập giá trị tại thời điểm tương ứng của tất cả thuộc tính của đối
tượng. Trong thời gian tồn tại và hoạt động, trạng tái của đối tượng
sẽ thay đổi.
■ 'coding' các tác vụ (miêu tả giải thuật chi tiết về hoạt động của tác
vụ) và các 'internal function1.
© Định nghĩa các tác vụ tạo (create) và xóa (delete) đối tượng.
© Định nghĩa các tác vụ 'constructor' và 'destructor'.
© User không cần quan tâm đến class của đổi tượng.
________________
^ Môn : Lập trinh hướng đối tuợng
o LT L ^ h0aC<ĩn? Thõng tin Chương 2 : Các khái niêm chính của lap trinh hưóng đối tưong
B K ^ Trường ĐH Bách Khoa Tp.HCM a K a Slide 19
Ví dụ về định nghĩa class trongVC++
class CMiniChatClientDlg : public CDialog {
public:
CMiniChatClientDlg(CWnd* pParent = NULL); // Standard constructor
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV
support
virtual LRESULT WindowProc(UINT message, WPARAM wParam,
LPARAM IParam);
virtual BOOL OnlnitDialogO;
afx_msg void OnPaint();
afx_msg void OnConnect();
HICON m_hlcon;
private :

(thường khá ít).
■ Đa thừa kế hay đơn thừa kế.
■ Thừa kế tạo ra mối quan hệ supertype/subtype và
superclass/subclass.
■ Có thể override các method của class cha, kết quả override chỉ tác
dụng trên đối tượng của class con.
■ Đối tượng của class con có thể đóng vai trò của đối tượng class
cha nhưng ngược lại thưòng không được.
□ VC++ cho phép hạn chế tầm vực truy xuất các thành phần của class
cha:
class c : protected A, private B { }
^ Môn : Lập trinh hướng đối tuợng
o LT L ^ h0aC<ĩn? Thõng tin Chương 2 : Các khái niêm chính của lap trinh hưóng đối tưong
B K ^ Trường ĐH Bách Khoa Tp.HCM a K a Slide 22
Ví dụ vé thừa kê và override - VC++

class Geometry { //abstract base class
public:
Geometry();
virtual void Draw( Window *pWnd ) = 0; //abstract operation
protected:
int xPos, yPos;
COLORREF color;
};
class Group : public Geometry {
public:
Group();
~Group();
virtual void Draw( Window *pWnd ); //override
private:

private:
Geometry **ppGeo; //=Geometry* ppGeo[n];
int geoCount;
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Lập trinh hướng đối tượng
Chương 2 : Các khái niệm chính của lập trinh hưóng đối tưọng
Slide 25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status