Bài giảng Phương pháp lập trình hướng đối tượng - Tuần 02: Lớp và đối tượng - Phạm Tú San
Tuần 02:
Lꢀp và đꢁi tưꢂng
Đꢀt vꢁn đꢂ
Viết chương trình nhập họ tên, điểm toán,
điểm văn của một học sinh. Tính điểm trung
bình và xuất kết quả
Lꢃp trình hưꢄng thꢅ tꢆc
struct HocSinh
{
void NhapHS(HocSinh &hs);
void XuatHS(HocSinh hs);
float DiemTB(HocSinh hs);
int MaHS;
char HoTen[50];
float DiemToan;
float DiemVan;
};
Thành phần xử lý
void main()
{
Lấy hành
HocSinh a;
NhapHS(a);
XuatHS(a);
động làm
trung tâm
Thành phần dữ liệu
}
Vꢁn đꢂ phát sinh
Giả sử một đoạn trong chương trình:
void main()
{
HocSinh a;
NhapHS(a);
Sai!
……
a.DiemToan = -5;
}
Kiểm soát dữ liệu thế nào?
Đóng gói dữ
liệu!
Đꢀt vꢁn đꢂ
Lập trình hướng đối tượng
Đóng gói dữ liệu, lấy dữ liệu làm trung tâm
Dữ liệu của ai do người đó quản lý
Muốn đổi điểm học sinh -> phải nhờ đối tượng
học sinh làm giúp
Lꢃp trình hưꢄng đꢇi tưꢈng
class CHocSinh
{
private:
char mMSSV;
char mHoTen[50];
float mDiemToan;
float mDiemVan;
void main
{
CHocSinh a;
a.mDiemToan = -5;
public:
void GanDiemToan(int diem)
{
a.GanDiemToan(-5);
}
if(diem>=0 && diem<=10)
this->mDiemToan = diem;
}
};
Lꢃp trình hưꢄng đꢇi tưꢈng
Object Oriented Programming (OOP)
Là một cách tiếp cận (hay phương pháp/kiểu)
lập trình (design philosophy)
Các ngôn ngữ lập trình hướng đối tượng: C++, C#,
Java..
Chương trình hướng đối tượng là chương trình
dựa trên sự tương tác giữa các đối tượng
(objects)
ĐỐI TƯỢNG là trung tâm
Đꢇi tưꢈng (object)
Đối tượng – một thực thể cụ thể
thuộc tính - attribute (dữ liệu)
hành động - method (hoạt động, ứng xử, xử lý)
Học sinh Nguyễn Văn, phân số p = ½…
Trong thực tế
Thuộc tính – các biến, tham số hay hằng nội tại của
một đối tượng – mô tả tính chất
Phương thức – hàm – phương tiện sử dụng
Ví dꢆ đꢇi tưꢈng
Ví dụ: Chương trình “Điểm trung bình 3 HS”
class HocSinh{
private:
void main(){
HocSinh a(“Viꢀt"),
b(“Cưꢁng"),
c(“Thuꢂn");
char hoten[31];
int toan;
int van;
public:
a.diThi(); b.diThi();
c.diThi();
HocSinh(char*
iHoTen);
a.tinhDTB();
b.tinhDTB();
void diThi();
void xuat();
c.tinhDTB();
a.xuat(); b.xuat();
float tinhDTB(); c.xuat();
};
}
Liệt kê một số đối tượng?
Thuộc tính?
Phương thức?
Lꢄp đꢇi tưꢈng (Class)
Đối tượng được trừu tượng hóa thành lớp đối
tượng - class
Lớp đối tượng là kiểu dữ liệu các đối tượng
cùng loại
Jessica Alba, Bill Gates -> đối tượng cùng loại
NGƯỜI
Lớp 11TH, lớp 12TH -> đối tượng cùng loại LỚP HỌC
Student objectStudent
= new Student();
public class Student
{ }
Ví dꢆ class
class XeHoi
{
private:
float mXangHienCo;
float mDungTichBinhXang;
public:
void Chay(float km);
void DoXang(float xang);
}
Các tính chꢁt cꢅa class
Đóng gói: chứa đựng dữ liệu và các hàm/thủ
tục liên quan
Che giấu dữ liệu: các thực thể phần mềm khác
không can thiệp trực tiếp vào dữ liệu bên trong
được mà phải thông qua các phương thức cho
phép
Mꢉt cách thꢊ hiꢋn điꢊn hình
Che giấu dữ liệu và các “giải thuật” cụ thể ở bên
trong lớp (class)
class <Tên lꢀp>
public
{
(methods)
private:
<Các thành
phꢁn riêng>
public:
private
(data)
<Các thành phꢁn
chung/công cꢂng>
};
lớp đối tượng
Phꢌm vi hoꢌt đꢉng (scope)
private: chỉ sử dụng được khi đang ở bên trong
lớp (class) đó
(Một cách giải thích khác: chỉ các hàm hay
phương thức ở bên trong của lớp đó mới nhìn
thấy được)
public: có thể sử dụng ở cả bên trong và bên
ngoài của lớp
VÍ dꢆ
class CHocSinh
{
private:
void main
{
char mHoTen[50];
float mDiemToan;
float mDiemVan;
CHocSinh a;
a.mDiemToan = -5;
a.GanDiemToan(-5);
public:
void GanDiemToan(int diem)
{
}
if(diem>=0 && diem<=10)
this->mDiemToan =
diem;
}
};
Các tính chꢁt cꢅa lꢃp trình hưꢄng đꢇi tưꢈng
1 – tính trừu tượng (abstraction)
2 – tính đóng gói (encapsulation) và che giấu
thông tin (information hiding)
3 – tính đa hình (polymorphism)
4 – tính kế thừa (inheritance)
Sơ đꢍ lꢄp – class diagram
Lớp đối tượng A có 3 thuộc tính là T1, T2, T3 và
4 hành động là H1, H2, H3, H
Tên lớp
Các thuộc tính
Các phương thức
Sơ đꢍ lꢄp – mꢎc cài đꢀt đưꢈc
Chương trình vꢏ uml
Một số chương trình hỗ trợ thiết kế sơ đồ UML
Astah
StarUML
Rational rose
Toán tꢐ phꢌm vi ::
Dùng để chỉ dẫn thành phần thuộc tính hay
phương thức thuộc một lớp đối tượng cụ thể
nào đó
CHocSinh::GanDiemToan(int diem)
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 - Tuần 02: Lớp và đối tượng - Phạm Tú San", để 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_tuan_02_lop.pdf

