Slide bài giảng OOP Lập trình hướng đối tượng ĐH Bách Khoa Hà Nội 2016 OOP Lập trình hướng đối tượng Chương 1 Tổng quan lập trình hướng đối tượng 1. Kỹ thuật lập trình 2. Kỹ thuật lập trình hướng đối tượng 3. Các khái niệm cơ bản 4. Các nguyên lí 5. Phân tích thiết kế hướng đối tượng
Bài Tổng quan Lập trình hướng đối tượng Trịnh Thành Trung trungtt@soict.hust.edu.vn Nội dung Kỹ thuật lập trình Kỹ thuật hướng đối tượng Các khái niệm Các nguyên lý Phân tích thiết kế hướng đối tượng Kỹ thuật lập trình Lập trình hướng đối tượng kỹ thuật lập trình Vậy kỹ thuật lập trình gì? Kỹ thuật lập trình • "Lập trình hướng đối tượng" kỹ thuật lập trình Vậy "kỹ thuật lập trình" gì? • Kỹ thuật lập trình: Kỹ thuật thực thi giải pháp phần mềm (cấu trúc liệu + giải thuật) dựa tảng phương pháp luận (methodology) nhiều ngơn ngữ lập trình phù hợp với yêu cầu đặc thù ứng dụng Kỹ thuật lập trình • Các mơ thức lập trình "Phương pháp luận" • Các ý tưởng, thuật tốn để giải vấn đề • Phong cách trình bày lập trình • Văn hóa lập trình Kỹ thuật lập trình • Mơ thức - ngun tắc chung "Ngơn ngữ lập trình" • Cú pháp - xác định hợp lệ mã nguồn • Ngữ nghĩa - ngữ pháp ngơn ngữ lập trình Ngơn ngữ lập trình • Ngơn ngữ? • Phương tiện để giao tiếp • Hệ thống ký hiệu để diễn đạt Ngơn ngữ lập trình • Ngơn ngữ máy • Các thị thể chữ số nhị phân 1101010101101010 1010100010101010 Ngôn ngữ lập trình • Ngơn ngữ lập trình • Là ngơn ngữ chuẩn hóa • Cả người máy tính đọc hiểu • Sử dụng chương trình dịch tương ứng để giao tiếp với máy tính Trình dịch Trình dịch Compiler Là chương trình thực biên dịch tồn chương trình nguồn thành mã máy trước thực 10 Ví dụ • Bài toán Quản lý sinh viên 39 Trừu tượng hóa • Phụ thuộc vào góc nhìn: 40 Đóng gói • Đóng gói • Che giấu, ẩn chi tiết thực bên • Cung cấp cho giới bên ngồi giao diện • Người dùng khơng phụ thuộc vào việc sửa đổi thực thi bên 41 Đóng gói • Cho phép điều khiển • Việc sử dụng đối tượng kiểm sốt thơng qua method public • Hỗ trợ thay đổi • Việc sử dụng đối tượng không bị ảnh hưởng liệu nội (private) bị thay đổi Withdraw( ) Deposit( ) balance 12.56 Withdraw( ) Deposit( ) dollars 12 cents 56 42 Module hóa • Module hóa • Chia nhỏ hệ thống phức tạp thành thành phần nhỏ quản lý • Cho phép người dùng hiểu hệ thống 43 Module hóa • Chia nhỏ hệ thống phức tạp thành mô đun nhỏ Hệ thống quản lý xuất nhập sách Hệ thống kế toán Hệ thống quản lý siêu thị sách Hệ thống quản lý nhân viên 45 Phân cấp • Phân cấp • Xếp hạng hay xếp thứ tự mức trừu tượng vào cấu trúc • Tổ chức để phân loại Sử dụng phân cấp dễ dàng nhận sử giống khác đối tượng 46 Phân cấp Tăng mức độ trừu tượng hóa Động vật Học sinh Người Chó Sinh viên Cơng nhân Giảm mức độ trừu tượng hóa Mèo Gà Thỏ 47 Phân tích thiết kế hướng đối tượng Object Oriented Analysis and Design (OOAD) Phân tích thiết kế hướng đối tượng • Phương pháp luận (methodology) PT&TK phần mềm thông thường định nghĩa tập trình thao tác để tìm khám phá cách giải tốn phần mềm • Một phương pháp hiệu để phát triển phần mềm 49 Phát triển phần mềm • Sáu giai đoạn • Giai đoạn 0: Lập kế hoạch (make a plan) • Giai đoạn 1: Xác định mục tiêu - làm (what are we making) • Giai đoạn 2: Xác định cách làm (how to build it) • Giai đoạn 3: Xây dựng phần lõi - Building the core • Giai đoạn 4: Lặp lại (hiệu chỉnh) trường hợp sử dụng • Giai đoạn 5: Phát triển (evolution) 50 Xác định mục tiêu • Giai đoạn 1: Xác định mục tiêu - làm (what are we making) • Trong giai đoạn có nhiệm vụ xác định cụ thể mục tiêu, chức nhiệm vụ mà phần mềm cần xây dựng phải đáp ứng • Trong phương pháp lập trình cổ điển hướng thủ tục người ta gọi giai đoạn giai đoạn tạo “phân tích u cầu mơ tả hệ thống” (requirements analysis and system specification) • Trong PT&TK hướng đối tượng người ta sử dụng ký pháp kỹ thuật Use case để mô tả công việc 51 Biểu đồ use case 52 Biểu đồ lớp 53 Thank you! Any questions? ... thống ký hiệu để diễn đạt Ngôn ngữ lập trình • Ngôn ngữ máy • Các thị thể chữ số nhị phân 11 010 1 010 110 1 010 10 1 010 0 010 1 010 10 Ngôn ngữ lập trình • Ngôn ngữ lập trình • Là ngôn ngữ chuẩn hóa • Cả... thuật lập trình Kỹ thuật hướng đối tượng Các khái niệm Các nguyên lý Phân tích thiết kế hướng đối tượng Kỹ thuật lập trình Lập trình hướng đối tượng kỹ thuật lập trình Vậy kỹ thuật lập trình. .. trừu tượng hóa chức (functional abstraction) 14 Kỹ thuật hướng đối tượng Giới thiệu công nghệ đối tượng kỹ thuật hướng đối tượng Đối tượng • Đối tượng gì? "Tất thứ đối tượng" -Alan Kay 16 Lập trình