Trong thế giới thực, đối tượng là một thực thể (entity) cụ thể mà thông thường ta có thể sờ, nhìn thấy hay cảm nhận được. | Nguyễn Công Huy – Khoa CNTT&TT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Thế nào là lập trình hướng đối tượng? Một số khái niệm quan trọng Các đặc điểm chính của lập trình HĐT Nguyễn Công Huy – Khoa CNTT&TT Thế nào là lập trình hướng đối tượng? Lập trình cổ điển (traditional, procedural) Cấu trúc dữ liệu + Giải thuật = Chương trình Xây dựng dữ liệu toàn cục Viết các thủ tục sử dụng DL toàn cục Mục tiêu cuối cùng Có sự tiến hóa từ: Lập trình tuyến tính => lập trình cấu trúc Tiếp cận theo hướng thủ tục. Chú trọng đến thủ tục hơn là về dữ liệu. Nguyễn Công Huy – Khoa CNTT&TT Thế nào là lập trình hướng đối tượng? Lập trình cổ điển Dữ liệu Thủ tục 1 Thủ tục 2 Thủ tục 3 Dữ liệu và thủ tục được xử lý độc lập. Không quan tâm đến mối liên hệ giữa thủ tục và dữ liệu. Khó chỉnh sửa, thêm mới dữ liệu và thủ tục. Gặp khó khăn khi sử dụng lại. Nguyễn Công Huy – Khoa CNTT&TT Thế nào là lập trình hướng đối tượng? Lập trình hướng đối tượng (Object Oriented Programming - OOP) Thuộc tính + Hàm = Đối . | Nguyễn Công Huy – Khoa CNTT&TT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Thế nào là lập trình hướng đối tượng? Một số khái niệm quan trọng Các đặc điểm chính của lập trình HĐT Nguyễn Công Huy – Khoa CNTT&TT Thế nào là lập trình hướng đối tượng? Lập trình cổ điển (traditional, procedural) Cấu trúc dữ liệu + Giải thuật = Chương trình Xây dựng dữ liệu toàn cục Viết các thủ tục sử dụng DL toàn cục Mục tiêu cuối cùng Có sự tiến hóa từ: Lập trình tuyến tính => lập trình cấu trúc Tiếp cận theo hướng thủ tục. Chú trọng đến thủ tục hơn là về dữ liệu. Nguyễn Công Huy – Khoa CNTT&TT Thế nào là lập trình hướng đối tượng? Lập trình cổ điển Dữ liệu Thủ tục 1 Thủ tục 2 Thủ tục 3 Dữ liệu và thủ tục được xử lý độc lập. Không quan tâm đến mối liên hệ giữa thủ tục và dữ liệu. Khó chỉnh sửa, thêm mới dữ liệu và thủ tục. Gặp khó khăn khi sử dụng lại. Nguyễn Công Huy – Khoa CNTT&TT Thế nào là lập trình hướng đối tượng? Lập trình hướng đối tượng (Object Oriented Programming - OOP) Thuộc tính + Hàm = Đối tượng Các thể hiện, đặc tính, trạng thái của đối tượng Các hoạt động, thao tác của đối tượng Mục tiêu chính Phân tích bài toán thành nhiều đối tượng. Quan tâm đến dữ liệu hơn thủ tục. Dữ liệu được bảo vệ (che giấu) và không thể truy xuất từ bên ngoài đối tượng. Nguyễn Công Huy – Khoa CNTT&TT Thế nào là lập trình hướng đối tượng? Lập trình hướng đối tượng Đối tượng 1 Dữ liệu Hàm Dữ liệu Hàm Dữ liệu Hàm Đối tượng 3 Đối tượng 2 Dữ liệu và thủ tục được xử lý chặc chẽ với nhau. Quan tâm đến mối liên hệ giữa thủ tục và dữ liệu. Dễ chỉnh sửa, thêm mới dữ liệu và hàm trong 1 đối tượng. Mục tiêu là tăng cường khả năng sử dụng lại. Thế nào là lập trình hướng đối tượng? Nguyễn Công Huy – Khoa CNTT&TT Sự trừu tượng hóa (abstraction) Nguyễn Công Huy – Khoa CNTT&TT Thế nào là lập trình hướng đối tượng? Sự trừu tượng hóa (abstraction) Là bước tiến hóa tiếp theo từ lập trình cấu trúc. Chỉ quan tâm đến những đặc điểm cần thiết (phớt lờ đi những chi tiết) tùy vào ngữ cảnh: VD: Phân tích thông