Bài giảng Phương pháp lập trình hướng đối tượng - Chương 1: Tổng quan về lập trình hướng đối tượng - Nguyễn Minh Huy

Tꢀng quan vꢁ lꢂp trình  
hưꢃng đꢄi tưꢅng  
GV. Nguyꢀn Minh Huy  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
1
Nꢆi dung  
ꢀ Đꢃi tưꢄng và lꢂp.  
ꢀ Sꢇ dꢈng đꢃi tưꢄng trong C++.  
ꢀ Tꢉm vꢊc.  
ꢀ Bài tꢁp.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
2
Nꢆi dung  
ꢀ Đꢄi tưꢅng và lꢃp.  
ꢀ Sꢇ dꢈng đꢃi tưꢄng trong C++.  
ꢀ Tꢉm vꢊc.  
ꢀ Bài tꢁp.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
3
Đꢃi tưꢄng và lꢂp  
ꢀ Hưꢂng thꢋ tꢈc vs. Hưꢂng đꢃi tưꢄng:  
ꢀ Bài toán: nꢌu món thꢍt kho trꢎng + rau muꢃng xào.  
Hành đꢆng  
Hưꢃng thꢇ tꢈc  
Hưꢃng đꢄi tưꢅng  
Trꢎng. Luꢆc( )  
Trꢎng. Bóc vꢐ( )  
Rau. Lꢏt( )  
Lꢏt  
Ưꢂp ( Thꢍt )  
Luꢆc  
Ưꢂp  
Kho  
Luꢆc ( Trꢎng )  
Lꢏt ( Rau )  
Bóc vꢐ ( Trꢎng )  
Kho ( Thꢍt, Trꢎng )  
Xào ( Rau )  
Rau. Xào( )  
Xào  
Thꢍt. Ưꢂp( )  
Bóc vꢐ  
Thꢍt. Kho( Trꢎng )  
Nguyên liꢉu  
Thꢍt  
Hưꢃng đꢄi tưꢅng:  
Hưꢃng thꢇ tꢈc:  
ꢊ Dꢋ liꢉu làm gꢄc.  
ꢊ Hành đꢆng làm gꢄc.  
ꢊ Dꢋ liꢉu thꢌc hiꢉn hàm.  
(Object) does (Verb)  
ꢊ Hàm + Dꢋ liꢉu.  
(Verb) + (Object)  
Trꢎng  
Rau  
ꢁ Thay đꢀi tư duy lꢂp trình  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
4
Đꢃi tưꢄng và lꢂp  
ꢀ Đꢃi tưꢄng là gì?  
ꢀ Chương trình là “cꢑ máy” phꢎc tꢒp.  
ꢀ Cꢌu thành tꢓ các “chi tiꢔt”.  
ꢂ Chi tiꢔt cơ bꢕn: hàm, biꢔn dꢖ liꢗu.  
ꢂ Tꢘ chꢎc hưꢂng thꢋ tꢈc: hàm + biꢔn dꢖ liꢗu.  
ꢃ Chưa đꢇ tꢍo chương trình tꢀng quát!  
ꢂ Tꢘ chꢎc hưꢂng đꢃi tưꢄng: biꢔn dꢖ liꢗu “thꢊc hiꢗn” hàm.  
ꢃ Cꢎn có “chi tiꢏt” mꢃi.  
“Chi tiꢏt” mꢃi: Đꢄi tưꢅng!!  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
5
Đꢃi tưꢄng và lꢂp  
ꢀ Tính chꢌt cꢋa đꢃi tưꢄng:  
ꢀ Cꢌu trúc dꢖ liꢗu mꢂi.  
ꢀ Bao gꢙm cꢕ dꢖ liꢗu và xꢇ lý.  
ꢂ Thuꢆc tính (attribute): dꢖ liꢗu cꢋa đꢃi tưꢄng.  
ꢂ Phương thꢎc (method): xꢇ lý cꢋa đꢃi tưꢄng.  
Function  
Struct  
Object  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
6
Đꢃi tưꢄng và lꢂp  
ꢀ Khái niꢗm lꢂp:  
ꢀ Biꢔn ~ kiꢚu.  
Person:  
ꢀ Name.  
ꢀ Biꢔn cꢌu trúc ~ kiꢚu cꢌu trúc.  
ꢀ Age.  
ꢀ Đꢃi tưꢄng ~ lꢂp:  
ꢀ Hair Color.  
ꢀ Eat( ).  
ꢂ Kiꢚu cꢋa đꢃi tưꢄng.  
ꢀ Work( ).  
ꢂ Bꢕn mô tꢕ đꢃi tưꢄng:  
ꢂ Thuꢆc tính (dꢖ liꢗu).  
ꢂ Phương thꢎc (hàm xꢇ lý).  
Person1:  
Person2:  
ꢀ Name: Peter.  
ꢀ Age: 25.  
ꢀ Name: Thomas.  
ꢀ Age: 50.  
ꢀ Hair Color: Brown.  
ꢀ Eat().  
ꢀ Hair Color: White.  
ꢀ Eat( ).  
ꢀ Work().  
ꢀ Work( ).  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
7
Nꢆi dung  
ꢀ Đꢃi tưꢄng và lꢂp.  
ꢀ Sꢐ dꢈng đꢄi tưꢅng trong C++.  
ꢀ Tꢉm vꢊc.  
ꢀ Bài tꢁp.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
8
Sꢇ dꢈng đꢃi tưꢄng trong C++  
ꢀ Cách sꢇ dꢈng đꢃi tưꢄng:  
ꢀ Tương tꢊ sꢇ dꢈng biꢔn cꢌu trúc.  
ꢀ Các bưꢂc sꢇ dꢈng:  
ꢂ Khai báo lꢂp (file .h): tꢒo kiꢚu cho đꢃi tưꢄng.  
class <Tên lꢂp>  
{
<Khai báo thuꢀc tính>;  
<Khai báo phương thꢁc>;  
};  
ꢂ Cài đꢏt lꢂp (file .cpp): cài đꢏt phương thꢎc cho đꢃi tưꢄng.  
ꢂ Tương tꢊ cài đꢏt hàm, kèm tên lꢂp và toán tꢇ ::.  
ꢂ Sꢇ dꢈng đꢃi tưꢄng tꢓ lꢂp:  
ꢂ Khai báo biꢔn có kiꢚu là lꢂp.  
ꢂ Truy xuꢌt thành phꢉn đꢃi tưꢄng: dùng dꢌu “.” hoꢏc “ꢅ>” (con trꢐ).  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
9
Sꢇ dꢈng đꢃi tưꢄng trong C++  
ꢀ Ví dꢈ: so sánh đꢃi tưꢄng và biꢔn cꢌu trúc.  
// Khai báo kiꢃu cꢄu trúc, file PhanSo.h  
// Khai báo lꢂp, file PhanSo.h  
struct PhanSo  
class PhanSo  
{
{
int m_tuSo;  
int m_mauSo;  
};  
private:  
int m_tuSo;  
int m_mauSo;  
public:  
PhanSo cong(PhanSo p1, PhanSo p2);  
PhanSo cong(PhanSo p);  
};  
// Cài đꢅt hàm cꢀng, file PhanSo.cpp  
// Cài đꢅt lꢂp, file PhanSo.cpp  
PhanSo cong(PhanSo p1, PhanSo p2)  
PhanSo PhanSo::cong(PhanSo p)  
{
{
// Cài đꢏt cꢆng phân sꢃꢛ  
}
// Cài đꢏt cꢆng phân sꢃꢛ  
}
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
10  
Sꢇ dꢈng đꢃi tưꢄng trong C++  
ꢀ Ví dꢈ: so sánh đꢃi tưꢄng và cꢌu trúc.  
// Sꢆ dꢇng cꢄu trúc, file main.cpp  
// Sꢆ dꢇng đꢈi tưꢉng, file main.cpp  
void main()  
{
void main()  
{
PhanSo p1;  
PhanSo p2;  
PhanSo p1;  
PhanSo p2;  
cong( p1, p2 );  
p1.cong( p2 );  
}
}
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
11  
Nꢆi dung  
ꢀ Đꢃi tưꢄng và lꢂp.  
ꢀ Sꢇ dꢈng đꢃi tưꢄng trong C++.  
ꢀ Tꢎm vꢌc.  
ꢀ Bài tꢁp.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
12  
Tꢉm vꢊc  
ꢀ Khái niꢗm tꢉm vꢊc:  
ꢀ Tꢉm ꢕnh hưꢜng, phꢒm vi hoꢒt đꢆng:  
Block khai báo  
ꢂ Biꢔn.  
Toàn chương trình  
ꢂ Hàm.  
Block khai báo biꢔn cꢌu trúc  
ꢂ Thành phꢉn cꢋa cꢌu trúc.  
ꢂ Thành phꢉn cꢋa đꢃi tưꢄng.  
Có thꢚ điꢝu chꢞnh!!  
ꢀ Tꢉm ꢕnh hưꢜng càng hꢟp, truy xuꢌt càng hꢒn chꢔ.  
ꢀ Bꢕng phân loꢒi tꢉm vꢊc đꢃi tưꢄng:  
Tꢎm vꢌc  
Tꢎm ꢑnh hưꢒng  
Phꢍm vi hoꢍt đꢆng  
private  
Hꢟp  
Rꢆng  
Vꢓa  
Bên trong lꢂp.  
public  
Bên trong lꢠn bên ngoài lꢂp.  
Bên trong lꢂp và lꢂp kꢔ thꢓa.  
protected  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
13  
Tꢉm vꢊc  
ꢀ Ví dꢈ: hoꢒt đꢆng cꢋa các loꢒi tꢉm vꢊc.  
void main()  
{
class A  
{
A obj;  
private:  
int x;  
public:  
int y;  
int x = obj.x;  
obj.x = 1;  
// Sai  
// Sai  
int y = obj.y;  
obj.y = 2;  
// Đúng  
// Đúng  
public:  
int getX( );  
private:  
void calculate( );  
int t = obj.getX( ); // Đúng  
obj.calculate( ); // Sai  
};  
}
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
14  
Tꢉm vꢊc  
ꢀ Dr. Guru khuyên:  
ꢀ Quy tꢡc hꢆp đen:  
ꢂ Thuꢆc tính có tꢉm vꢊc private đꢚ hꢒn chꢔ truy xuꢌt.  
ꢂ Phương thꢎc có tꢉm vꢊc public đꢚ cung cꢌp tính năng.  
class PhanSo  
{
private:  
int m_tu;  
int m_mau;  
public:  
Dꢖ liꢗu  
(Thuꢆc tính)  
Tính năng  
(Phương thꢎc)  
PhanSo cong( PhanSo p );  
PhanSo rutGon( );  
};  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
15  
Tꢉm vꢊc  
ꢀ Toán tꢇ :: (bꢃn chꢌm):  
ꢀ Lꢂp 5A và 5B đꢝu có hꢢc sinh tên Lê Phương.  
ꢀ Làm sao đꢓ phân biꢉt?  
Lꢃp 5A  
ꢂ Trưꢣng hꢄp 1: đꢎng trong lꢂp.  
ꢂ Trưꢣng hꢄp 2: đꢎng ngoài lꢂp.  
ꢀ Toán tꢐ ::  
ꢂ Dùng gꢢi tên thành phꢉn cꢋa lꢂp  
tꢔ bên ngoài.  
Lꢃp 5B  
ꢂ <Tên lꢂp>::<Tên thành phꢉn>  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
16  
Tꢉm vꢊc  
ꢀ Ví dꢈ: cài đꢏt phương thꢎc trong/ngoài lꢂp.  
PhanSo PhanSo::cong(PhanSo p)  
class PhanSo  
{
{
// Cài đꢏt bên ngoài lꢂp.  
}
private:  
int m_tu;  
int m_mau;  
public:  
PhanSo cong(PhanSo p)  
{
// Cài đꢏt bên trong lꢂp.  
}
};  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
17  
Tóm tꢡt  
ꢀ Đꢃi tưꢄng và lꢂp:  
ꢀ Đꢃi tưꢄng là mꢆt cꢌu trúc dꢖ liꢗu mꢂi.  
ꢀ Đꢃi tưꢄng chꢎa dꢖ liꢗu lꢠn xꢇ lý.  
ꢀ Lꢂp là bꢕn mô tꢕ / kiꢚu cꢋa đꢃi tưꢄng.  
ꢀ
Sꢇ dꢈng đꢃi tưꢄng:  
ꢀ Khai báo lꢂp bꢤng tꢓ khóa “class”.  
ꢀ Giꢃng sꢇ dꢈng cꢌu trúc.  
ꢀ Tꢉm vꢊc:  
ꢀ Tꢉm ꢕnh hưꢜng, phꢒm vi hoꢒt đꢆng.  
ꢀ Có 3 mꢎc: public, private, protected.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
18  
Bài tꢁp  
ꢀ Bài tꢁp 2.1:  
Xây dꢊng lꢂp phân sꢄ cho phép thꢊc hiꢗn các thao tác:  
ꢀ Nhꢁp, xuꢌt.  
ꢀ Lꢌy tꢇ sꢃ, mꢠu sꢃ.  
ꢀ Gán giá trꢍ cho tꢇ sꢃ, mꢠu sꢃ.  
ꢀ
Nghꢍch đꢕo, rút gꢢn.  
ꢀ Cꢆng, nhân, so sánh vꢂi phân sꢃ khác.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
19  
Bài tꢁp  
ꢀ Bài tꢁp 2.2:  
Xây dꢊng lꢂp đơn thꢕc cho phép thꢊc hiꢗn các thao tác:  
ꢀ Nhꢁp, xuꢌt.  
ꢀ Lꢌy hꢗ sꢃ, sꢃ mũ.  
ꢀ Gán giá trꢍ cho hꢗ sꢃ, sꢃ mũ.  
ꢀ
Tính giá trꢍ, đꢒo hàm.  
ꢀ Cꢆng (cùng bꢁc), nhân, so sánh vꢂi đơn thꢎc khác.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
20  
Tải về để xem bản đầy đủ
pdf 22 trang myanh 20780 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phương pháp lập trình hướng đối tượng - Chương 1: Tổng quan về lập trình hướng đối tượng - Nguyễn Minh Huy", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_phuong_phap_lap_trinh_huong_doi_tuong_chuong_1_ton.pdf