1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giáo trình về Lập trình hướng đối tượng

156 1 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 156
Dung lượng 610,31 KB

Nội dung

Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only CHƯƠNG CÁC KHÁI NIỆM CƠ SỞ CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Chương trình bày vấn đề sau:  Thảo luận cách tiếp cận hướng đối tượng, nhược điểm lập trình truyền thống đặc điểm lập trình hướng đối tượng  Các khái niệm sở phương pháp hướng đối tượng:  Đối tượng  Lớp  Trừu tượng hóa liệu bao gói thơng tin  Kế thừa  Tương ứng bội  Liên kết động  Truyền thông báo  Các bước cần thiết để thiết kế chương trình theo hướng đối tượng  Các ưu điểm lập trình hướng đối tượng  Các ngôn ngữ hướng đối tượng  Một số ứng dụng lập trình hướng đối tượng 1.1 Giới thiệu 1.1.1 Tiếp cận hướng đối tượng Trong giới thực, chung quanh đối tượng, thực thể có mối quan hệ với Ví dụ phịng cơng ty kinh doanh xem đối tượng Các phịng là: phịng quản lý, phịng bán hàng, phịng kế tốn, phịng tiếp thị, Mỗi phịng ngồi cán đảm nhiệm cơng việc cụ thể, cịn có liệu riêng thông tin nhân viên, doanh số bán hàng, liệu khác có liên quan đến phận Việc phân chia phịng chức công ty tạo điều kiện dễ dàng cho việc quản lý hoạt động Mỗi nhân viên phòng điều khiển xử lý liệu phịng Ví dụ phịng kế tốn phụ trách lương bổng nhân viên công ty Nếu bạn phận tiếp thị cần tìm thơng tin chi tiết lương đơn vị gởi u cầu phịng kế tốn Với cách làm bạn đảm bảo có nhân viên phận kế toán Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only quyền truy cập liệu cung cấp thông tin cho bạn Điều cho thấy rằng, người thuộc phận khác truy cập thay đổi liệu phận kế toán Khái niệm đối tượng mở rộng lĩnh vực đời sống xã hội - việc tổ chức chương trình Mọi ứng dụng định nghĩa tập thực thể - đối tượng, cho trình tái tạo suy nghĩa gần sát giới thực Trong phần xem xét phương pháp lập trình truyền thống để từ thấy cần chuyển sang phương pháp lập trình hướng đối tượng 1.1.2 Những nhược điểm lập trình hướng thủ tục Cách tiếp cận lập trình truyền thống lập trình hướng thủ tục (LTHTT) Theo cách tiếp cận hệ thống phần mềm xem dãy cơng việc cần thực đọc liệu, tính toán, xử lý, lập báo cáo in ấn kết v.v Mỗi cơng việc thực số hàm định Như trọng tâm cách tiếp cận hàm chức LTHTT sử dụng kỹ thuật phân rã hàm chức theo cách tiếp cận xuống (top-down) để tạo cấu trúc phân cấp Các ngơn ngữ lập trình bậc cao COBOL, FORTRAN, PASCAL, C, v.v , ngơn ngữ lập trình hướng thủ tục Những nhược điểm LTHTT là:  Chương trình khó kiểm sốt khó khăn việc bổ sung, nâng cấp chương trình Chương trình xây dựng theo cách TCHTT thực chất danh sách câu lệnh mà theo máy tính cần thực Danh sách lệnh tổ chức thành nhóm theo đơn vị cấu trúc ngơn ngữ lập trình gọi hàm/thủ tục Trong chương trình có nhiều hàm/thủ tục, thường có nhiều thành phần liệu quan trọng khai báo tổng thể (global) để hàm/thủ tục truy nhập, đọc làm thay đổi giá trị biến tổng thể Điều làm cho chương trình khó kiểm sốt, chương trình lớn, phức tạp vấn đề trở nên khó khăn Khi ta muốn thay đổi, bổ sung cấu trúc liệu dùng chung cho số hàm/thủ tục phải thay đổi tất hàm/thủ tục liên quan đến liệu Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only  Mơ hình xây dựng theo cách tiếp cận hướng thủ tục không mô tả đầy đủ, trung thực hệ thống thực tế  Phương pháp TCHTT đặt trọng tâm vào hàm hướng tới hoạt động không thực tương ứng với thực thể hệ thống giới thực 1.1.3 Lập trình hướng đối tượng Lập trình hướng đối tượng (Object Oriented Programming - LTHĐT) phương pháp lập trình lấy đối tượng làm tảng để xây dựng thuật giải, xây dựng chương trình Đối tượng xây dựng sở gắn cấu trúc liệu với phương thức (các hàm/thủ tục) thể cách mà suy nghĩ, bao quát giới thực LTHĐT cho phép ta kết hợp tri thức bao quát trình với khái niệm trừu tượng sử dụng máy tính Điểm phương pháp LTHĐT thiết kế chương trình xoay quanh liệu hệ thống Nghĩa thao tác xử lý hệ thống gắn liền với liệu có thay đổi cấu trúc liệu ảnh hưởng đến số phương thức xử lý liên quan LTHĐT không cho phép liệu chuyển động tự hệ thống Dữ liệu gắn chặt với phương thức thành vùng riêng mà phương thức tác động lên bảo vệ để cấm việc truy nhập tùy tiện từ bên ngồi LTHĐT cho phép phân tích tốn thành tập thực thể gọi đối tượng sau xây dựng liệu với phương thức xung quanh đối tượng Tóm lại LTHĐT có đặc tính chủ yếu sau: Tập trung vào liệu thay cho phương thức Chương trình chia thành lớp đối tượng Các cấu trúc liệu thiết kế cho đặc tả đối tượng Các phương thức xác định vùng liệu đối tượng gắn với cấu trúc liệu Dữ liệu bao bọc, che dấu khơng cho phép thành phần bên ngồi truy nhập tự Các đối tượng trao đổi với thông qua phương thức Dữ liệu phương thức dễ dàng bổ sung vào đối tượng cần thiết Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only Chương trình thiết kế theo kiểu dưới-lên (bottom-up) 1.2 Các khái niệm lập trình hướng đối tượng Những khái niệm LTHĐT bao gồm: Đối tượng; Lớp; Trừu tượng hóa liệu, bao gói thơng tin; Kế thừa; Tương ứng bội; Liên kết động; Truyền thông báo 1.2.1 Đối tượng Trong giới thực, khái niệm đối tượng hiểu thực thể, người, vật bảng liệu cần xử lý chương trình, Trong LTHĐT đối tượng biến thể lớp 1.2.2 Lớp Lớp khái niệm LTHĐT so với kỹ thuật LTHTT Nó mẫu mô tả thông tin cấu trúc liệu thao tác hợp lệ phần tử liệu Khi phần tử liệu khai báo phần tử lớp gọi đối tượng Các hàm định nghĩa hợp lệ lớp gọi phương thức (method) chúng hàm xử lý liệu đối tượng lớp Mỗi đối tượng có riêng cho phần tử liệu lớp Mỗi lớp bao gồm: danh sách thuộc tính (attribute) danh sách phương thức để xử lý thuộc tính Cơng thức phản ánh chất kỹ thuật LTHĐT là: Đối tượng = Dữ liệu + Phương thức Chẳng hạn, xét lớp HINH_CN bao gồm thuộc tính: (x1,y1) toạ độ góc bên trái, d,r chiều dài chiều rộng HINH_CN Các phương thức nhập số liệu cho HINH_CN, hàm tính diện tích, chu vi hàm hiển thị Lớp HINH_CN mơ tả sau: Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only HINH_CN Thuộc tính : x1,y1 d,r Phương thức : Nhập_sl Diện tích Chu vi Hiển thị Hình 2.2 Mơ tả lớp HINH_CN Chú ý: Trong LTHĐT lớp khái niệm tĩnh, nhận biết từ văn chương trình, ngược lại đối tượng khái niệm động, xác định nhớ máy tính, nơi đối tượng chiếm vùng nhớ lúc thực chương trình Đối tượng tạo để xử lý thông tin, thực nhiệm vụ thiết kế, sau bị hủy bỏ đối tượng hết vai trị 1.2.3 Trừu tượng hóa liệu bao gói thơng tin Trừu tượng hóa cách biểu diễn đặc tính bỏ qua chi tiết vụn vặt giải thích Khi xây dựng lớp, ta phải sử dụng khái niệm trừu tượng hóa Ví dụ ta định nghĩa lớp để mơ tả đối tượng khơng gian hình học bao gồm thuộc tính trừu tượng kích thước, hình dáng, màu sắc phương thức xác định thuộc tính Việc đóng gói liệu phương thức vào đơn vị cấu trúc lớp xem nguyên tắc bao gói thông tin Dữ liệu tổ chức cho giới bên ngồi (các đối tượng lớp khác) khơng truy nhập vào, mà cho phép phương thức lớp lớp có quan hệ kế thừa với quyền truy nhập Chính phương thức lớp đóng vai trị giao diện liệu đối tượng phần cịn lại chương trình Ngun tắc bao gói liệu để ngăn cấm truy nhập trực tiếp lập trình gọi che giấu thơng tin Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only 1.2.4 Kế thừa Kế thừa trình mà đối tượng lớp quyền sử dụng số tính chất đối tượng lớp khác Sự kế thừa cho phép ta định nghĩa lớp sở lớp tồn Lớp này, thành phần kế thừa, có thêm thuộc tính hàm Nguyên lý kế thừa hỗ trợ cho việc tạo cấu trúc phân cấp lớp 1.2.5 Tương ứng bội Tương ứng bội khả khái niệm (chẳng hạn phép tốn) sử dụng với nhiều chức khác Ví dụ, phép + biểu diễn cho phép “cộng” số nguyên (int), số thực (float), số phức (complex) xâu ký tự (string) v.v Hành vi phép toán tương ứng bội phụ thuộc vào kiểu liệu mà sử dụng để xử lý Tương ứng bội đóng vai quan trọng việc tạo đối tượng có cấu trúc bên khác dùng chung giao diện bên (chẳng hạn tên gọi) 1.2.6 Liên kết động Liên kết động dạng liên kết thủ tục hàm chương trình thực lời gọi tới hàm, thủ tục Như liên kết động, nội dung đoạn chương trình ứng với thủ tục, hàm khơng biết thực lời gọi tới thủ tục, hàm 1.2.7 Truyền thơng báo Các đối tượng gửi nhận thông tin với giống người trao đổi với Chính nguyên lý trao đổi thông tin cách truyền thông báo cho phép ta dễ dàng xây dựng hệ thống mô gần hệ thống giới thực Truyền thông báo cho đối tượng yêu cầu đối tượng thực việc Cách ứng xử đối tượng mô tả bên lớp thông qua phương thức Trong chương trình, thơng báo gửi đến cho đối tượng yêu cầu thực công việc cụ thể, nghĩa sử dụng hàm tương ứng để xử lý liệu khai báo đối tượng Vì vậy, thơng báo phải hàm cần thực đối tượng nhận thông báo Thông báo truyền phải xác định tên đối tượng thông tin truyền Ví dụ, lớp CONGNHAN đối tượng cụ thể đại diện Hoten nhận Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only thơng báo cần tính lương thơng qua hàm TINHLUONG xác định lớp CONGNHAN Thông báo xử lý sau: CONGNHAN.TINHLUONG (Hoten) Đối tượng thơng báo Thơng tin Trong chương trình hướng đối tượng, đối tượng tồn thời gian định Đối tượng tạo khai báo bị hủy bỏ chương trình khỏi miền xác định đối tượng Sự trao đổi thơng tin thực thời gian đối tượng tồn 1.3 Các bước cần thiết để thiết kế chương trình theo hướng đối tượng Chương trình theo hướng đối tượng bao gồm tập đối tượng mối quan hệ đối tượng với Vì vậy, lập trình ngơn ngữ hướng đối tượng bao gồm bước sau: Xác định dạng đối tượng (lớp) tóan Tìm kiếm đặc tính chung (dữ liệu chung) dạng đối tượng này, chúng chia xẻ Xác định lớp sở dựa đặc tính chung dạng đối tượng Từ lớp sở, xây dựng lớp dẫn xuất chứa thành phần, đặc tính khơng chung cịn lại dạng đối tượng Ngồi ra, ta cịn đưa lớp có quan hệ với lớp sở lớp dẫn xuất 1.4 Các ưu điểm lập trình hướng đối tượng Cách tiếp cận hướng đối tượng giải nhiều vấn đề tồn trình phát triển phần mềm tạo sản phẩm phần mềm có chất lượng cao Những ưu điểm LTHĐT là: Thơng qua nguyên lý kế thừa, loại bỏ đoạn chương trình lặp lại q trình mơ tả lớp mở rộng khả sử dụng lớp xây dựng Chương trình xây dựng từ đơn thể (đối tượng) trao đổi với nên việc thiết kế lập trình thực theo quy trình định khơng phải dựa vào kinh nghiệm kỹ thuật trước Điều đảm bảo rút ngắn thời gian xây dựng hệ thống tăng suất lao động Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only Nguyên lý che giấu thông tin giúp người lập trình tạo chương trình an tồn khơng bị thay đoạn chương trình khác Có thể xây dựng ánh xạ đối tượng tốn vào đối tượng chương trình Cách tiếp cận thiết kế đặt trọng tâm vào đối tượng, giúp xây dựng mơ hình chi tiết gần với dạng cài đặt Những hệ thống hướng đối tượng dễ mở rộng, nâng cấp thành hệ lớn Kỹ thuật truyền thông báo việc trao đổi thông tin đối tượng giúp cho việc mô tả giao diện với hệ thống bên trở nên đơn giản Có thể quản lý độ phức tạp sản phẩm phần mềm Không phải hệ thống hướng đối tượng có tất tính chất nêu Khả có tính chất phụ thuộc vào lĩnh vực ứng dụng dự án tin học vào phương pháp thực người phát triển phần mềm 1.5 Các ngôn ngữ hướng đối tượng Lập trình hướng đối tượng khơng đặc quyền ngôn ngữ đặc biệt Cũng giống lập trình có cấu trúc, khái niệm lập trình hướng đối tượng cài đặt ngơn ngữ lập trình C Pascal, Tuy nhiên, chương trình lớn vấn đề lập trình trở nên phức tạp Những ngơn ngữ thiết kế đặc biệt, hỗ trợ cho việc mô tả, cài đặt khái niệm phương pháp hướng đối tượng gọi chung ngôn ngữ đối tượng Dựa vào khả đáp ứng khái niệm hướng đối tượng, ta chia làm hai loại: Ngơn ngữ lập trình dựa đối tượng Ngơn ngữ lập trình hướng đối tượng Lập trình dựa đối tượng kiểu lập trình hỗ trợ cho việc bao gói, che giấu thơng tin định danh đối tượng Lập trình dựa đối tượng có đặc tính sau:  Bao gói liệu  Cơ chế che giấu truy nhập liệu  Tự động tạo lập xóa bỏ đối tượng Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only  Phép toán tải bội Ngơn ngữ hỗ trợ cho kiểu lập trình gọi ngơn ngữ lập trình dựa đối tượng Ngôn ngữ lớp không hỗ trợ cho việc thực kế thừa liên kết động, chẳng hạn Ada ngơn ngữ lập trình dựa đối tượng Lập trình hướng đối tượng kiểu lập trình dựa đối tượng bổ sung thêm nhiều cấu trúc để cài đặt quan hệ kế thừa liên kết động Vì đặc tính LTHĐT viết cách ngắn gọn sau: Các đặc tính dựa đối tượng + kế thừa + liên kết động Ngôn ngữ hỗ trợ cho đặc tính gọi ngơn ngữ LTHĐT, ví dụ C++, Smalltalk, Object Pascal v.v Việc chọn ngôn ngữ để cài đặt phần mềm phụ thuộc nhiều vào đặc tính u cầu tốn ứng dụng, vào khả sử dụng lại chương trình có vào tổ chức nhóm tham gia xây dựng phần mềm 1.6 Một số ứng dụng LTHĐT LTHĐT ứng dụng để phát triển phần mềm nhiều lĩnh vực khác Trong số đó, có ứng dụng quan trọng tiếng hệ điều hành Windows hãng Microsoft phát triển dựa kỹ thuật LTHĐT Một số lĩnh vực ứng dụng kỹ thuật LTHĐT bao gồm: + Những hệ thống làm việc theo thời gian thực + Trong lĩnh vực mơ hình hóa mơ q trình + Các sở liệu hướng đối tượng + Những hệ siêu văn bản, multimedia + Lĩnh vực trí tuệ nhân tạo hệ chuyên gia + Lập trình song song mạng nơ-ron + Những hệ tự động hóa văn phòng trợ giúp định Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only CHƯƠNG CÁC MỞ RỘNG CỦA NGÔN NGỮ C++ Chương trình bày vấn đề sau đây:  Giới thiệu chung ngôn ngữ C++  Một số mở rộng ngôn ngữ C++ so với ngôn ngữ C  Các đặc tính C++ hỗ trợ lập trình hướng đối tượng  Vào C++  Cấp phát giải phóng nhớ  Biến tham chiếu, tham chiếu  Truyền tham số cho hàm theo tham chiếu  Hàm trả giá trị tham chiếu  Hàm với đối số có giá trị mặc định  Các hàm nội tuyến (inline)  Hàm tải bội 2.1 Giới thiệu chung C++ C++ ngôn ngữ lập trình hướng đối tượng mở rộng ngơn ngữ C Vì khái niệm C dùng C++ Phần lớn chương trình C chạy C++ Trong chương tập trung giới thiệu khái niệm, đặc tính C++ hỗ trợ cho lập trình hướng đối tượng Một số kiến thức có C++ có ngơn ngữ C khơng trình bày lại 2.2 Một số mở rộng C++ so với C 2.2.1 Đặt lời thích Ngồi kiểu thích C /* */ , C++ đưa thêm kiểu thích thứ hai, thích bắt đầu // Nói chung, kiểu thích /* */ dùng cho khối thích lớn gồm nhiều dịng, cịn kiểu // dùng cho thích dịng Ví dụ: /* Đây thích C */ // Đây thích C++ 10 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only char hoten[25], diachi[50]; cout

Ngày đăng: 24/06/2023, 11:06

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w