Nhập môn Lập trình Hướng đối tượng
MỞ ĐẦU
Sự khác nhau giửa lập trình hướng đối tượng và 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)
CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢN
NHƯỢC ĐIỂM CỦA POP
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 đi em”
CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNSự khác nhau giửa lập trình hướng đối tượng và lập trình cấu trúc (truyền thống):- POP- Procedure Oriented Programming: Lập trình hướng thủ tụcData structure(CTDL) + Algorithm(Thuật toán) = Program(chương trình)CTDLThuật toánChương trình+=I. MỞ ĐẦUCHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNDiễ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 đ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();NHƯỢC ĐIỂM CỦA POPCHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNKhó mô tả những quan hệ phức tạp của thế giới tự nhiên. 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 người.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 pointer. 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.CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNBảo mật kém do không thể giới hạn truy xuất đến một dữ liệu.struct STUDENT{ char Name[21]; int Age; int Score;};void main(){STUDENT x = { “Hoa”, 19, 5}; x.Age=1000; x.Score=-20; }CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNCầ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.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 nay.Diễn đạt hướng đối tượngThí 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 “Hoàng” ViếtLýLịch(Hoàng);Hoàng ơi, viết lý lịch đi em.Hoàng.ViếtLýLịch(); Theo bạn, tình huống nào đúng 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 đi em: a.Tổng();Xem a là một đối tượng.Diễn đạt hướng đối tượngDiễ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 dữ liệu là đối tượng làm chương trình tự nhiên hơn vì giống thực tế hơn.CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNII. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG CƠ BẢNĐối tượng-ObjectLớp-ClassTính thừa kế- InheritanceTính đa hình-PolymorphismCHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNĐối tượng - Object: Một đối tượng là một khái niệm hoặc nội dung có các biên được định nghĩa có liên quan đến vấn đề mà ta đang giải quyết. 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 khả dĩ của đối tượng.Tam giácChữ nhậtEm NgaCHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNLớp - Class: Một lớp là một cách gom nhóm các đối tượng có cùng các tính chất, cách ứng xử (hành động) và các mối quan hệ chung.VD: Hình học, Người, Sinh viên, Nhân viênCHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNTính chất/thuộc tính của lớp: Một đặc tính 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 tính chất.VD: thuộc tính của sinh viên: MSV, Họ tên, Ngày sinh, Lớp học, Điểm TB, VD: thuộc tính của nhân viên là gì???!!CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNPhương thức/hành động của lớp: 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, đăng ký môn học, học, VD: các phương thức của nhân viên là gì???!!CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNPHÂN TÍCH CÁC THUỘC TÍNH VÀ PHƯƠNG THỨC CỦA LỚPCHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNTÍNH THỪA KẾThừa kế là tính chất cho phép dùng lại một lớp hiện có để xây dựng một lớp mới.Lớp cha: Là lớp từ đó các lớp khác thừa kế các tính chất.Lớp con: Là lớp thừa kế các tính chất và phương thức của lớp khác.CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNĐơn thừa kế: Là tiến trình tạo ra lớp mới từ một lớp hiện có.Đa thừa kế: Là tiến trình tạo ra lớp mới từ hai hay nhiều lớp hiện có.NGƯỜISinh viênNhân viênĐỘNG VẬTCôn trùngCó vúBò sátMèoRùaCHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNLỚP VÀ CẤU TRÚC CỦA LỚPclass {private: ; ;public: ; ;};CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNLỚP VÀ CẤU TRÚC CỦA LỚPVí 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 SINH VIÊNCHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNCÁC THÀNH VIÊN RIÊNG VÀ CHUNG CỦA LỚPDữ liệu hoặc các hàmDữ liệu hoặc các hàmLỚPRIÊNGCHUNGKhông thể truy cập từ lớp bên ngoàiCó thể truy cập từ lớp bên ngoàiCHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNCÁC THÀNH VIÊN RIÊNG VÀ CHUNG CỦA LỚP# include 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(){ cout. Một hàm được khai báo dưới dạng một thành viên của một lớp được gọi là hàm thành viên (member funstions). Xem lại vd ở slide trước – xác định các hàm thành viên.CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNHÀM THÀNH VIÊNCác hàm thành viên thường nằm trong phần chung của lớp. Các hàm, các phương thức trong lớp phải được định nghĩa trước khi dùng. Phần khai báo phải có các gía trị trả về và các đối số của nó (nếu có). Các hàm thành viên không được trùng tên với bất kỳ một thành viên dữ liệu nào khác trong lớp.CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNSỬ DỤNG LỚPclass 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); object2.member_function2(); }CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNSỬ DỤNG LỚP – Định nghĩa đối tượngExampleclass object1, object2;Lớp Exampleclass không tạo đối tượng nào hết, chỉ mô tả đối tượng tạo ra có dạng ra sao. Định nghĩa một đối tượng cũng tương tự như định nghĩa một biến. Khi định nghĩa một đối tượng thì không gian sẽ được chừa riêng cho nó trong bộ nhớ. ;VD: Diem A, B;CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNSỬ DỤNG HÀM – Gọi hàm thành viênĐể liên lạc với các đối tượng, ta gọi các 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 luôn được gọi để tác động lên một đối tượng cụ thể. Cú pháp truy cập hàm thành viên: .() - Truy cập dữ liệu thành viên lớp: .CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNSỬ DỤNG HÀM – Truyền và trả về đối tượngViệc truyền và trả về đối tượng cũng như truyền và trả kiểu dữ liệu cho hàm. Việc truyền và trả dữ liệu này không thật hiệu quả.CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNCÁC NGÔN NGỮ HƯỚNG ĐỐI TƯỢNGC++JAVAVISUAL BASICVISUAL C#Tham khảo thêm thông tin trong bài giảng và internet. CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNBÀI TẬP TRÊN LỚP- 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 một hinhchunhat A. + Nhập thông tin cho hình A. + In thông tin của hình A. + In diện tích của hình A.CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNBÀI TẬP TRÊN LỚP2. 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=> Viết chương trình nhập vào 10 hình tròn và cho biết bán kính của hình tròn có diện tích lớn nhất.CHƯƠNG I: CÁC KHÁI NIỆM CĂN BẢNBÀI TẬP TRÊN LỚP3. Xây dựng lớp CAccount- Dữ liệu thành viên: Tên, Mã số tài khoản, TiềnHà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 trong tài khoản. Viết hàm main để khai thác lớp. + Nhập thông tin cho một danh sách TK. + Tính tổng số tiền của danh sách.Một đối tượng sách trong hệ thống quản lý thư viện có các thuộc tính:- Tên sách- Tổng số quyển sách- Số quyển sách đang cho mượnXây dựng lớp CSach với các thuộc tính tên và các 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 là tên sách, tổng số sách, số đang cho mượn- Phương thức in thông tin đối tượng ra màn hình- Phương thức tính số sách còn lại trong thư viện (tổng số - số đang cho mượn)Trên số lớp đã xây dựng, viết chương trình chính thực hiện các công việc:- Nhập danh sách các quyển sách với số lượng các quyển sách được nhập từ bàn phím- In ra màn hình các quyển sách hiện có trong thư viện (Số sách còn lại phải lớn hơn 0)
File đính kèm:
- Nhap mon Lap trinh Huong doi tuong.pptx