... Thành viên là đối tƣợng của 1 lớp
Mảng các đối tƣợng
Phạm vi lớp
Cấu trúc (structure) và hợp (union)
Các trƣờng bit
Khoa Công Nghệ Thông Tin - Đại Học Bách khoa Đà Nẵng
19
Đối số thành ... khoa Đà Nẵng
5
Đối tượng
Đối tƣợng(Object): là một thể hiện thuộc lớp, một thực thể
có thực
Khai báo:
<Classname> <Objectname>;
Để truy xuất đến một thành phần của đối tƣợng, truy ... “car.cc”
Quy ƣớc đặt khai báo/định nghĩa của lớp trong
file trùng tên lớp đƣợc chấp nhận rộng rãi trong
C++
là quy tắc bắt buộc đối với các lớp của Java
Khoa Công Nghệ Thông Tin - Đại Học...
... tạo không đối
DIEM_DH*q; // Gọi hàm tạo không đối
int n;
234
Chương 7. Lớpvàđối tượng
CHƯƠNG 7
LỚP VÀĐỐI TƯỢNG
Lập trình có cấu trúc và lập trình hướng đốitượng
Lớp vàđốitượng
Đối của phương ... (d>dmax)
213
Chương 7. Lớpvàđối tượng
void ve_doan_thang(DIEM d2, int mau) ;
sẽ thấy phương thức có 3 đối:
Đối thứ nhất là một đốitượng DIEM do this trỏ tới
Đối thứ hai là đốitượng DIEM d2
Đối thứ ba ... thức dùng để in đốitượng DIEM_DH
233
Chương 7. Lớpvàđối tượng
void dtcvhcn(int a, int b, int&dt, int &cv)
{
dt=a*b;
cv=2*(a+b);
}
257
Chương 7. Lớpvàđối tượng
cho đốitượng mới. Hàm...
... khởi tạo và hàm huỷ
a. Hàm khởi tạo
- Hàm khởi tạo của lớp cha không được kế thừa
- Mỗi đốitượng của lớp con có thể coi là một đối
tượng của lớp cha
Do đó: khi gọi hàm khởi tạo của lớp con sẽ ... số
Chú ý:
Có thể gán 1 đốitượng của lớp con vào một đối
tượng của lớp cha
PS a;
PS1 b;
a=b;// ok
b=a; // problem
Khi gán, các tp thừa (ko có trong lớp cha) sẽ bị
cắt tỉa và chuyển đổi kiểu lên ... Information Systems Department
20
7. Lớp cơ sở ảo
7. Lớp cơ sở ảo
Xét trường hợp hai:
Gọi A là lớp cơ sở của lớp B và C
Gọi D là lớp dẫn xuất của lớp B và C
A
B C
D
x
x x
x
Object Oriented...
...
khó hiểu!
LỚP VÀĐỐITƯỢNG
Phân bổ bộ nhớ động
Phân bổ bộ nhớ động
Nhiều đốitượng cần được tạo ra trong thời gian
Nhiều đốitượng cần được tạo ra trong thời gian
chạy chương trình và cần bị ... ở lớp con
–
private
private
: Mọi thành phần của lớp cha là private
: Mọi thành phần của lớp cha là private
ở lớp con.
ở lớp con.
–
protected
protected
:
:
Ví dụ 7
LỚP VÀĐỐI TƯỢNG
Cài đặt lớp ... đổi thuộc tính của đốitượng bên
thay đổi thuộc tính của đốitượng bên
trong hàm khách được.
trong hàm khách được.
Ví dụ 13 Ví dụ 14
LỚP VÀĐỐI TƯỢNG
II.Phương thức thiết lập và phương thức hủy...
... Richards đưa ra vào
trên ngôn ngữ BCPL (do Martin Richards đưa ra vào
năm 1967) và ngôn ngữ B (do Ken Thompson phát
năm 1967) và ngôn ngữ B (do Ken Thompson phát
triển từ ngôn ngữ BCPL vào năm 1970 ... cùng với Assembler và phát
biến để lập trình hệ thống cùng với Assembler và phát
triển các ứng dụng.
triển các ứng dụng.
Vào những năm cuối thập kỷ 60 đầu thập kỷ 70 của
Vào những năm cuối ... Dennish Ritchie và B.W Kernighan đã cho
Năm 1978, Dennish Ritchie và B.W Kernighan đã cho
xuất bản quyển “Ngôn ngữ lập trình C” và được phổ
xuất bản quyển “Ngôn ngữ lập trình C” và được phổ
biến...
... chữ nhật
b. Lớp các đốitượng :
b. Lớp các đốitượng :
- Các đốitượng có cùng thành phần dữ liệu và
- Các đốitượng có cùng thành phần dữ liệu và
phương thức hình thành nên một lớp
phương thức ...
3
3
- Đốitượng đường tròn bao gồm tâm, bán kính vẽ
- Đốitượng đường tròn bao gồm tâm, bán kính vẽ
xoá
xoá
- Đốitượng đoạn thẳng, đốitượng hình chữ nhật
- Đốitượng đoạn thẳng, đốitượng ... mô tả đốitượng (Data)
ii) Các hàm tác động lên đốitượng gọi là phương
ii) Các hàm tác động lên đốitượng gọi là phương
thức của đốitượng (Method)
thức của đốitượng (Method)
Dữ liệu và các...
... về lớpvàđối tượng
3.2- Cú pháp tạo lớp
3.3- Xây dựng và khởi tạo đối tượng.
3.4- Tính thừa kế (Inheritance)
3.5- Tính đa hình (Polymorphism)
3.6- Lập trình với dữ liệu nhập
3.7- Một số lớp ... 10
3.3- Xây dựng và khởi tạo đối tượng.
Chú ý về constructor:
•
Default Constructor: Nếu 1 lớp không hiện thực
constructor, constructor mặc định của Java sẽ thực
thi khi định nghĩa đốitượng (xóa ... trực
tiếp properties của 1 đối tượng.
•
Từ khóa this : Đốitượng hiện hành. khi
truy xuất member chính là dạng viết tắt của
this.member.
•
Từ khóa super tham khảo đến lớp cha
•
Cho phép overload...
...
Chương 7. Lớpvàđốitượng
void ve_doan_thang(DIEM d2, int mau) ;
sẽ thấy phương thức có 3 đối:
Đối thứ nhất là một đốitượng DIEM do this trỏ tới
Đối thứ hai là đốitượng DIEM d2
Đối thứ ...
Chương 7. Lớpvàđốitượng
mảng) khác nhau. Mỗi đốitượng có vùng nhớ riêng của mình và vì vậy ta cũng có
thể quan niệm lớp chính là tập hợp các đốitượng cùng kiểu.
1. Khai báo lớp
Để khai ... mode ;
221
Chương 7. Lớpvàđốitượng
}
void dtcvhcn(int a, int b, int&dt, int &cv)
{
dt=a*b;
cv=2*(a+b);
}
257
Chương 7. Lớpvàđốitượng
cho đốitượng mới. Hàm tạo sao...
... dùng để in đốitượng DIEM_DH
233
Chương 7. Lớpvàđốitượng
mảng) khác nhau. Mỗi đốitượng có vùng nhớ riêng của mình và vì vậy ta cũng có
thể quan niệm lớp chính là tập hợp các đốitượng cùng ...
Chương 7. Lớpvàđốitượng
void ve_doan_thang(DIEM d2, int mau) ;
sẽ thấy phương thức có 3 đối:
Đối thứ nhất là một đốitượng DIEM do this trỏ tới
Đối thứ hai là đốitượng DIEM d2
Đối thứ ... 2 đốitượng kiểu HT được tạo ra.
Trong thân hàm sử dụng các đốitượng này để vẽ các hình tròn di
252
Chương 7. Lớpvàđốitượng
• Hàm tạo có thể có đối hoặc không có đối.
• Trong một lớp...
... nhớ cho đối tượng:
TênL
ớp TênBiếnĐốiTượng;
TênBiếnĐốiTượng = new TênLớp(DanhSáchĐốiSố);
hoặc
TênLớp TênBiếnĐốiTượng = new TênLớp(DanhSáchĐốiSố);
Chú ý:
• Sau khi khai báo biến đốitượng ...
• …
II. Lớpvàđốitượng
Chương trình là một hệ thống các đối tượng. Xây dựng một chương trình là định
nghĩa các lớpđối tượng, sau đó khai báo các đốitượngvà tổ chức để các đối
tượng thực ...
II.2.
Tạo đốitượng
Lớp mô tả cấu trúc chung của một nhóm đốitượng nào đó, ngược lại, một đối
tượng là một trường hợp cụ thể của một lớp (còn gọi là một thể hiện của một lớp) .
Vì đốitượng là...
... RealSet
Khai báo forward cho một lớp chỉ cho trình biên dịch biết về sự
có mặt của lớp mà không cho biết về các thành viên của lớp đó
Vậy: cần khai báo forward cho lớp cấp quyền friend
trong ... sao chép (1 vùng nhớ) chia sẻ
cho tất cả đối tƣợng của lớp đó.
Sử dụng: <TênLớp>::<TênDữLiệuThànhViên>
Thƣờng dùng để đếm số lƣợng đối tƣợng.
class Window {
// danh sách liên ... Nẵng
43
Thành viên hằng
Hằng đối tƣợng: không đƣợc thay đổi giá trị.
Hàm thành viên hằng:
Đƣợc phép gọi trên hằng đối tƣợng.(đảm bảo không thay đổi giá
trị của đối tƣợng chủ)
Không đƣợc...
...
237
Chương 7. Lớpvàđốitượng
mảng) khác nhau. Mỗi đốitượng có vùng nhớ riêng của mình và vì vậy ta cũng có
thể quan niệm lớp chính là tập hợp các đốitượng cùng kiểu.
1. Khai báo lớp
Để khai ... đối
tượng và có thể dùng để khai báo các biến, mảng đối tượng. Cách khai báo biến,
mảng đốitượng cũng giống như khai báo biến, mảng các kiểu khác (như int, float,
219
Chương 7. Lớpvàđối ... Chương 7. Lớpvàđốitượng
}
void dtcvhcn(int a, int b, int&dt, int &cv)
{
dt=a*b;
cv=2*(a+b);
}
257
Chương 7. Lớpvàđốitượng
cho đốitượng mới. Hàm tạo sao...
... Xây dựng lớpphân số PS gồm:
+ Các thuộc tính: tử số và mẫu số
+ Các phương thức: Kiểm tra tính hợp lệ của phân số; Nhập phân số; In phân số ra
màn hình.
Bài 4. Bổ sung thêm vào lớp PS: các ... báo biến, mảng ñối tượng
Một lớp (sau khi ñịnh nghĩa) có thể xem như một kiểu ñối tượngvà có thể dùng ñể
khai báo các biến, mảng ñối tượng. Cách khai báo biến, mảng ñối tượng cũng giống
như ...
}
§
5. HÀM BẠN VÀLỚP BẠN
5.1. Hàm bạn (friend function)
ðể một hàm trở thành bạn của một lớp, có hai cách viết:
Cách 1: Dùng từ khoá friend ñể khai báo hàm trong lớpvà xây dựng hàm bên...
... Destructor
12/20
b. Khai báo đối tượng
Cú pháp:
<tên _lớp& gt; <tên _đối_ tượng& gt;;
Ví dụ: khai báo 2 đốitượng sinh viên
SV sv1, sv2;
Khi đó sv1, sv2 là hai đốitượng sinh viên
32/20
Qui cách ... trận
3/20
1. Xây dựng lớpvàđối tượng
a. Khai báo
class <tên _lớp& gt;
{
[quyền truy xuất:]
//khai báo các thành phần dữ liệu của lớp
[quyền truy xuất:]
//khai báo các thành phần hàm của lớp
};
5/20
a. ... private
priate: trong phạm vi lớp đó
public: ở mọi nơi nếu đốitượng tồn tại
protected: phạm vi lớp đó và các lớp con kế thừa
28/20
Bài tập (week 3)
•
Sử dụng TC++ để lập trình:
3. Xây dựng lớp vectơ gồm các...
... phầnđối tượng
Khái niệm:
là thành phần dữ liệu của lớp có kiểu là một
lớp khác
Khai báo:
<tên lớp& gt; <tên thành phần dữ liệu>
Ví dụ: thành phần ns của lớp SV là đốitượnglớp
date
7/20
5. ... tượnglớp
date
7/20
5. Hàm bạn vàlớp bạn (tiếp)
Khái niệm lớp bạn:
Lớp A là lớp bạn của lớp B nếu trong B có
chứa khai báo:
friend class A;
Vậy:
Nếu A là lớp bạn của B thì mọi hàm thành ... http://www.hvtc.edu.vn/sanghv
Lập trình hướng đốitượng
3/20
4. Mảng và con trỏ của đối tượng
Khai báo
<tên _lớp& gt; <tên_mảng>[spt];
Ví dụ: SV sinhvien[50]; PS a[8];
<tên _lớp& gt; *<tên_con_trỏ>;
Ví...