VòngVòng
đờiđời
đốiđối
tượngtượng
GV. GV. NguyễnNguyễn Minh Minh HuyHuy
VòngVòng
đờiđời
đốiđối
tượngtượng
1Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
PhươngPhương thứcthức khởikhởi tạotạo
PhươngPhương thứcthức hủyhủy
ThànhThành phầnphần tĩnhtĩnh
Class Template.Class Template.
2Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
PhươngPhương thứcthức khởikhởi tạotạo
PhươngPhương thứcthức hủyhủy
ThànhThành phầnphần tĩnhtĩnh
Class Template.Class Template.
3Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
PhươngPhương thứcthức khởikhởi tạotạo
VấnVấn đềđề khởikhởi tạotạo thôngthông tin tin đốiđối tượngtượng::
GiáGiá trịtrị ban ban đầuđầu củacủa thuộcthuộc tínhtính??
class class PhanSoPhanSo
{{
private:private:
intint m_tum_tu;;
intint
Vi Vi phạmphạm ““tínhtính chấtchất hộphộp đenđen”.”.
NgườiNgười dùngdùng quênquên gọigọi
““LàmLàm khaikhai sinhsinh” ” chocho đốiđối tượngtượng
PhươngPhương
thứcthức
khởikhởi
tạotạo
PhươngPhương
thứcthức
khởikhởi
tạotạo
5Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
PhươngPhương thứcthức khởikhởi tạotạo
TínhTính chấtchất phươngphương thứcthức khởikhởi tạotạo::
BắtBắt buộcbuộc gọigọi khikhi khaikhai báobáo đốiđối tượngtượng
CóCó thểthể nạpnạp chồngchồng nhiềunhiều phươngphương thứcthức
KhôngKhông cócó giágiá trịtrị trảtrả vềvề
CóCó têntên trùngtrùng têntên lớplớp ((trongtrong C++).C++).
class class PhanSoPhanSo
{{
private:private:
intint m_tum_tu;;
intint m_maum_mau;;
public:public:
PhanSoPhanSo((intint tutu, , intint maumau););
PhươngPhương thứcthức khởikhởi tạotạo
PhươngPhương thứcthức khởikhởi tạotạo saosao chépchép::
““LàmLàm khaikhai sinhsinh” ” bằngbằng saosao chépchép đốiđối tượngtượng kháckhác
ThamTham sốsố làlà đốiđối tượngtượng cùngcùng lớplớp
LuônLuôn tồntồn tạitại trongtrong lớplớp ((trìnhtrình biênbiên dịchdịch cấpcấp).).
class class PhanSoPhanSo
{{
void void mainmain()()
{{
{{
private:private:
intint m_tuSom_tuSo;;
intint m_mauSom_mauSo;;
public:public:
PhanSoPhanSo(const (const PhanSoPhanSo &p);&p);
};};
8Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
{{
PhanSoPhanSo p1(1, 2p1(1, 2););
PhanSoPhanSo p2(p1p2(p1););
PhanSoPhanSo p3 = p2p3 = p2;;
}}
PhươngPhương thứcthức khởikhởi tạotạo
Dr. Guru Dr. Guru khuyênkhuyên::
MộtMột lớplớp nênnên cócó tốitối thiểuthiểu 3 3 phươngphương thứcthức khởikhởi tạotạo::
KhởiKhởi tạotạo mặcmặc địnhđịnh
KhởiKhởi tạotạo saosao chépchép
KhởiKhởi tạotạo vớivới đầyđầy đủđủ thôngthông tin.tin.
” ”
chocho
đốiđối
tượngtượng
HocSinh
Họ tên
Điểm
văn
““
LàmLàm
didi
chúcchúc
” ”
chocho
đốiđối
tượngtượng
PhươngPhương thứcthức hủyhủy
class class HocSinhHocSinh
{{
private:private:
charchar **m_hoTenm_hoTen;;
public:public:
void void thuHoiBoNhothuHoiBoNho() { () {
delete delete m_hoTenm_hoTen; }; }
};};
11Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
HocSinhHocSinh *p = *p = new new HocSinhHocSinh;;
delete delete pp;;
}}
NộiNội dungdung
PhươngPhương thứcthức khởikhởi tạotạo
PhươngPhương thứcthức hủyhủy
ThànhThành phầnphần tĩnhtĩnh
Class Template.Class Template.
13Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
ThànhThành phầnphần tĩnhtĩnh
ChiaChia sẻsẻ giữagiữa cáccác đốiđối tượngtượng cùngcùng lớplớp::
MỗiMỗi đốiđối tượngtượng cócó bảnbản saosao riêngriêng::
ThuộcThuộc tínhtính
PhươngPhương thứcthức
ThànhThành phầnphần đốiđối tượngtượng
MuốnMuốn
dùngdùng
chungchung
thôngthông
tin?tin?
PhanSo
Tử số
Mẫu số
MuốnMuốn
dùngdùng
chungchung
thôngthông
tin?tin?
public:public:
static static intint layGiaTriLNlayGiaTriLN();();
private:private:
intint m_tum_tu;;
intint m_maum_mau;;
};};
15Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
PhanSoPhanSo::::m_giaTriLNm_giaTriLN = = 10000;10000;
void void mainmain()()
{{
intint x x = = PhanSoPhanSo::::layGiaTriLNlayGiaTriLN();();
}}
NộiNội dungdung
PhươngPhương thứcthức khởikhởi tạotạo
PhươngPhương thứcthức hủyhủy
ThànhThành phầnphần tĩnhtĩnh
Class Template.Class Template.
16Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Class TemplateClass Template
XétXét lớplớp mảngmảng::
CácCác phầnphần tửtử làlà sốsố nguyênnguyên
TổngTổng quátquát: : cáccác phầnphần tửtử kiểukiểu bấtbất kỳkỳ
ThamTham sốsố hóahóa thuộcthuộc tínhtính, , phươngphương thứcthức
Class Template.Class Template.
17Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Class TemplateClass Template
CáchCách sửsử dụngdụng Class Template:Class Template:
template <class T>template <class T>
class class MangMang
PhanSoPhanSo p = m2.layPhanTu(2);p = m2.layPhanTu(2);
}}
TómTóm tắttắt
PhươngPhương thứcthức khởikhởi tạotạo::
““LàmLàm khaikhai sinhsinh” ” chocho đốiđối tượngtượng
BắtBắt buộcbuộc gọigọi khikhi khaikhai báobáo
CóCó thểthể nạpnạp chồngchồng
PhươngPhương
thứcthức
hủyhủy
::
PhươngPhương
thứcthức
hủyhủy
::
““LàmLàm didi chúcchúc” ” chocho đốiđối tượngtượng
TựTự độngđộng gọigọi khikhi hủyhủy
CóCó duyduy nhấtnhất mộtmột
19Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
TómTóm tắttắt
ThànhThành phầnphần tĩnhtĩnh::
DùngDùng chungchung chocho đốiđối tượngtượng củacủa lớplớp
KhaiKhai báobáo bằngbằng từtừ khóakhóa “static”.“static”.
TruyTruy xuấtxuất bằngbằng toántoán tửtử ::.::.
Class Template:Class Template:
BàiBài tậptập
BàiBài tậptập 3.2:3.2:
TrangTrang bịbị chocho lớplớp họchọc sinhsinh nhữngnhững cáchcách khởikhởi tạotạo vàvà hủyhủy sausau::
KhởiKhởi tạotạo vớivới họhọ têntên vàvà điểmđiểm vănvăn, , toántoán chocho trướctrước
KhởiKhởi tạotạo vớivới họhọ têntên chocho trướctrước, , điểmđiểm vănvăn, , toántoán = 0.= 0.
KhởiKhởi tạotạo từtừ mộtmột họchọc sinhsinh kháckhác
HủyHủy
đốiđối
tượngtượng
họchọc
sinhsinh
, ,
thuthu
hồihồi
bộbộ
nhớnhớ
HủyHủy
đốiđối
tượngtượng
họchọc
sinhsinh
, ,
thuthu
hồihồi
bộbộ
nhớnhớ
BàiBài tậptập 3.4:3.4:
TrangTrang bịbị chocho lớplớp phânphân sốsố nhữngnhững phươngphương thứcthức sausau::
ĐếmĐếm sốsố lượnglượng phânphân sốsố đượcđược tạotạo rara
TạoTạo vàvà trảtrả vềvề phânphân sốsố vớivới tửtử vàvà mẫumẫu chocho trướctrước
24Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
BàiBài tậptập
BàiBài tậptập 3.5:3.5:
XâyXây dựngdựng lớplớp mảngmảng kiểukiểu dữdữ liệuliệu bấtbất kỳkỳ
25Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy