Bài giảng Lập trình Hướng đối tượng - Chương 1: Lập trình hướng đối tượng, Phương pháp giải quyết bài toán mới - Lê Đức Thịnh
Bạn đang xem tài liệu "Bài giảng Lập trình Hướng đối tượng - Chương 1: Lập trình hướng đối tượng, Phương pháp giải quyết bài toán mới - Lê Đức Thịnh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_lap_trinh_huong_doi_tuong_chuong_1_lap_trinh_huong.ppt
Nội dung text: Bài giảng Lập trình Hướng đối tượng - Chương 1: Lập trình hướng đối tượng, Phương pháp giải quyết bài toán mới - Lê Đức Thịnh
- LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG LÊ ĐỨC THỊNH
- Chương I: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG, PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN MỚI 1. Phương pháp lập trình 2. Bài toán quan hệ gia đình 3. Lập trình hướng đối tượng 4. Các ngôn ngữ lập trình hướng đối tượng 5. Ngôn ngữ lập trình C++
- 1 Phương pháp lập trình ◼ PP lập trình tuyến tính ◼ Chương trình được viết tuần tự với các câu lệnh thực hiện từ đầu đến cuối. ◼ Hạn chế: kém hiệu quả, lập trình viên không thể kiểm soát được do phần mềm ngày càng phức tạp và lớn hơn. ◼ PP lập trình cấu trúc ◼ CT được tổ chức thành các chương trình con. Mỗi CT con đảm nhận xử lý một công việc nhỏ. Mỗi CT con lại có thể chia nhỏ thành các CT nhỏ hơn. ◼ Có thể phân công cho từng nhóm đảm nhận viết.
- ◼ Hạn chế: ◼ Khó khăn lớn là tổ chức dữ liệu. Chương trình = CTDL + Giải thuật, đòi hỏi lập trình viên phải có kiến thức rất vững về CTDL. ◼ Thay đổi nhỏ ở CTDL cũng phải viết lại chương trình.
- ◼ PP lập trình hướng đối tượng ◼ Thiết kế chương trình xoay quanh dữ liệu của hệ thống. Cách tiếp cận bài toán trở nên gần gũi với thực tế hơn. ◼ Có thể xem lớp là sự kết hợp các thành phần dữ liệu và các hàm. class SinhVien { // Khai báo các thành phần dữ liệu // Khai báo các phương thức };
- 2. Bài toán quan hệ gia đình ◼ Bài toán: Trả lời câu hỏi “A và B có quan hệ như thế nào trong gia đình”. ◼ Theo PP lập trình cấu trúc: phải xây dựng một CTDL thể hiện được cây quan hệ. Kế tiếp, xây dựng được giải thuật tìm được mối quan hệ giữa hai nút trên cây quan hệ. ◼ Theo PP LTHĐT: bài toán được xem xét dưới góc độ quản lý tập các đối tượng Con người.
- Con người Tên ? Cha ? Mẹ ? Anh em ? Vợ / Chồng ? Sinh con Cưới Là anh Là ông nội
- 3. Lập trình hướng đối tượng ◼ Tập trung vào dữ liệu thay vì hàm. ◼ Phân tích bài toán thành các thực thể được gọi là đối tượng. ◼ Các đối tượng có thể tác động, trao đổi thông tin với nhau qua cơ chế thông báo. ◼ Tiếp cận từ dưới lên.
- ◼ Đối tượng: là sự kết hợp giữa dữ liệu và thủ tục. Đối tượng = Dữ liệu + Phương thức. ◼ Lớp: là tập hợp các đối tượng có cấu trúc dữ liệu và phương thức giống nhau. ◼ Mỗi đối tượng sẽ là một thể hiện cụ thể của lớp đó. ◼ Trong lập trình, chúng ta có thể coi một lớp như là một kiểu, còn đối tượng sẽ là các biến có kiểu của lớp.
- ◼ Nguyên tắc đóng gói dữ liệu: ◼ Các hàm được sử dụng mà không cần biết đến nội dung cụ thể của nó. Người ta gọi đó là sự đóng gói chức năng. ◼ Trong LTHĐT, cả dữ liệu và chức năng đều được đóng gói. ◼ Tính kế thừa: định nghĩa lớp mới trên cơ sở các lớp đã tồn tại. ◼ Tính đa hình: lớp hình tứ giác và lớp hình tam giác kế thừa từ lớp hình đa giác. Lúc này, một đối tượng thuộc lớp hình tam giác hay tứ giác đều có thể hiểu rằng nó là một hình đa giác. Mổi đa giác có thể tính diện tích của nó. Như vậy làm thế nào một đa giác có thể sử dụng đúng công thức để tính diện tích phù hợp với nó là hình tam giác hay tứ giác. Ta gọi đó là tính đa hình.
- ◼ Ưu điểm: ◼ Nguyên lý kế thừa, giúp loại bỏ những đoạn chương trình lặp lại và có thể mở rộng mà không cần viết lại. ◼ Dễ mở rộng, nâng cấp thành hệ thống lớn hơn. ◼ Những ứng dụng: ◼ Thiết kế giao diện với người sử dụng, kiểu như Windows. ◼
- 4. Các ngôn ngữ LTHĐT ◼ NN LTHĐT thuần khiết: Simula, Smalltalk, Java, C#. ◼ NN lai: C++.
- 5. Ngôn ngữ lập trình C++ ◼ C++ là ngôn ngữ C có 2 đặc điểm mới: ◼ Khả năng mở rộng so với C: ◼ Viết chú thích cuối dòng lệnh. ◼ Khai báo linh hoạt. ◼ Chồng hàm, tham số mặc định, ◼ Toán tử định nghĩa bộ nhớ động mới: new và delete. ◼ Khả năng định nghĩa các hàm inline. ◼ Tạo biến tham chiếu đến biến khác.
- ◼ Khả năng LTHĐT: ◼ C++ chứa đựng khái niệm lớp. ◼ C++ cho phép định nghĩa hàm thiết lập, hàm hủy bỏ ◼ Lớp trong C++ thực chất là một kiểu dữ liệu do người sử dụng định nghĩa. ◼ Chuyển đổi kiểu do người dùng định nghĩa. ◼ C++ cung cấp thao tác vào ra mới.