Lập trình hướng đối tượng object oriented programming

28 183 0
Lập trình hướng đối tượng object oriented programming

Đ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 Object-oriented Programming Giảng viên: Nguyễn Thị Minh Huyền nguyenthiminhhuyen@hus.edu.vn Đỗ Thanh Hà dothanhha@hus.edu.vn 2009-2010 OOP http://mim.hus.edu.vn/elearning Mơn học OOP  tín chỉ: 30 tiết     Nghe giảng lý thuyết lớp: 15t Thực hành phòng máy: 12t x Tự học: 3t Đề cương môn học 2009-2010 OOP - http://mim.hus.edu.vn/elearning Tổ chức học tập     Giờ lí thuyết + thực hành: Phịng máy B (502-T5) Lịch học: Chiều thứ Hai hàng tuần, số buổi sáng thứ Tư (xem lịch cụ thể kèm theo) Ghép nhóm 2-3 người: lên danh sách (cuối giờ) Bài tập thực hành:    Chuẩn bị chương trình nhà Phân tích, chữa tập, chạy chương trình phòng máy Kiểm tra kiến thức:    Kiểm tra thường xuyên (bài tập nhà theo nhóm người) Kiểm tra kì Bài tập lớn (nhóm 4-5 người) + trả lời câu hỏi giấy 2009-2010 OOP - http://mim.hus.edu.vn/elearning Nhập môn    Giới thiệu Các khái niệm lập trình hướng đối tượng Giới thiệu ngơn ngữ lập trình Java 2009-2010 OOP - http://mim.hus.edu.vn/elearning Giới thiệu (1)  Công nghệ phần mềm (software engineering):         2009-2010 Đặc tả yêu cầu (requirements): làm gì? Phân tích (analysis): làm nào? Thiết kế (design): tổ chức sao? Lập trình (coding): viết mã chương trình Dị lỗi (debugging): sửa lỗi Kiểm tra (testing): đảm bảo chương trình chạy Phân phối (deployment): đưa vào sử dụng Bảo trì (maintenance): tiếp tục hồn thiện, phát triển, giữ phần mềm hoạt động OOP - http://mim.hus.edu.vn/elearning Giới thiệu (2)  Phân loại ngơn ngữ lập trình:   Ngơn ngữ máy, hợp ngữ Ngơn ngữ lập trình bậc cao     2009-2010 Lập Lập Lập Lập trình trình trình trình thủ tục: Pascal, C, v.v hàm: Lisp, CML, v.v mô tả (lôgic): Prolog, v.v hướng đối tượng: C++, Java, C# v.v OOP - http://mim.hus.edu.vn/elearning Giới thiệu (3)  Lập trình hướng đối tượng:   Ý tưởng: Mơ hình hóa thực thể thành đối tượng độc lập, tương tác cách trao đổi thông báo cho Lịch sử:    2009-2010 1967: ngôn ngữ Simula triển khai khái niệm lớp (class) 1976: ngôn ngữ Smalltalk triển khai khái niệm đóng gói, thừa kế, đa hình – khái niệm lập trình hướng đối tượng Các ngơn ngữ khác: C++, Objective-C, Eiffel, Java, C#, Visual Basic.NET, Python, Ruby, v.v OOP - http://mim.hus.edu.vn/elearning Nhập môn    Giới thiệu Các khái niệm lập trình hướng đối tượng Giới thiệu ngơn ngữ lập trình Java 2009-2010 OOP - http://mim.hus.edu.vn/elearning Đối tượng (object)   Biểu diễn trừu tượng thực thể (vật thể hay phi vật thể) Mô tả đối tượng:     Thuộc tính (attribute): mơ tả đặc điểm đối tượng Phương thức, gọi hàm thành viên (method, member function): mơ tả hành vi đối tượng Lập trình: thuộc tính – biến, phương thức – hàm Tập hợp giá trị thời thuộc tính: trạng thái đối tượng 2009-2010 OOP - http://mim.hus.edu.vn/elearning Chương trình hướng đối tượng Object Function Function Object communication Function Function DATA Function 2009-2010 Object Function Message Object Object OOP - http://mim.hus.edu.vn/elearning 10 Đặc điểm LT hướng đối tượng     Trừu tượng liệu (abstraction): chương trình quan tâm đến đặc tính đối tượng (gồm có gì, làm gì), bỏ qua tiểu tiết (làm nào) Đóng gói liệu (encapsulation): Cơ chế đảm bảo mơi trường bên ngồi tác động vào đối tượng thơng qua dịch vụ (phương thức) cho người viết mã chương trình => tính tồn vẹn liệu Tính đa hình (polymorphism): thơng báo, đối tượng “phản ứng” khác Kế thừa (inheritance): Cho phép đối tượng lấy lại (kế thừa) đặc tính sẵn có đối tượng khác 2009-2010 OOP - http://mim.hus.edu.vn/elearning 14 Đặc điểm LT hướng đối tượng  Hệ quả:    Người sử dụng cần biết đặc tả đối tượng Thay đổi mã bên đối tượng không ảnh hưởng đến chương trình bên ngồi sử dụng đối tượng Ưu điểm: tính tái sử dụng cao, tăng suất, đơn giản hóa độ phức tạp bảo trì/mở rộng phần mềm 2009-2010 OOP - http://mim.hus.edu.vn/elearning 15 Lớp  Lớp (class): cấu trúc (“kiểu liệu”) đối tượng Mỗi đối tượng sinh nhờ việc thực thể hóa (instanciation) lớp   Thuộc tính: liệu biểu diễn trạng thái đối tượng Phương thức (hàm): thao tác áp dụng cho đối tượng Đặc biệt:   2009-2010 hàm dựng (constructor) – cài đặt giá trị ban đầu, đăng kí nhớ, v.v., hàm hủy (destructor) – thực thao tác cần thiết hủy bỏ đối tượng OOP - http://mim.hus.edu.vn/elearning 16 Đóng gói liệu  Định nghĩa mức truy cập khác tới thuộc tính/phương thức đối tượng:    Công khai (public): biến/hàm truy cập từ tất lớp khác Bảo vệ (protected): biến/hàm truy cập nội lớp Riêng (private): biến/hàm truy cập nội lớp 2009-2010 OOP - http://mim.hus.edu.vn/elearning 17 Kế thừa  Tạo lớp (lớp - subclass) từ lớp có (lớp cha – parent class)     Lớp kế thừa tất thuộc tính/phương thức lớp cha Có thể bổ sung thuộc tính/phương thức Ví dụ: Lớp “xe tải” kế thừa từ lớp “ô tô” Một số ngôn ngữ cho phép kế thừa bội (vd: C++) 2009-2010 OOP - http://mim.hus.edu.vn/elearning 18 Đa hình  Các loại đa hình:    Tải bội (overloading): tên hàm, chức tương tự chất thực khác (ví dụ: phép cộng - số, xâu) Định nghĩa chồng (overriding): Cho phép định nghĩa lại hàm thuộc lớp cha thành hàm lớp (ví dụ: định nghĩa hàm di chuyển cho lớp lớp Quân Cờ) Tham biến (template): tên hàm lớp, số lượng tham biến khác kiểu tham biến khác 2009-2010 OOP - http://mim.hus.edu.vn/elearning 19 Nhập môn    Giới thiệu Các khái niệm lập trình hướng đối tượng Giới thiệu ngơn ngữ lập trình Java 2009-2010 OOP - http://mim.hus.edu.vn/elearning 20 Phân loại ngơn ngữ lập trình hướng đối tượng    Biên dịch hoàn toàn mã máy (C++, Eiffel, v.v.): hiệu cao Biên dịch mã byte chạy máy ảo (Smalltalk, Java, v.v.): chương trình ổn định, chạy mơi trường Thông dịch ngôn ngữ script (Ruby, Python, JavaScript, v.v.) 2009-2010 OOP - http://mim.hus.edu.vn/elearning 21 Ngôn ngữ thực hành: Java  Phiên bản: J2SE 5.0 (JDK 5.0)  http://java.sun.com 2009-2010 OOP - http://mim.hus.edu.vn/elearning 22 Java – tổng quan (1)  Lịch sử:  Do hãng Sun Microsystems triển khai năm 1991       Dự án Green: chế tạo điều khiển từ xa vạn chứa hệ điều hành điều khiển tồn đồ điện tử nhà Cần ngôn ngữ lập trình tích hợp đồ điện tử gia dụng để điều khiển cho phép chúng tương tác/trao đổi với nhau: ngôn ngữ hướng đối tượng C++: phức tạp, tính mang (portable) James Gosling: định nghĩa ngơn ngữ lập trình mang tên Oak, sau đổi tên Java: dựa C++, chương trình đơn giản/gọn nhẹ hơn, có tính mang Java đánh giá thích hợp cho web: chương trình nhỏ gọn, chạy máy 1994: Trình duyệt HotJava cho phép chạy Java applets Từ cuối 1995: Java phát triển mạnh với hỗ trợ Netscape 2009-2010 OOP - http://mim.hus.edu.vn/elearning 23 Java – tổng quan (2)  So sánh Java C++:   Cú pháp Java gần C++ Java khơng có đặc tính phức tạp (dễ gây lỗi lập trình) C++:       Không dùng trỏ Không dùng thừa kế bội Giải phóng nhớ tự động Kiểu xâu kí tự mảng tích hợp ngơn ngữ Java chạy chậm C++ (đổi lại tính mang được) Các phiên Java:  1.0, 1.1, v.v., 1.5 (Java 5), 1.6 (Java 6) 2009-2010 OOP - http://mim.hus.edu.vn/elearning 24 Java – tổng quan (3)  Chương trình Java:    Biên dịch: tệp mã nguồn ASCII (*.java) => tệp mã bytecode (*.class) Chạy chương trình: máy ảo Java (JVM: Java Virtual Machine) Ứng dụng (application) ứng dụng (applet):   Ứng dụng: chương trình thơng thường chạy máy Ứng dụng nhúng vào trình duyệt Internet: có tính giới hạn (để đảm bảo tính an tồn) dùng cho ứng dụng web 2009-2010 OOP - http://mim.hus.edu.vn/elearning 25 Java – tổng quan (4)  Phát triển phần mềm Java:  Bộ công cụ hỗ trợ JDK (Java Development Kit), miễn phí         javac: trình biên dịch (*.java -> *.class) java: máy ảo thực ứng dụng appletviewer: máy ảo thực applet jdb: debugger javap: trình dịch ngược (*.class -> *.java) javadoc: sinh tài liệu chương trình jar: trình nén tệp bytecode Các phiên JDK: phiên Java + môi trường (Windows, Linux, Unix) – jdk1.6 2009-2010 OOP - http://mim.hus.edu.vn/elearning 26 Tài liệu tham khảo  Học liệu: BigJava http://www.horstmann.com/bigjava2.html  Giáo trình Lập trình Java (laptrinh_java.pdf) 2009-2010 OOP - http://mim.hus.edu.vn/elearning 27 Phần  Học liệu: BigJava http://www.horstmann.com/bigjava2.html   27 chương Tự đọc chương: 5, 10, 12, 14, 16, 18, 19, 24, 25, 26, 27 2009-2010 OOP - http://mim.hus.edu.vn/elearning 28 ... http://mim.hus.edu.vn/elearning Giới thiệu (2)  Phân loại ngơn ngữ lập trình:   Ngơn ngữ máy, hợp ngữ Ngơn ngữ lập trình bậc cao     2009-2010 Lập Lập Lập Lập trình trình trình trình thủ tục: Pascal, C, v.v hàm: Lisp,... http://mim.hus.edu.vn/elearning 12 Đặc điểm LT hướng đối tượng  Chương trình hướng đối tượng:   Mô tả đối tượng (thuộc tính, phương thức) Chương trình chính: tạo đối tượng, gửi thông báo yêu cầu thực hành... thiệu Các khái niệm lập trình hướng đối tượng Giới thiệu ngơn ngữ lập trình Java 2009-2010 OOP - http://mim.hus.edu.vn/elearning 20 Phân loại ngơn ngữ lập trình hướng đối tượng    Biên dịch

Ngày đăng: 16/10/2014, 14:08

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

  • Đang cập nhật ...

Tài liệu liên quan