Mục tiêu Mục tiêu
Chương 2: NHẬP MÔN MÔN Chương 2: NHẬP
à lậ t ì h hướ thủ t
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
(cid:132) 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 đối hướ tượng.
(Introduction to OOP) (Introduction to OOP)
(cid:132) Phân tích, thiết kế và hiện thực được một chương trình theo phương pháp hướng đối tượng. hướng đối tượng.
(cid:132) Nhận diện một số ngôn ngữ OOP. (cid:132) Nhận biết các khái niệm cơ bản của
Slide 11 Slide
Slide 22 Slide
OOP.
Lập trình thủ tục 1.11.1-- Lập trình thủ tục
Nội dung chi tiết Nội dung chi tiết
(cid:132)(cid:132) POPPOP-- Procedure Oriented Programming. Procedure Oriented Programming. Program (cid:132)(cid:132) Data structure + Algorithm = Program Data structure + Algorithm Data structure + Algorithm = Program Program (cid:132)(cid:132) Data structure + Algorithm Kỹ thuật POP: (cid:132)(cid:132) Kỹ thuật POP:
đối tượ đối tượ
Program
struct XX {..... };
Data structure
pick nouns
Từ lập trình cấu trúc đến lập trình (cid:132)(cid:132) Từ lập trình cấu trúc đến lập trình hướ hướng đối tượng. hướng đối tượng. hướ Phương pháp lập trình hướng đối (cid:132)(cid:132) Phương pháp lập trình hướng đối tượng. tượng. Ưu điểm của lập trình hướng đối (cid:132)(cid:132) Ưu điểm của lập trình hướng đối tượng. tượng. tượng tượng
Problem
type Fun (XX x) {..... };
pick verbs
Operation (function)
void main() { X x;
Fun(x);
};
Slide 33 Slide
Slide 44 Slide
1
Nhược điểm của POP 1.21.2-- Nhược điểm của POP
Nhược điểm của POP... Nhược điểm của POP...
(cid:132)(cid:132) Diễn đạt “
nhiên” thiếu tự nhiên”
VietLyLich(x);
(cid:132)(cid:132) Biểu diễn dạng cấu trúc
x.VietLyLich();
Diễn đạt “thiếu tự Có học sinh x Có học sinh x “Viết lý lịch cho học sinh x” “Viết lý lịch cho học sinh x” “x ơi, viết lý lịch đi nhé” “x ơi, viết lý lịch đi nhé”
Diễn đạt nào tự nhiên hơn? Diễ đ t à t ?
hiê h
pointer.. hoặc một pointer
Slide 55 Slide
Slide 66 Slide
“x ơi, viết lý lịch đi nhé” Khó mô tả những quan hệ phức tạp của (cid:132)(cid:132) Khó mô tả những quan hệ phức tạp của nhiên thế giới tự nhiên thế giới tự thế iới tự hiêhiê thế iới tự “phức tạp”, Biểu diễn dạng cấu trúc “phức tạp”, không phải là dễ dàng đối với nhiều không phải là dễ dàng đối với nhiều người người •• Quan hệ giữa các dữ liệu được biểu diễn Quan hệ giữa các dữ liệu được biểu diễn Quan hệ giữa các dữ liệu được biểu diễn •• Quan hệ giữa các dữ liệu được biểu diễn bằng cấu trúc lồng nhau hoặc một bằng cấu trúc lồng nhau (cid:206)(cid:206) Tính phân lớp khó được phát hiện, có khó Tính phân lớp khó được phát hiện, có khó khăn trong biểu diễn lẫn tính dễ hiểu.. khăn trong biểu diễn lẫn tính dễ hiểu
Nhược điểm của POP... Nhược điểm của POP...
Nhược điểm của POP... Nhược điểm của POP...
Hiện thực
Tự nhiên
Bảo mật kém do không thể giới hạn (cid:132)(cid:132) Bảo mật kém do không thể giới hạn truy xuất đến một dữ liệu. t truy xuất đến một dữ liệu. t ất đế ột dữ liệ ất đế ột dữ liệ
Person
struct PERSON struct PERSON {.... } ;
struct STUDENT { char Name[21];
struct MALE { PERSON Data
is a
is a
int Age; int Score;
Bạn nghĩ sao về 2 tác vụ này?
} ; } ;
Diễn đạt phải tường minh (cid:198) không tự nhiên tự nhiên
}; }
void main() {STUDENT x = { “Hoa”, 19, 5}; x.Age=1000; x.Score=-20; };
Male
Female
struct FEMALE { PERSON Data
} ;
Slide 77 Slide
Slide 88 Slide
2
Nhược điểm của POP... Nhược điểm của POP...
Lập trình hướng đối tượng 1.31.3-- Lập trình hướng đối tượng
iú iải iú iải
các lời yêu là ột t ật t á lời ê là một trật tự các lời yêu á lời ê
Cần một phương pháp lập trình khác (cid:132)(cid:132) Cần một phương pháp lập trình khác giúp giải quyết những nhược điểm này. giúp giải quyết những nhược điểm này. ết hữ hượ điể à ết hữ hượ điể à (cid:132)(cid:132) OOP có những đặc điểm vượt trội so với OOP có những đặc điểm vượt trội so với POP và là hướng lập trình chủ đạo hiện POP và là hướng lập trình chủ đạo hiện nay.nay.
(cid:132)(cid:132) OOP OOP –– Object Oriented Programming. Object Oriented Programming. t ì h là ự h t độ Chươ (cid:132) Chương trình là sự hoạt động của các đối ủ á đối Giống tự nhiên. tượng (cid:198)(cid:198) Giống tự nhiên. (cid:132)(cid:132) Đối tượng thực thi một hoạt động tức là đối Đối tượng thực thi một hoạt động tức là đối tượng thực hiện một mà đối tượng hành vi mà đối tượng tượng thực hiện một hành vi này có khả năng.. này có khả năng Một hươ Một chương trình là một trật tự (cid:132)(cid:132) Một chương trình t ì h là ột t ật t t ì h Một hươ cầu tượng thực hiện hành vi của mình. cầu đối đối tượng thực hiện hành vi của mình. Chương trình là một kịch bản (script). (cid:206)(cid:206) Chương trình là một kịch bản (script).
Slide 99 Slide
Slide 1010 Slide
Dễ mô tả các quan hệ phân cấp trong thế giới tự (cid:132)(cid:132) Dễ mô tả các quan hệ phân cấp trong thế giới tự nhiên. nhiên.
Có tính bảo mật cao: Bên ngoài không thể tùy (cid:132)(cid:132) 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. tiện truy cập một dữ liệu thuộc tính. tiện truy cập một dữ liệu thuộc tính tiện truy cập một dữ liệu thuộc tính
Ưu điểm của OOP 1.41.4-- Ưu điểm của OOP Ưu điểm của OOPOOP...... Ưu điểm của
Tự nhiên
Person
Hiện thực class PERSON {.... } ;
tự nhiên
class MALE: PERSON
{
is a
is a
Male
Female
class FEMALE: PERSON
{
Slide 1111 Slide
Slide 1212 Slide
3
Ưu điểm của OOP: Dễ tái sử dụng code Ưu điểm của OOP: Dễ tái sử dụng code
Sơ lược về OOP 1.51.5-- Sơ lược về OOP
Đối tượng (object): Bao gói dữ liệu + (cid:132)(cid:132) Đối tượng (object): Bao gói dữ liệu + hành vi. hành vi.
Tái sử dụng code
Đối tượng phải thuộc một lớp (class). (cid:132)(cid:132) Đối tượng phải thuộc một lớp (class).
•• class
methods (biến, thuộc tính)+ methods
Muốn làm việc trên đối tượng, ta phải (cid:132)(cid:132) Muốn làm việc trên đối tượng, ta phải lớp: xây dựng lớp: xây dựng lớp: xây dựng xây dựng lớp:
class = = datadata (biến, thuộc tính)+ (phương thức, hành vi). (phương thức, hành vi).
Tái sử dụng code
Slide 1313 Slide
Slide 1414 Slide
Vd: lớp học sinh (cid:132)(cid:132) Vd: lớp học sinh
Sơ lược về OOP Sơ lược về OOP
Ngôn ngữ OOP 1.61.6-- Ngôn ngữ OOP
•• Bao gói
3 khái niệm cơ bản của OOP (cid:132)(cid:132) 3 khái niệm cơ bản của OOP
(đóng gói) dữ liệu + hành vi. Bao gói (đóng gói) dữ liệu + hành vi.
•• Tính thừa kế:
Tính thừa kế: Một lớp có thể thừa kế từ Một lớp có thể thừa kế từ lớp khác. lớp khác.
•• Tính đa hình:
C++ ( Borland C++, Visual C++) (cid:132)(cid:132) C++ ( Borland C++, Visual C++) (cid:132)(cid:132) JavaJava (cid:132)(cid:132) C# ( C sharp) C# ( C sharp) Visual Basic. (cid:132)(cid:132) Visual Basic. ..... (cid:132)(cid:132) .....
Tính đa hình: Kỹ thuật cho phép có khác Kỹ thuật cho phép có khác biệt giữa code của cùng một hành vi trong biệt giữa code của cùng một hành vi trong lớp cha và trong lớp con. lớp cha và trong lớp con.
Slide 1515 Slide
Slide 1616 Slide
4
Ngôn ngữ OOP Ngôn ngữ OOP Phương pháp giải bài toán theo OOP 1.71.7-- Phương pháp giải bài toán theo OOP
Program
(cid:132)(cid:132) C++,
properties
pick pick nouns
Problem
C++, MSMS VC++VC++:: hỗhỗ trợtrợ cảcả POPPOP lẫnlẫn thừa kếkế.. OOPOOP (cid:198)(cid:198) LaiLai OOPOOP.. HỗHỗ trợtrợ đađa thừa tượng làlà biếnbiến củacủa chương ĐốiĐối tượng trình.. chương trình main() làlà POPPOP.. HàmHàm main()
Bao gói dữ liệu và hành vi thành class
class XX { type1 prop1; type2 prop2; ....... type Method1(...) { } .....
};
pick verbs
void main() { X x; // object variable
x.Method(...);
(Microsoft):: chỉchỉ hỗhỗ JavaJava (Sun), (Microsoft):: chỉchỉ hỗhỗ (Sun), C#C# (Microsoft) (Sun), C#C# (Microsoft) (cid:132)(cid:132) JavaJava (Sun), trợtrợ OOP,OOP, hàmhàm mainmain phảiphải nằmnằm trong trong mộtmột lớplớp.. ChỉChỉ hỗhỗ trợtrợ đơnđơn thừa thừa kếkế..
};
Operation (function, method, behavior)
Slide 1717 Slide
Slide 1818 Slide
Giải bài toán hướng POP với C++ Giải bài toán hướng POP với C++
Giải bài toán hướng POP với C Giải bài toán hướng POP với C
(cid:132) Viế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ự), điểm (int).
(cid:132) Danh từ: Học sinh (cid:198) cấu trúc HS (cid:132) Động từ: (cid:132) Động từ:
• Nhập một hs (cid:198) Hàm Nhap(HS&hs) • Xuất một hs (cid:198) Hàm Xuat(HS hs);
Slide 1919 Slide
Slide 2020 Slide
i h Thô ề 1 h tâ ti ầ
5
Slide 2121 Slide
Slide 2222 Slide
Đối chứng hai cách hiện thực Đối chứng hai cách hiện thực Giải bài toán hướng OOP Giải bài toán hướng OOP
Tóm tắt Tóm tắt
Tóm tắt Tóm tắt
ụ gụ g
ểể
Slide 2323 Slide
Slide 2424 Slide
POP: Xem dữ liệu và tác vụ rời nhau. (cid:132)(cid:132) POP: Xem dữ liệu và tác vụ rời nhau. Các nhược điểm của POP (cid:132)(cid:132) Các nhược điểm của POP •• Mô tả các quan hệ giữa các đối tượng dữ 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ự liệu trong tự nhiên theo cách “không tự nhiên”. nhiên”. Khó tái sử dụng code. •• Khó tái sử dụng code. Bảo mật kém. •• Bảo mật kém. OOP: Xem dữ liệu và tác vụ là một thể (cid:132)(cid:132) OOP: Xem dữ liệu và tác vụ là một thể thố thống nhất. thống nhất. hất hất thố Ưu điểm của OOP: (cid:132)(cid:132) Ưu điểm của OOP: Mô tả các quan hệ giữa các đối tượng dữ •• 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”. liệu trong tự nhiên theo cách “ tự nhiên”. Dễ tái sử dụng code. •• Dễ tái sử dụng code. Dễ tái sử dụng code. Dễ tái sử dụng code. Có cơ chế bảo mật dữ liệu. •• Có cơ chế bảo mật dữ liệu.
6
Câu hỏi Câu hỏi
(cid:132)(cid:132) 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 POP. Trình bày phương pháp lập trình OOP. (cid:132)(cid:132) Trình bày phương pháp lập trình OOP.
Slide 2525 Slide

