• Các nhược điểm của POP – Mô tả các quan hệ giữa các đối tượng dữ liệu trong tự nhiên theo cách “không tự nhiên”.. – Khó tái sử dụng code... • Ưu điểm của OOP: – Mô tả các quan hệ giữa
Trang 1Ch ư ơ ng 0 1- Nh p m ôn OOP ậ Sli d e 1/
NHẬP MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
(OOP – Object Oriented Programming)
Ths Nguy n T h Thùy ễ ị
LẬP TRÌNH JAVA
Ch ươ ng 0
Ch ươ ng 0
Trang 2Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 2/
Mục tiêu
Nh n bi t s khác bi t gi a l p trình ậ ế ự ệ ữ ậ
h ướ ng th t c v à l p trình h ủ ụ ậ ướ ng đố i
t ượ ng
Phân tích, thi t k v à hi n th c ế ế ệ ự đượ c
Trang 3Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 3/
Nội dung chi tiết
Trang 4Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 4/
0.1- Lập trình thủ tục (POP- Procedure Oriented Programming)
Data structure + A lgorithm = Program
K thu t POP: ỹ ậ
Problem
Data structure
Operation (function)
Program
struct XX {
};
type Fun (XX x) {
};
void main() { X x;
Fun(x);
};
pick nouns
pick verbs
Ths Nguy n T h Thùy ễ ị
Trang 5Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli de 5 /
0.2- Nhược điểm của POP
Di n ễ đạ t “thi u t nhiên” ế ự
Có h c sinh x ọ
“V i t lý l ch h c sinh x” ế ị ọ “x i, v i t lý l ch i em” ơ ế ị đ
Diễn đạt nào tự nhiên hơn?
“x ơi, viết lý lịch đi em”
VietLyLich(x); x.VietLyLich();
Ths Nguy n T h Thùy ễ ị
Trang 6Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 6/
Male Female
is a is a
struct PERSON {
} ;
struct MALE { PERSON Data <dữ liệu thêm>
} ;
struct FEMALE { PERSON Data <dữ liệu thêm>
} ;
Diễn đạt phải tường minh
không
tự nhiên
Hiện thực
Trang 7Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli de 7 /
Ths Nguy n T h Thùy ễ ị
Trang 8Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli de 8 /
0.3- Lập trình hướng đối tượng (OOP – Object Oriented Programming)
Ch ươ ng trình là s ho t ự ạ độ ng c a các ủ đố i
t ượ ng Gi ng t nhiên ố ự
Đố ượ i t ng th c thi m t ho t ự ộ ạ độ ng t c là ứ đố i
t ượ ng th c hi n m t hành v i mà ự ệ ộ đố ượ i t ng này có kh n ng ả ă
M t ch ộ ươ ng trình là m t tr t t các l i y êu ộ ậ ự ờ
c u ầ đố ượ i t ng th c hi n hành v i c a mình ự ệ ủ
Ths Nguy n T h Thùy ễ ị
Trang 9Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 9/
0.4- Ưu điểm của OOP
D mô t các quan h phân c p trong th gi i t ễ ả ệ ấ ế ớ ự
nhiên
Tự nhiên Person
Male Female
is a is a
class PERSON {
Hiện thực
Ths Nguy n T h Thùy ễ ị
Trang 10Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 10 /
Có tính b o m t cao: Bên ngoài không th tùy ti n ả ậ ể ệ truy c p m t d li u thu c tính ậ ộ ữ ệ ộ
0.4- Ưu điểm của OOP
Ths Nguy n T h Thùy ễ ị
Trang 11Ch ươ ng 0 1- Nh p m ôn OOP ậ Slid e 11/
Trang 12Ch ươ ng 0 1- Nh p m ôn OOP ậ Slid e 12/
0.5- Sơ lược về OOP
Đố ượ i t ng (object): óng gói d li u + Đ ữ ệ
hành v i
Đố ượ i t ng ph i thu c m t l p (class) ả ộ ộ ớ
X ây d ng m t ự ộ đố ượ i t ng là xây d ng m t ự ộ
l p ớ
Class = data (bi n, thu c tính) + methods ế ộ (code)
Ths Nguy n T h Thùy ễ ị
Trang 13Ch ươ ng 0 1- Nh p m ôn OOP ậ Slid e 13/
0.5- Sơ lược về OOP
Trang 14Ch ươ ng 0 1- Nh p m ôn OOP ậ Slid e 14/
Trang 15Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 15 /
Trang 16Ch ươ ng 0 1- Nh p m ôn OOP ậ Slid e 16/
0.7- Phương pháp giải bài toán theo OOP
Problem
properties
Operation (function, method, behavior)
Program
class X { type1 prop1;
type2 prop2;
.
type Method1( ) {
}
};
void main() { X x; // object variable
x.Method1( );
};
pick nouns
pick verbs
Đóng gói dữ liệu và hành vi thành class
Ths Nguy n T h Thùy ễ ị
Trang 17Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 17 /
Giải bài toán hướng POP với C, C++
V i t ch ế ươ ng trình nh p ậ , xu t ấ 1 h c sinh ọ
Thông tin c n quan tâm v 1 h c sinh: Mã ầ ề ọ
h c sinh (8 ký t ), tên h c sinh (30 ký t ), ọ ự ọ ự
Trang 18Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 18 /
Giải bài toán hướng POP với C, C++
Ths Nguy n T h Thùy ễ ị
Trang 19Ch ươ ng 0 1- Nh p m ôn OOP ậ Slid e 19/
Giải bài toán hướng OOP
Ths Nguy n T h Thùy ễ ị
Trang 20Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 20 /
Đối chứng hai cách hiện thực
Ths Nguy n T h Thùy ễ ị
Trang 21Ch ươ ng 0 1- Nh p m ôn OOP ậ Slid e 21/
Bài tập
Dùng OOP v i C++ vi t ch ng trình: ớ ế ươ
Nh p vào 3 h c sinh, thông tin v m t h c ậ ọ ề ộ ọ
sinh: Mã, tên, i m 3 môn h c đ ể ọ
Xu t thông tin chi ti t v 3 h c sinh này g m: ấ ế ề ọ ồ
Mã, tên, i m trung bình đ ể
Ths Nguy n T h Thùy ễ ị
Trang 22Ch ươ ng 0 1- Nh p m ôn OOP ậ Slid e 22/
Tóm tắt
• POP: Xem dữ liệu và tác vụ rời nhau.
• Các nhược điểm của POP
– Mô tả các quan hệ giữa các đối tượng dữ liệu
trong tự nhiên theo cách “không tự nhiên”.
– Khó tái sử dụng code.
– Bảo mật kém.
Ths Nguy n T h Thùy ễ ị
Trang 23Ch ươ ng 0 1- Nh p m ôn OOP ậ Slid e 23/
Tóm tắt
• OOP: Xem dữ liệu và tác vụ là một thể
thống nhất.
• Ưu điểm của OOP:
– Mô tả các quan hệ giữa các đối tượng dữ liệu
trong tự nhiên theo cách “ tự nhiên”.
– Dễ tái sử dụng code.
– Có cơ chế bảo mật dữ liệu.
Ths Nguy n T h Thùy ễ ị
Trang 24Ch ươ ng 0 1- Nh p m ôn OOP ậ Slid e 24/
Câu hỏi
• Trình bày phương pháp lập trình POP.
• Trình bày phương pháp lập trình OOP.
Ths Nguy n T h Thùy ễ ị
Trang 25Ch ươ ng 0 1- Nh p m ôn OOP ậ Sli d e 25 /
(3) Để tái s d ng code C++, code ử ụ đượ c tái s ử
d ng ph i ụ ả đượ để c trong m t file và không ộ
có hàm main
Ths Nguy n T h Thùy ễ ị