Tài liệu Lập trình hướng đối tượng Khái niệm pptx

26 332 0
Tài liệu Lập trình hướng đối tượng Khái niệm pptx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lập trình hướng đối tượng Khái niệm Nội dung Lịch sử phát triển kỹ thuật lập trình Hạn chế kỹ thuật lập trình truyền thống Khái niệm lập trình hướng đối tượng Đóng gói / Che dấu thơng tin Nguyễn Việt Hà OOP: Khái niệm Tài liệu tham khảo Thinking in Java, chapter 1, Java how to program, chapter Nguyễn Việt Hà OOP: Khái niệm Mục tiêu kỹ sư phần mềm Tạo sản phẩm tốt cách có hiệu Nắm bắt công nghệ Kiếm nhiều tiền nữa! Nguyễn Việt Hà OOP: Khái niệm Phần mềm ngày lớn Một số hệ Unix chứa khoảng 4M dòng lệnh MS Windows chứa hàng chục triệu dòng lệnh Người dùng ngày đòi hỏi nhiều chức năng, đặc biệt chức thông minh Phần mềm cần sửa đổi Nguyễn Việt Hà OOP: Khái niệm Vì Cần kiểm sốt chi phí Chi phí phát triển Chi phí bảo trì Giải pháp sử dụng lại Giảm chi phí thời gian phát triển Nâng cao chất lượng Nguyễn Việt Hà OOP: Khái niệm Để sử dụng lại (mã nguồn) Cần dễ hiểu Được coi xác Có giao diện rõ ràng Khơng u cầu thay đổi sử dụng chương trình Nguyễn Việt Hà OOP: Khái niệm Các phương pháp lập trình Lập trình khơng có cấu trúc Lập trình có cấu trúc (lập trình thủ tục) Lập trình chức Lập trình logic Lập trình hướng đối tượng Nguyễn Việt Hà OOP: Khái niệm Lập trình khơng có cấu trúc (non-structured programming) Là phương pháp xuất ngôn ngữ Assembly, Basic sử dụng biến tổng thể lạm dụng lệnh GOTO Các nhược điểm khó hiểu, khó bảo trì, khơng thể sử dụng lại chất lượng chi phí cao khơng thể phát triển ứng dụng lớn Nguyễn Việt Hà OOP: Khái niệm Ví dụ 10 20 30 40 50 60 70 100 110 k =1 gosub 100 if y > 120 goto 60 k = k+1 goto 20 print k, y stop y = 3*k*k + 7*k-3 return Nguyễn Việt Hà OOP: Khái niệm 10 Ví dụ struct Date { int year, mon, day; }; print_date(Date d) { printf(”%d / %d / %d\n”, d.day, d.mon, d.year); } Nguyễn Việt Hà OOP: Khái niệm 12 Lập trình có cấu trúc/lập trình thủ tục Nhược điểm liệu mã xử lý tách rời người lập trình phải biết cấu trúc liệu (vấn đề thời gian dài coi hiển nhiên) thay đổi cấu trúc liệu mã xử lý (thuật tốn) phải thay đổi theo khó đảm bảo tính đắn liệu khơng tự động khởi tạo hay giải phóng liệu động Nguyễn Việt Hà OOP: Khái niệm 13 Tại phải thay đổi cấu trúc liệu? Cấu trúc liệu mơ hình tốn cần giải Do thiếu kiến thức toán, miền ứng dụng , lúc tạo cấu trúc liệu hoàn thiện từ đầu Tạo cấu trúc liệu hợp lý vấn đề đau đầu người lập trình Bản thân tốn khơng bất biến Cần phải thay đổi cấu trúc liệu để phù hợp với yêu cầu thay đổi Nguyễn Việt Hà OOP: Khái niệm 14 Các vấn đề Thay đổi cấu trúc dẫn đến việc sửa lại mã chương trình (thuật tốn) tương ứng làm chi phí phát triển tăng cao khơng tái sử dụng mã xử lý ứng với cấu trúc liệu cũ Đảm bảo tính đắn liệu nguyên nhân gây lỗi phần mềm gán liệu không hợp lệ cần phải kiểm tra tính đắn liệu thay đổi giá trị Nguyễn Việt Hà OOP: Khái niệm 15 Ví dụ: MyDate MyDate.java: class MyDate { public int year, month, day; } MyCalendar.java: MyDate d = new MyDate(); d.day = 32; // invalid day d.day = 31; d.month = 2; // how to check d.day = d.day + 1; // Nguyễn Việt Hà OOP: Khái niệm 16 Ví dụ: MyDate (2) Thay đổi cấu trúc liệu: MyDate.java: class MyDate { public short year; public short mon_n_day; } Nguyễn Việt Hà OOP: Khái niệm 17 Giải pháp Che dấu liệu (che dấu cấu trúc) Truy cập liệu thông qua giao diện xác định class MyDate { private int year, mon, day; public int getDay() { } public boolean setDay(int) { } } Nguyễn Việt Hà OOP: Khái niệm 18 Sử dụng giao diện MyCalendar.java: MyDate d = new MyDate(); d.day = 32; // compile error d.setDay(31); d.setMonth(2); // should return False Nguyễn Việt Hà OOP: Khái niệm 19 Đóng gói/che dấu thơng tin Đóng gói liệu thao tác tác động lên liệu thành thể thống (lớp đối tượng) thuận tiện cho sử dụng lại Che dấu thông tin thao tác với liệu thông qua giao diện xác định che dấu người lập trình khách (client programmer) có khả thay đổi (tách bất biến khỏi khả biến) Nguyễn Việt Hà OOP: Khái niệm 20 Lớp đối tượng Lớp đối tượng (class) khuôn mẫu để sinh đối tượng Đối tượng thể (instance) lớp Đối tượng có định danh thuộc tính (dữ liệu) hành vi (phương thức) Nguyễn Việt Hà OOP: Khái niệm 21 Hệ thống hướng đối tượng Bao gồm tập đối tượng đối tượng chịu trách nhiệm công việc Các đối tượng tương tác thông qua trao đổi thơng điệp (message) Các đối tượng tồn phân tán/có thể hoạt động song song Nguyễn Việt Hà OOP: Khái niệm 22 Mơ hình hóa đối tượng MyDate -year -month -day + + + + + + - Nguyễn Việt Hà getDay() setDay(int) getMonth() setMonth(int) getYear() setYear(int) validDate(int, int, int) OOP: Khái niệm 23 Lịch sử ngôn ngữ lập trình FLOW-MATIC FORTRAN I ALGOL 58 FORTRAN II ALGOL 60 COBOL FORTRAN IV SIMULA I PL/1 LISP 1960 CPL BASIC SIMULA 67 1957 COMTRAN 1965 BCPL ALGOL 68 B PASCAL C PROLOG 1970 1975 MODULA 1980 SMALLTALK 80 ADA OBERON MODULA BETA C++ 1985 EIFFEL 1990 JAVA 1995 C# Nguyễn Việt Hà OOP: Khái niệm 2000 24 Lập trình hướng đối tượng làm tăng suất lập trình (năng suất phát triển) chất lượng phần mềm tính hiểu phần mềm vòng đời phần mềm Nguyễn Việt Hà OOP: Khái niệm 25 OOP OOL Có thể thể phần tư tưởng đóng gói/che dấu thông tin ngôn ngữ thủ tục không triệt để, khó kiểm sốt Ngơn ngữ hướng đối tượng cung cấp khả kiểm sốt truy cập; ngồi kế thừa đa hình Nguyễn Việt Hà OOP: Khái niệm 26 ... chương trình Nguyễn Việt Hà OOP: Khái niệm Các phương pháp lập trình Lập trình khơng có cấu trúc Lập trình có cấu trúc (lập trình thủ tục) Lập trình chức Lập trình logic Lập trình hướng đối tượng. .. sử phát triển kỹ thuật lập trình Hạn chế kỹ thuật lập trình truyền thống Khái niệm lập trình hướng đối tượng Đóng gói / Che dấu thông tin Nguyễn Việt Hà OOP: Khái niệm Tài liệu tham khảo Thinking... lớp Đối tượng có định danh thuộc tính (dữ liệu) hành vi (phương thức) Nguyễn Việt Hà OOP: Khái niệm 21 Hệ thống hướng đối tượng Bao gồm tập đối tượng đối tượng chịu trách nhiệm công việc Các đối

Ngày đăng: 19/01/2014, 04:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan