Một hành động cần có của một đối tượng hoặc thực thể khi được biểu thị trong một lớp được gọi là một phương thức.. - VD: các phương thức của sinh viên: Viết lý lịch,.[r]
(1)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
Sự khác giửa lập trình hướng đối tượng lập trình cấu trúc (truyền
thống):
- POP- Procedure Oriented Programming: Lập trình hướng thủ tục
-Data structure(CTDL) + Algorithm(Thuật
toán) = Program(chương trình)
CTDL Thuật
tốn Chương trình
+ =
(2)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
Diễn đạt “thiếu tự nhiên” Có học sinh x
“Viết lý lịch cho học sinh x”
“x ơi, viết lý lịch em”
Diễn đạt tự nhiên hơn?
“x ơi, viết lý lịch em”
VietLyLich(x);
x.VietLyLich();
(3)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
Khó mơ tả quan hệ phức tạp giới tự nhiên Biểu diễn dạng cấu trúc “phức tạp”
không phải dễ dàng nhiều người
Quan hệ liệu biểu diễn cấu trúc lồng pointer
(4)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
Bảo mật giới hạn truy xuất đến liệu
struct STUDENT { char Name[21]; int Age;
int Score; };
void main()
{STUDENT x = { “Hoa”, 19, 5}; x.Age=1000;
(5)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
Cần phương pháp lập trình khác giúp giải nhược điểm này.
(6)Diễn đạt hướng đối tượng
Thí dụ 1: Xét hai diễn đạt:
• Nhân viên văn phòng viết lý lịch cho sinh viên “Hồng”
ViếtLýLịch(Hồng);
• Hồng ơi, viết lý lịch em.Hồng.ViếtLýLịch();
Theo bạn, tình với thực tế? Thí dụ 2: Xét hai diễn đạt:
• Tính tổng mảng a có n phần tử Tổng(a,n); • Mảng a ơi, tình tổng em: a.Tổng();
(7)Diễn đạt hướng đối tượng
• Diễn đạt tác vụ theo hướng thủ tục :
TênTácVụ(ĐốiTượngDữLiệu); Tổng(a,n);
• Diễn đạt tác vụ theo hướng đối tượng :
ĐốiTượngDữLiệu.TênTácVụ(); a.Tổng();
• Xem liệu đối tượng làm chương trình
(8)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
II CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG CƠ BẢN
Đối tượng-Object Lớp-Class
Tính thừa kế- Inheritance
(9)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
Đối tượng - Object:
Một đối tượng khái niệm nội dung có biên định nghĩa có liên
quan đến vấn đề mà ta giải
- Các thuộc tính: Tính chất/đặc tính riêng. - Các hành động: Các hành động
đối tượng
Tam giác
(10)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
Lớp - Class:
Một lớp cách gom nhóm đối tượng có tính chất, cách ứng xử (hành động) mối quan hệ chung
(11)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
Tính chất/thuộc tính lớp:
Một đặc tính cần có đối tượng
hoặc thực thể biểu thị lớp gọi tính chất
-VD: thuộc tính sinh viên: MSV, Họ tên,
Ngày sinh, Lớp học, Điểm TB,…
(12)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
Phương thức/hành động lớp:
Một hành động cần có đối tượng thực thể biểu thị lớp gọi một phương thức
-VD: phương thức sinh viên: Viết lý lịch,
đăng ký môn học, học,…
(13)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
(14)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
TÍNH THỪA KẾ
Thừa kế tính chất cho phép dùng lại một lớp có để xây dựng lớp mới.
Lớp cha: Là lớp từ lớp khác thừa kế tính chất.
(15)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
Đơn thừa kế: Là tiến trình tạo lớp từ lớp có
Đa thừa kế: Là tiến trình tạo lớp từ hai hay nhiều lớp có
NGƯỜI
Sinh viên Nhân viên
ĐỘNG VẬT Cơn
trùng Có vú Bị sát
(16)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN LỚP VÀ CẤU TRÚC CỦA LỚP
class <Tên lớp>{ private:
<Kiểu liệu> <thuộc tính>; …
<Kiểu trả về> <phương thức>; public:
<Kiểu liệu> <thuộc tính>; …
(17)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN LỚP VÀ CẤU TRÚC CỦA LỚP
Ví dụ:
class Date{ private:
int month, day, year; public:
void set(int,int,int); void print();
};
PHÂN TÍCH VÀ THIẾT KẾ LỚP
(18)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
CÁC THÀNH VIÊN RIÊNG VÀ CHUNG CỦA LỚP
Dữ liệu hàm Dữ liệu hàm LỚP
RIÊNG CHUNG
Không thể truy cập từ lớp bên
(19)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
CÁC THÀNH VIÊN RIÊNG VÀ CHUNG CỦA LỚP
# include <iostream.h>
class diem // khai báo lớp điểm
{
private : int x; int y; public :
void khoitao(int, int); void hien();
};
void diem :: khoitao(int h, int t) { x=h; y=t ; }
void diem :: hien()
(20)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
HÀM THÀNH VIÊN
-Một thông điệp cho đối tượng tương ứng với
lệnh gọi hàm
- Các thông điệp có tham số khơng.
- Để đáp lại thông điệp, đối tượng thi hành
phương thức, tương ứng thân thủ tục
- Một phương thức hàm nằm lớp.
- Trong lập trình hướng đối tượng ta gửi thơng điệp thay
vì gọi hàm <đối tượng>.<thông điệp>
- Một hàm khai báo dạng thành viên
(21)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
HÀM THÀNH VIÊN
-Các hàm thành viên thường nằm phần chung
lớp
- Các hàm, phương thức lớp phải định
nghĩa trước dùng
- Phần khai báo phải có gía trị trả đối số
nó (nếu có)
- Các hàm thành viên không trùng tên với
(22)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
SỬ DỤNG LỚP
class exampleclass{
private:
object_data is an integer; public:
member_function1(parameter1, parameter2, …) { assign value to object_data }
member_funtion2() { display data } };
void main()
{ exampleclass object1, object2;
object1.member_function1(200); object1.member_function2();
object2.member_function1(350);
(23)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
SỬ DỤNG LỚP – Định nghĩa đối tượng
Exampleclass object1, object2;
-Lớp Exampleclass không tạo đối tượng hết, mô tả
đối tượng tạo có dạng
- Định nghĩa đối tượng tương tự định nghĩa
một biến
- Khi định nghĩa đối tượng khơng gian
chừa riêng cho nhớ
(24)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
SỬ DỤNG HÀM – Gọi hàm thành viên
-Để liên lạc với đối tượng, ta gọi hàm thành viên
của chúng
object1.member_function1(200); object1.member_function2();
-Một hàm thành viên gọi để tác động lên đối tượng cụ thể
- Cú pháp truy cập hàm thành viên:
<tên đối tượng>.<tên hàm thành viên>()
- Truy cập liệu thành viên lớp:
(25)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
SỬ DỤNG HÀM – Truyền trả đối tượng
-Việc truyền trả đối tượng
truyền trả kiểu liệu cho hàm.
- Việc truyền trả liệu không thật
(26)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
CÁC NGÔN NGỮ HƯỚNG ĐỐI TƯỢNG
-C++ -JAVA
-VISUAL BASIC -VISUAL C#
…
(27)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
BÀI TẬP TRÊN LỚP
1 - Phân tích lớp hinhchunhat (Hình chữ nhật) - Khai báo lớp hinhchunhat
- Viết hàm main khai thác lớp hinhchunhat + Tạo hinhchunhat A
+ Nhập thơng tin cho hình A + In thơng tin hình A
(28)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
BÀI TẬP TRÊN LỚP
2 Xây dựng lớp Ccircle (Hình trịn) - Dữ liệu thành viên: bán kính R
- Hàm thành viên:
+ Nhập bán kính hình trịn + In bán kính hìn trịn
+ Tính chu vi hình trịn
+ Tính diện tích hình tròn
(29)CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
BÀI TẬP TRÊN LỚP
3 Xây dựng lớp CAccount
- Dữ liệu thành viên: Tên, Mã số tài khoản, Tiền
-Hàm thành viên:
+ Nhập thông tin cho tài khoản + In thông tin cho tai khoản
+ Lấy thông tin số tiền tài khoản Viết hàm main để khai thác lớp
(30)• Một đối tượng sách hệ thống quản lý thư viện có thuộc tính:
• - Tên sách
• - Tổng số sách
• - Số sách cho mượn
• Xây dựng lớp CSach với thuộc tính tên phương thức sau:
• - Phương thức nhập liệu cho đối tượng từ bàn phím Các thơng tin
cần nhập tên sách, tổng số sách, số cho mượn
• - Phương thức in thơng tin đối tượng hình
• - Phương thức tính số sách lại thư viện (tổng số - số
cho mượn)
• Trên số lớp xây dựng, viết chương trình thực cơng
việc:
• - Nhập danh sách sách với số lượng sách
nhập từ bàn phím
• - In hình sách có thư viện (Số sách lại