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ꢐ( )
Lꢏt
Ưꢂp ( Thꢍt )
Luꢆc
Kho
Luꢆc ( Trꢎng )
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.
{
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.
ꢀ 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ꢃ.
ꢀ 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ũ.
ꢀ 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 đủ
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:
bai_giang_phuong_phap_lap_trinh_huong_doi_tuong_chuong_1_ton.pdf

