Microsoft PowerPoint ontapCH 04 [Compatibility Mode] 7/17/2018 1 Ôn tập Lập trình hướng đối tượng Thanh Le, Ph D Khoa Công nghệ Thông tin Kinh doanh July 17, 2018 Nội dung Xem lại Danh sách, từ đi[.]
7/17/2018 Ơn tập: Lập trình hướng đối tượng Thanh Le, Ph.D Khoa Công nghệ Thông tin Kinh doanh July 17, 2018 Nội dung Xem lại: Danh sách, từ điển Lập trình hướng đối tượng 7/17/2018 Danh List Dictionary List tập hợp phần tử kiểu Dictionary tập hợp phần tử kiểu; truy cập phần tử thơng qua mã phần tử (khóa) System.Collections.Generic Là thư viện Net cho List Dictionary List phần tử chuỗi 7/17/2018 Dictionary: khóa số nguyên Dictionary: khóa chuỗi 7/17/2018 Hàm List Dictionary List Add(phần-tử-mới) Remove(giá-trị-xóa) Insert(vị-trí, giá-trị); Dictionaty Add(khóa-mới, gia-trị-mới) Remove(khóa-phần-tử-xóa) Cập nhật List 7/17/2018 Chèn List Cập nhật Dictionary 10 7/17/2018 Ví dụ: xử lý mảng chiều 11 Ví dụ: xử lý mảng chiều 12 7/17/2018 List đệ qui: tam giác pascal 13 Tam giác pascal đệ qui 14 7/17/2018 Lập trình hướng đối tượng Lập trình hướng đối tượng (Object-Oriented Programming - OOP) phương pháp lập trình dựa phối hợp đối tượng khách quan khơng gian tốn; chúng hoạt động tương tác lẫn để đưa toán trạng thái mong muốn Phương pháp tiếp cận cho phép tách khơng gian tốn thành tập hợp đối tượng Đối tượng có tính độc lập, Từ cơng việc lớn phức tạp ta phân chia thành nhiều công việc nhỏ đơn giản dễ thực hơn, đồng thời việc điều chỉnh bổ sung tính cho đối tượng khơng ảnh hưởng đến hoạt động đối tượng khác Nhờ đó, có nhu cầu phát triển tốn ta khơng phải xây dựng lại từ đầu mà dựa nội dung có Đây ưu điểm lớn so với lập trình cấu trúc 15 Lớp Lớp tập hợp đối tượng có số tính chất khảo sát Các tính chất trạng thái (thuộc tính) hay hành vi đối tượng Ví dụ: Lớp cá tập hợp bao gồm động vật có đặc điểm: vây, mang, máu lạnh; có hành vi: sống nước, thở mang, đẻ trứng 16 7/17/2018 Đối tượng Đối tượng thể cụ thể lớp Một đối tượng thuộc lớp có thuộc tính, hành vi lớp Sự khác thuộc tính, cách thể hành vi đối tượng sở phân biệt với đối tượng khác lớp 17 Đặc tính lớp đối tượng Thuộc tính: Thuộc tính giá trị phản ánh trạng thái đối tượng thời điểm xác định Đối tượng có nhiều thuộc tính Hành vi: cách ứng xử đối tượng với môi trường xung quanh, làm thay đổi thuộc tính thân đối tượng đối tuợng liên quan Hoạt động sống người trình vận động thay đổi thân người tác động (cũng bị tác động) đến môi trường xung quanh Đối tượng = Thuộc tính + Hành vi 18 7/17/2018 Chương trình OOP Theo tiếp cập OOP, chương trình chuỗi thao tác phối hợp hay nhiều đối tượng, theo kịch thiết kế trước, nhằm đạt đến kết mong muốn Lập trình cấu trúc (Niklaus Wirth, 1976): Chương trình = Cấu trúc DL + Giải Thuật Lập trình hướng đối tượng (*Le, 2002) *Lập Chương trình = Các đối tượng + Kịch trình Windows với MFC Microsoft Visual C++ 6.0 19 Đặc điểm OOP Tính khách quan (Objective): Lớp đối tượng hình thành từ chủ thể khách quan Kịch chương trình vận dụng yêu tố khách quan cách hợp lý để đạt mục đích chương trình Tính đóng gói (Encapsulation): Việc bao hàm thuộc tính hành vi đối tượng giúp đối tượng hoạt động độc lập phối hợp với lớp đối tượng khác Tính kế thừa (Inheritance): Việc định nghĩa lớp đối tượng dựa lớp đối tượng có gọi kế thừa Các lớp có gọi lớp sở (based class), lớp định nghĩa gọi lớp kế thừa (derived class) Bên cạnh việc kế thừa, lớp kế thừa bổ sung hành vi thuộc tính cần thiết để phục vụ cho nhu cầu phát sinh Cơ chế tạo phát triển cho ứng dụng mà đối tượng tham gia Tính đa hình (Polymorphism): Cơ chế triển khai nhiều cách thể khác cho hành vi theo nguyên tắc xây dựng lớp sở chứa hành vi cần triển khai lớp kế thừa Mỗi lớp kế thừa phát triển hành vi theo cách khác 20 10 7/17/2018 Phân loại thuộc tính/hành vi Public: Các thuộc tính, hành vi đối tượng thể bên ngồi Protected: Các thuộc tính, hành vi ẩn chứa bên đối tượng, hỗ trợ hoạt động đối tượng truyền lại cho lớp đối tượng kế thừa Private: Các thuộc tính, hành vi ẩn chứa bên đối tượng, hỗ trợ hoạt động đối tượng truyền lại cho lớp đối tượng kế thừa 21 Khai báo lớp class TEN_LOP { // khai báo thuộc tính (như khai báo biến) [public/protected/private] khai-báo-thuộc-tính; // Khai báo hành vi (như khai báo hàm) [public/protected/private] khai-báo-hành-vi; // hành vi khởi tạo lớp public TEN_LOP([danh sách tham số]) { } // hành vi kết thúc lớp ~TEN_LOP([danh sách tham số]) { } } 22 11 7/17/2018 VD Lớp: duongtron 23 VD2: duongtron2 kế thừa 24 12 7/17/2018 Lỗi dòng nào? 25 Lớp timeseries 26 13 7/17/2018 Xin cảm ơn! 27 14 ... List Dictionary List Add(phần-tử-mới) Remove(giá-trị-xóa) Insert(vị-trí, giá-trị); Dictionaty Add(khóa-mới, gia-trị-mới) Remove(khóa-phần-tử-xóa) Cập nhật List 7/17/2018 Chèn List... (như khai báo biến) [public/protected/private] khai-báo-thuộc-tính; // Khai báo hành vi (như khai báo hàm) [public/protected/private] khai-báo-hành-vi; // hành vi khởi tạo lớp public TEN_LOP([danh... pascal đệ qui 14 7/17/2018 Lập trình hướng đối tượng Lập trình hướng đối tượng (Object-Oriented Programming - OOP) phương pháp lập trình dựa phối hợp đối tượng khách quan khơng gian tốn; chúng