Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
315,5 KB
Nội dung
1 Bài 1: Giới thiệu lập trình hướng đối tượng Giới thiệu Tổng quan • Lập trình hướng đối tượng ▫ Lập trình định hướng đối tượng ▫ Object Oriented Programming (OOP) • Được xem là: ▫ Cách tiếp cận mới, hiệu ▫ Giúp tăng suất ▫ Dễ dàng bảo trì, sửa đổi, nâng cấp • Mục đích: ▫ Giảm bớt thao tác viết trình ▫ Mô tả chân thực giới thực Tổng quan phương pháp lập trình • Lập trình truyền thống ▫ Lập trình phi cấu trúc ( Lập trình tuyến tính) ▫ Lập trình cấu trúc • Lập trình hướng đối tượng Lập trình phi cấu trúc • Nhược điểm: ▫ ▫ ▫ ▫ Khơng sử dụng lại đoạn mã Khơng có khả kiểm soát phạm vi truy xuất liệu Mọi liệu chương trình tồn cục Dữ liệu bị sửa đổi vị trí chương trình Lập trình phi cấu trúc Lập trình phi cấu trúc : • Cịn gọi lập trình tuyến tính • Giải tốn tương nhỏ, tương đối đơn giản Đặc điểm: • Chỉ gồm chương trình • Gồm dãy câu lệnh Khơng theo mơ hình • Mỗi câu lệnh dẫn cho máy tính thực cơng việc • Chương trình ngắn, 100 dịng • Cơng việc lập trình viên: Tạo danh sách lệnh, máy tính thực thi lệnh Phân chia thành thủ tục Khi chương trình lớn, danh sách lệnh trở thành cồng kềnh, khó sử dụng Ý tưởng: Chia chương trình thành hàm (thủ tục, chương trình con) Mỗi hàm thực mục đích riêng, thiết lập giao tiếp riêng hàm khác • Từ ý tưởng chia chương trình thành hàm Nhóm số hàm thành module Lập trình module Với lập trình module: − Các thủ tục có chung chức nhóm lại với − − − Chương trình chia thành nhiều phần nhỏ Các phần tương tác thông qua việc gọi thủ tục Mỗi mô đun có liệu riêng Lập trình cấu trúc • • Ra đời vào năm 70: Chương trình chia nhỏ thành chương trình con: ▫ ▫ • Thủ tục (Procedure) Hàm (Function) Các chương trình con: ▫ ▫ Độc lập với có liệu riêng Trao đổi qua: tham số biến toàn cục Lập trình cấu trúc • Đặc trưng: Chương trình= Cấu trúc liệu + giải thuật ▫ ▫ ▫ • Cấu trúc liệu: Là cách tổ chức liệu Giải thuật: Là quy trình để thực công việc xác định Giải thuật thường phải kèm với cấu trúc liệu xác định Chú ý: ▫ ▫ • Mỗi chương trình gọi thực nhiều lần chương trình Các chương trình gọi đến thực theo thứ tự Ưu điểm: ▫ • Chương trình sáng sủa dễ hiểu, dễ theo dõi Nhược điểm: ▫ ▫ ▫ Khó sử dụng lại mã lệnh (vì cấu trúc liệu với giải thuật) Không phù hợp với phần mềm lớn Vấn đề chia chương trình lớn thành chương trình cho phù hợp hiệu quả? Nhược điểm lập trình truyền thống ▫ ▫ ▫ Chương trình khó kiểm sốt Khó khăn việc bổ sung, nâng cấp chương trình Khi thay đổi, bổ sung liệu dùng chung phải thay đổi gần tất thủ tục/hàm liên quan ▫ ▫ Khả sử dụng lại đoạn mã chưa nhiều Không mô tả đầy đủ, trung thực hệ thống thực tế 10 Mơ hình giới thực ( real-world) • Trong thực tế, làm việc với đối tượng người, xe tơ…Nó khơng phải liệu hay hàm Một đối tượng giới thực phức tạp bao gồm thuộc tính(attributes) cách hành xử (behavior) • Thuộc tính: ▫ ▫ • Xe tơ: Màu xe, năm sản xuất… Cách hành xử: ▫ ▫ • Người: Chiều cao, cân nặng… Là mà đối tượng thực để đáp ứng lại tác động tác nhân Nó giống hàm Được triệu gọi để thực chức Đối tượng liệu, hay chức đơn mà bao hàm hai 14 Lập trình hướng đối tượng • Các phận: Bán hàng, nhân sự, kế tốn cơng ty • Các nhân viên phận thực điều khiển, thao tác liệu phận • Việc chia cơng ty thành phận giúp cho việc hiểu điều khiển hoạt động công ty cách dễ dàng 15 Hệ thống hướng đối tượng • Là hệ thống có đặc điểm sau: ▫ Gồm tập hợp đối tượng Sự đóng gói thành phần: ▫ ▫ Dữ liệu (thuộc tính đối tượng) Các thao tác liệu Các đối tượng kế thừa đặc tính đối tượng khác Hoạt động thơng qua tương tác đối tượng nhờ chế truyền thông điệp Thông báo Gửi & nhận thơng báo 16 Đối tượng (Object) • Là khái niệm trừu tượng phản ánh thực thể giới thực ▫ ▫ Có thể thực thể vật lý Có thể khái niệm trừu tượng • • Human entities:Employees, Students, Customers, Salespeople User-defined data types:Time,Angles,Complex numbers,Points on the plane Được định nghĩa thể lớp Chính thực thể hệ thống xác định ba yếu tố: ▫ ▫ ▫ • Định danh đối tượng: Xác định đối tượng hệ thống Trạng thái đối tượng: Hoạt động đối tượng: Một đối tượng đóng gói thành phần: ▫ ▫ Trạng thái (state) hay liệu Các ứng xử (behavior) hay hành vi, thao tác 17 Thuộc tính & phương thức • Thuộc tính bao gồm: ▫ ▫ • Hằng, biến Tham số nội Thuộc tính xác định kiểu, gồm: ▫ ▫ • Kiểu cổ điển Kiểu người dùng định nghĩa Phương thức là: ▫ ▫ ▫ Các hàm nội đối tượng Có kiểu trả Tên gọi khác: hàm thành viên 18 Lớp (Class) • Lớp khái niệm, mang tính trừu tượng, dùng để biểu diễn tập đối tượng ▫ VD: Trong tốn quản lý bn bán xe hơi, xe đối tượng, khái niệm “Xe hơi” lớp đối tượng tất đối tượng xe • • Đối tượng thể cụ thể lớp, thực thể tồn hệ thống Lớp dùng để biểu diễn đối tượng, lớp có thuộc tính phương thức: ▫ ▫ • Thuộc tính lớp tương ứng với thuộc tính đối tượng Phương thức lớp tương ứng với hành động đối tượng Chú ý: ▫ ▫ ▫ ▫ Hoặc có thuộc tính, khơng có phương thức Hoặc có phương thức, khơng có thuộc tính Hoặc có thuộc tính phương thức, trường hợp phổ biến Đặc biệt, lớp khơng có thuộc tính phương thức lớp trừu tượng Các lớp khơng có đối tượng tương ứng 19 Lớp đối tượng Lớp đối tượng, có mối liên hệ tương ứng lẫn nhau, chất lại khác nhau: Lớp trừu tượng hoá đối tượng Trong đó, đối tượng thể củalớp Đối tượng thực thể cụ thể, có thực, tồn hệ thống Trong đó, lớp mộtkhái niệm trừu tượng, tồn dạng khái niệm để mơ tả đặc tính chung sốđối tượng Tất đối tượng thuộc lớp có thuộc tính phương thức Một lớp nguyên mẫu đối tượng Nó xác định hành động khả thi cácthuộc tính cần thiết cho nhóm đối tượng cụ thể 20 Trừu tượng hóa • Các loại trừu tượng hoá: ▫ Trừu tượng hoá liệu: Trừu tượng hoá đối tượng theo liệu q trình mơ hình hố thuộc tính lớp dựa thuộc tính đối tượng tương ứng ▫ Loại bớt thuộc tính cá biệt, giữ lại thuộc tính chung Trừu tượng hoá chức năng: Trừu tượng hoá đối tượng theo chức q trình mơ hình hố phương thức lớp dựa hành động đối tượng Loại bỏ hành động cá biệt giữ lại hành động chung để hình thành phương thức chung lớp biểu diễn cho đối tượng • Những ưu điểm việc trừu tượng hóa là: ▫ Tập trung vào vấn đề cần quan tâm ▫ Xác định đặc tính thiết yếu hành động cần thiết ▫ Giảm thiểu chi tiết không cần thiết 21 Truyền thơng điệp • Thơng điệp: ▫ • Là phương tiện để đối tượng chuyển yêu cầu tới đối tượng khác Một thông điệp bao gồm: ▫ ▫ ▫ • Handle đối tượng đích (đối tượng chủ) Tên phương thức cần thực Các thông tin cần thiết khác (tham số) Hệ thống yêu cầu đối tượng thực phương thức sau: ▫ ▫ ▫ Gửi thông báo tham số cho đối tượng Kiểm tra tính hợp lệ thông báo Gọi thực hàm tương ứng phương thức 22 Sự đóng gói • Khái niệm: ▫ • Là chế ràng buộc liệu thao tác liệu thành thể thống Đóng gói gồm: ▫ ▫ • Bao gói: người dùng giao tiếp với hệ thống qua giao diện Che dấu: ngăn chặn thao tác không phép từ bên Ưu điểm: ▫ ▫ Quản lý thay đổi Bảo vệ liệu 23 Sự kế thừa • Khái niệm: ▫ • Khả cho phép xây dựng lớp thừa hưởng thuộc tính lớp có Đặc điểm: ▫ ▫ • Lớp nhận bổ sung thành phần Hoặc định nghĩa thuộc tính lớp cha Các loại kế thừa: ▫ ▫ Đơn kế thừa Đa kế thừa 24 Sự đa hình • Cho phép lớp định nghĩa phương thức trùng nhau: tên, số lượng kiểu tham số, kiểu trả Việc định nghĩa phương thức trùng lớp kế thừa gọi nạp chồng phương thức • Khi gọi phương thức trùng tên, dựa vào đối tượng gọi mà chương trình thực phương thức lớp tương ứng, đó, cho kết khác • Ví dụ: Lớp người, lớp nhân viên, lớp sinh viên có phương thức Show() 25 Các bước thiết kế chương trình OOP • • • • • • ▫ Bước Bước Bước Bước Bước 1: 2: 3: 4: 5: Mô tả tốn Đặc tả u cầu Trích chọn đối tượng Mơ hình hố lớp đối tượng Thiết kế tổng qt Bước tiến hành thiết kế vĩ mô, nghĩa thiết kế mối quan hệ lớp hệ thống Bước 6: Thiết kế chi tiết ▫ Bước thực thiết kế mức vi mô, nghĩa thiết kế kiến trúc bên lớp đối tượng 26 Ưu điểm OOP • Ưu điểm chính: ▫ Loại bỏ đoạn mã lặp lại ▫ Tạo chương trình an tồn, bảo mật ▫ Dễ dàng mở rộng nâng cấp ▫ Rút ngắn thời gian xây dựng hệ thống ▫ Tăng suất hiệu ▫ Chương trình thiết kế theo qui trình 27 Một số ngơn ngữ OOP •Ngơn ngữ lập trình C++ •Ngơn ngữ lập trình ASP.NET C#.NET •Ngơn ngữ lập trình Java 28 Câu hỏi ơn tập • Thế lập trình phi cấu trúc? • Thế lập trình có cấu trúc? • Thế lập trình hướng đối tượng? • Thế Lớp đối tượng? • Các đặc tính lập trình hướng đối tượng? • Trừu tượng hóa gì? Điểm ý? • Tính đóng gói? • Tính kế thừa? • Tính đa hình? • Các ngơn ngữ hỗ trợ lập trình hướng đối tượng? ... viết trình ▫ Mô tả chân thực giới thực Tổng quan phương pháp lập trình • Lập trình truyền thống ▫ Lập trình phi cấu trúc ( Lập trình tuyến tính) ▫ Lập trình cấu trúc • Lập trình hướng đối tượng. .. Thế lập trình phi cấu trúc? • Thế lập trình có cấu trúc? • Thế lập trình hướng đối tượng? • Thế Lớp đối tượng? • Các đặc tính lập trình hướng đối tượng? • Trừu tượng hóa gì? Điểm ý? • Tính đóng... trừu tượng Các lớp đối tượng tương ứng 19 Lớp đối tượng Lớp đối tượng, có mối liên hệ tương ứng lẫn nhau, chất lại khác nhau: Lớp trừu tượng hoá đối tượng Trong đó, đối tượng thể củalớp Đối