KháiKhái niệmniệm cơcơ bảnbản vềvề
đốiđối
tượngtượng
GV. GV. NguyễnNguyễn Minh Minh HuyHuy
đố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
ĐốiĐối tượngtượng vàvà lớplớp
SửSử dụngdụng đốiđối tượngtượng trongtrong C++.C++.
TầmTầm vựcvực
BàiBài tậptập
2Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
ĐốiĐối tượngtượng vàvà lớplớp
SửSử dụngdụng đốiđối tượngtượng trongtrong C++.C++.
TầmTầm vựcvực
BàiBài tậptập
3Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
ĐốiĐối tượngtượng vàvà lớplớp
ĐốiĐối tượngtượng làlà gìgì??
ChươngChương trìnhtrình làlà ““cỗcỗ máymáy” ” phứcphức tạptạp
CấuCấu thànhthành từtừ nhiềunhiều loạiloại “chi “chi tiếttiết”.”.
Chi Chi tiếttiết cơcơ bảnbản: : hàmhàm, , cấucấu trúctrúc
ĐãĐã đủđủ tạotạo rara chươngchương trìnhtrình tốttốt??
4Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Chi tiết mới: Đối tượng!!
ĐốiĐối tượngtượng vàvà lớplớp
ĐặcĐặc trưngtrưng củacủa đốiđối tượngtượng::
KhoKho
((
CáCá
))
NấuNấu ((CơmCơm))
HướngHướng đốiđối tượngtượng (object oriented):(object oriented):
LấyLấy dữdữ liệuliệu làmlàm trungtrung tâmtâm
ĐốiĐối tượngtượng làlà xươngxương sốngsống
Rau.LặtRau.Lặt Cá.ƯớpCá.Ướp
Rau.LuộcRau.Luộc Cá.KhoCá.Kho
Cơm.NấuCơm.Nấu
6Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NấuNấu CơmCơm
KhoKho CáCá
LuộcLuộc RauRau
Thay đổi
tư duy
lập trình!!
ĐốiĐối tượngtượng vàvà lớplớp
KháiKhái niệmniệm lớplớp::
Person1:Person1:
Name: Peter.Name: Peter.
Age: 25.Age: 25.
Hair Color: Brown.Hair Color: Brown.
Eye Color: Brown.Eye Color: Brown.
Human:Human:
Name.Name.
Tập hợp đối tượng có cùng
{{
{{
<<KhaiKhai báobáo thuộcthuộc tínhtính>;>;
<<KhaiKhai báobáo phươngphương thứcthức>;>;
};};
CàiCài đặtđặt lớplớp (file .(file .cppcpp): ): càicài đặtđặt phươngphương thứcthức chocho đốiđối tượngtượng
TươngTương tựtự càicài đặtđặt hàmhàm, , kèmkèm têntên lớplớp vàvà toántoán tửtử ::.::.
SửSử dụngdụng đốiđối tượngtượng từtừ lớplớp::
KhaiKhai báobáo đốiđối tượngtượng: : biếnbiến cócó kiểukiểu làlà lớplớp
TruyTruy xuấtxuất thànhthành phầnphần đốiđối tượngtượng: : dùngdùng dấudấu “.” “.” hoặchoặc ““ >”.>”.
9Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
SửSử dụngdụng đốiđối tượngtượng trongtrong C++C++
VíVí dụdụ: so : so sánhsánh đốiđối tượngtượng vàvà cấucấu trúctrúc
// // KhaiKhai báobáo lớplớp, file , file PhanSo.hPhanSo.h
class class PhanSoPhanSo
{{
private:private:
intint m_tuSom_tuSo;;
intint m_mauSom_mauSo;;
// // KhaiKhai báobáo kiểukiểu cấucấu trúctrúc, file , file PhanSo.hPhanSo.h
structstruct PhanSoPhanSo
{{
intint m_tuSom_tuSo;;
intint m_mauSom_mauSo;;
};};
public:public:
PhanSoPhanSo cong(cong(PhanSoPhanSo p);p);
};};
11Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
PhanSoPhanSo **p3 p3 = new = new PhanSoPhanSo;;
cong(*p3, p1);cong(*p3, p1);
PhanSoPhanSo **p4 p4 = new = new PhanSoPhanSo[2];[2];
cong(p[0], p[1]);cong(p[0], p[1]);
}}
NộiNội dungdung
ĐốiĐối tượngtượng vàvà lớplớp
SửSử dụngdụng đốiđối tượngtượng trongtrong C++.C++.
TầmTầm vựcvực
BàiBài tậptập
12Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
TầmTầm vựcvực
KháiKhái niệmniệm tầmtầm vựcvực::
TầmTầm ảnhảnh hưởnghưởng, , phạmphạm vi vi hoạthoạt độngđộng::
BiếnBiến block block khaikhai báobáo
HàmHàm khôngkhông hạnhạn chếchế
ThànhThành phầnphần củacủa lớplớp cócó thểthể điềuđiều chỉnhchỉnh
TầmTầm
ảnhảnh
hưởnghưởng
càngcàng
hẹphẹp
, ,
truytruy
xuấtxuất
càngcàng
hạnhạn
PhanSoPhanSo
{{
private:private:
intint m_tuSom_tuSo;;
intint m_mauSom_mauSo;;
public:public:
PhanSoPhanSo cong(cong(PhanSoPhanSo p);p);
PhanSoPhanSo rutGonrutGon();();
};};
14Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Dữ liệu
(Thuộc tính)
Tính năng
(Phương thức)
TầmTầm vựcvực
ToánToán tửtử :: (:: (bốnbốn chấmchấm):):
LớpLớp 5A 5A vàvà 5B 5B đềuđều cócó họchọc sinhsinh têntên LêLê PhươngPhương
LàmLàm saosao đểđể phânphân biệtbiệt??
TrườngTrường hợphợp 1: 1: đứngđứng trongtrong lớplớp
TrườngTrường hợphợp 2: 2: đứngđứng ngoàingoài lớplớp
ToánToán
tửtử
::::
Lớp 5A
ToánToán
tửtử
::::
DùngDùng gọigọi têntên thànhthành phầnphần củacủa lớplớp
SửSử
dụngdụng
đốiđối
tượngtượng
::
SửSử
dụngdụng
đốiđối
tượngtượng
::
KhaiKhai báobáo lớplớp bằngbằng từtừ khóakhóa “class”.“class”.
GiốngGiống sửsử dụngdụng cấucấu trúctrúc
TầmTầm vựcvực::
TầmTầm ảnhảnh hưởnghưởng, , phạmphạm vi vi hoạthoạt độngđộng
CóCó 3 3 mứcmức: public, private, protected.: public, private, protected.
17Phươ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 2.1:2.1:
XâyXây dựngdựng lớplớp phânphân sốsố chocho phépphép thựcthực hiệnhiện cáccác thaothao táctác::
NhậpNhập, , xuấtxuất
LấyLấy tửtử sốsố, , mẫumẫu sốsố
GánGán giágiá trịtrị chocho tửtử sốsố, , mẫumẫu sốsố
NghịchNghịch
đảođảo
, ,
rútrút
gọngọn
hàmhàm
TínhTính
giágiá
trịtrị
, ,
đạođạo
hàmhàm
, ,
nguyênnguyên
hàmhàm
CộngCộng, , trừtrừ, , nhânnhân, , chiachia, so , so sánhsánh vớivới đơnđơn thứcthức kháckhác cùngcùng bậcbậc
20Phươ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 2.4:2.4:
ThôngThông tin tin mộtmột họchọc sinhsinh baobao gồmgồm::
HọHọ têntên
ĐiểmĐiểm vănvăn, , toántoán
XâyXây dựngdựng lớplớp họchọc sinhsinh chocho phépphép thựcthực hiệnhiện cáccác thaothao táctác::
NhậpNhập
, ,
xuấtxuất
NhậpNhập
, ,
xuấtxuất
trịtrị
chocho
phầnphần
tửtử
tạitại
vịvị
trítrí
nàonào
đóđó
TìmTìm phầnphần tửtử nàonào đóđó trongtrong mảngmảng
SắpSắp xếpxếp tăngtăng, , giảmgiảm
22Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy