Báo cáo tìm hiểu về các mô thức lập trình cơ bản

23 75 1
Báo cáo tìm hiểu về các mô thức lập trình cơ bản

Đ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

MỤC LỤCI. Tổng quan về các mô thức lập trình phổ biến ____________¬¬____21. Mô thức lập trình trực quan (Visual programming paradigm) ______________22. Mô thức lập trình song song (Parallel programming paradigm) ____________¬_23. Mô thức lập trình tương tranh (Concurrant programming paradigm) _________34. Mô thức lập trình phân tán (Distributed programming paradigm) ___________45. Mô thức lập trình hướng dịch vụ (Serviceoriented programming paradigm) __4II. Mô thức lập trình hướng đối tượng (Objectoriented programming paradigm) ___________________________________51. Lập trình hướng đối tượng là gì? __________________________________51.1. Lập trình cấu trúc _______________________________________________51.2. Sự trừu tượng hóa dữ liệu ________________________________________81.3. Lập trình hướng đối tượng ________________________________________82. Một số khái niệm trong Lập trình hướng đối tượng __________________132.1. Sự đóng gói (Encapsulation) _____________________________________132.2. Tính kế thừa (Inheritance) _______________________________________142.3. Tính đa hình (Polymorphism) ____________________________________153. Các ngôn ngữ và vài ứng dụng của OOP ___________________________16III. Lời kết ______________________________________________17IV. Tài liệu tham khảo ____________________________________17I. Tổng quan về các mô thức lập trình phổ biến1. Mô thức lập trình trực quan (Visual programming paradigm) Ngày nay với xu hướng tin học phát triển mạnh mẽ, số người sử dụng máy tính tăng lên rất nhanh và máy tính được sử dụng trong hầu hết các lĩnh vực của đời sống nên đòi hỏi các ngôn ngữ lập trình cũng phải đơn giản, dễ sử dụng và mang tính đại chúng cao. Chính vì vậy phương pháp lập trình trực quan ra đời để đơn giản hóa cách sử dụng và triển khai ứng dụng một cách nhanh chóng. Đặc điểm nổi bật của phương pháp lập trình trực quan:• Cho phép xây dựng chương trình theo hướng sự kiện (Eventdriven programming), nghĩa là người sử dụng sẽ ấn một phím tương ứng, chọn lựa một nút lệnh hay gọi một lệnh từ một ứng dụng khác chạy song song cùng lúc… để đáp ứng yêu cầu khi mà có tình huống xảy ra lúc thực hiện chương trình.• Người lập trình trực tiếp tạo ra các khung giao diện (interface), ứng dụng thông qua các thao tác trên màn hình dựa vào các đối tượng (ojbect) như hộp hội thoại, nút điều khiển,… chúng mang các thuộc tính riêng biệt như: màu sắc, font chữ… mà ta chỉ cần chọn lựa trên một danh sách cho sẵn.• Khi dùng các ngôn ngữ lập trình trực quan ta rất ít khi phải tự viết các lệnh, tổ chức chương trình… một cách rắc rối mà chỉ cần khai báo việc gì cần làm khi một tình huống xuất hiện.• Máy tính sẽ dựa vào phần thiết kế và khai báo của lập trình viên để tự động tạo lập chương trình.2. Mô thức lập trình song song (Parallel programming paradigm)Việc lập trình để tách ra các công việc nhỏ và sắp xếp để xử lý song song nhằm giảm thời gian thực hiện công việc xuống thì được gọi là lập trình song song.Để tận dụng được sức mạnh của các bộ vi xử lý đa nhân mạnh mẽ hiện nay, đòi hỏi các lập trình viên phải tận dụng được hết các nhân trong bộ vi xử lý. Thay

Trường Đại học Bách Khoa Hà Nội VIỆN CNTT&TT *** BÁO CÁO TÌM HIỂU VỀ CÁC MƠ THỨC LẬP TRÌNH Giảng viên hướng dẫn: Vũ Đức Vượng Bộ mơn: Kỹ thuật lập trình (IT3040) Sinh viên thực hiện: MSSV: 2019… Lớp: Mã lớp học: Hà Nội, tháng 10 năm 2021 MỤC LỤC I Tổng quan mơ thức lập trình phổ biến Mô thức lập trình trực quan (Visual programming paradigm) 2 Mơ thức lập trình song song (Parallel programming paradigm) _2 Mơ thức lập trình tương tranh (Concurrant programming paradigm) _3 Mô thức lập trình phân tán (Distributed programming paradigm) _4 Mơ thức lập trình hướng dịch vụ (Service-oriented programming paradigm) II Mơ thức lập trình hướng đối tượng (Objectoriented programming paradigm) _5 Lập trình hướng đối tượng gì? 1.1 Lập trình cấu trúc _5 1.2 Sự trừu tượng hóa liệu 1.3 Lập trình hướng đối tượng Một số khái niệm Lập trình hướng đối tượng 13 2.1 Sự đóng gói (Encapsulation) _13 2.2 Tính kế thừa (Inheritance) _14 2.3 Tính đa hình (Polymorphism) 15 Các ngôn ngữ vài ứng dụng OOP _16 III Lời kết 17 IV Tài liệu tham khảo 17 I Tổng quan mô thức lập trình phổ biến Mơ thức lập trình trực quan (Visual programming paradigm) - Ngày với xu hướng tin học phát triển mạnh mẽ, số người sử dụng máy tính tăng lên nhanh máy tính sử dụng hầu hết lĩnh vực đời sống nên địi hỏi ngơn ngữ lập trình phải đơn giản, dễ sử dụng mang tính đại chúng cao Chính phương pháp lập trình trực quan đời để đơn giản hóa cách sử dụng triển khai ứng dụng cách nhanh chóng - Đặc điểm bật phương pháp lập trình trực quan: • Cho phép xây dựng chương trình theo hướng kiện (Event-driven programming), nghĩa người sử dụng ấn phím tương ứng, chọn lựa nút lệnh hay gọi lệnh từ ứng dụng khác chạy song song lúc… để đáp ứng yêu cầu mà có tình xảy lúc thực chương trình • Người lập trình trực tiếp tạo khung giao diện (interface), ứng dụng thông qua thao tác hình dựa vào đối tượng (ojbect) hộp hội thoại, nút điều khiển,… chúng mang thuộc tính riêng biệt như: màu sắc, font chữ… mà ta cần chọn lựa danh sách cho sẵn • Khi dùng ngơn ngữ lập trình trực quan ta phải tự viết lệnh, tổ chức chương trình… cách rắc rối mà cần khai báo việc cần làm tình xuất • Máy tính dựa vào phần thiết kế khai báo lập trình viên để tự động tạo lập chương trình Mơ thức lập trình song song (Parallel programming paradigm) Việc lập trình để tách cơng việc nhỏ xếp để xử lý song song nhằm giảm thời gian thực cơng việc xuống gọi lập trình song song Để tận dụng sức mạnh vi xử lý đa nhân mạnh mẽ nay, địi hỏi lập trình viên phải tận dụng hết nhân vi xử lý Thay lập trình trước sử dụng nhân vi xử lý người lập trình viên ngày phải dùng kỹ thuật lập trình song song để tận dụng hiệu suất vi xử lý đa nhân Bộ vi xử lý có nhiều nhân tăng tốc chương trình song song nhiên khơng có nghĩa tăng lên 100% nhân thêm vào Thậm chí chương trình song song khơng tăng hiệu suất lên số trường hợp Vì lập trình viên phải biết định sử dụng lập trình song song cách sử dụng công cụ đo lường để xác định tốc độ thực thi chương trình Lập trình song song cơng việc phức tạp so với lập trình thơng thường, người phát triển phải thực trình “song song hóa”, biến đổi chương trình thành chương trình song song có khả tận dụng tối đa sức mạnh hệ thống Mô thức lập trình tương tranh (Concurrant programming paradigm) - Lập trình tương tranh kỹ thuật quan trọng thách thức Một mặt, đem lại khả sử dụng hiệu cho hệ thống song song phân tán Mặt khác, rủi ro việc tương tác tiến trình thực đồng thời gây lỗi phần mềm khơng dễ dàng tìm - Trong lập trình tương tranh, số dịng lệnh thực đồng thời Mỗi dịng lệnh chương trình tuần tự, ngoại trừ thực tế dòng lệnh giao tiếp gây trở ngại lẫn Mỗi dòng lệnh luồng (thread), chương trình cịn gọi chương trình đơn luồng, cịn chương trình viết theo phương pháp tương tranh chương trình đa luồng - Các đặc điểm lập trình tương tranh như: • Người dùng tương tác với ứng dụng tiến trình thực thi • Những tiến trình chạy thời gian dài làm trì hỗn tiến trình ngắn • Các chương trình phức tạp thực tốt xử lý đa luồng • Những tiến trình địi hỏi điều kiện tiên tạm dừng đợi đến đáp ứng để tiếp tục xử lý Mơ thức lập trình phân tán (Distributed programming paradigm) Lập trình phân tán dạng lập trình song song (tính tốn song song) Lập trình song song tạo mối liên hệ máy tính đơn vị tính tốn, khiến chúng hoạt động đồng thời vấn đề cụ thể (dự báo thời tiết chẳng hạn) Các đơn vị tính tốn đặt gần tách rời Khi đơn vị tính tốn đặt tách rời, ta gọi lập trình phân tán Với mơ hình lập trình này, đơn vị tính tốn thường khác nhau, khác hệ điều hành thiết lập mạng máy tính Những yếu tố khiến cho việc lập trình tính tốn máy tính trở nên tương đối phức tạp khó khăn Lập trình mạng phân tán, thường có khái niệm chính: Peer to Peer (P2P) Client-Server P2P lập trình ngang hàng máy tính, cịn lập trình Client-Server lập trình cho phép n máy Client kết nối tới m máy Server - mơ hình mà gặp nhiều thực tế Mơ thức lập trình hướng dịch vụ (Service-oriented programming paradigm) - Lập trình hướng dịch vụ (SOP) xây dựng dựa OOP, thêm vào tiền đề giúp cho mơ hình hóa tốn khái niệm “dịch vụ”, mà cung cấp sử dụng đối tượng Mục đích để thiết kế triển khai ứng dụng kinh doanh tích hợp chương trình phần mềm quan trọng Các dịch vụ đại diện cho bước quy trình kinh doanh ứng dụng mơ hình phân phối hiệu chi phí ứng dụng kinh doanh độc lập tổng hợp “tích hợp từ ngồi” - Có ba lợi ích đáng kể cách tiếp cận mơ hình này: • Về mặt ngữ nghĩa, nâng cao mức độ trừu tượng để tạo ứng dụng kinh doanh tổng hợp tăng đáng kể khả đáp ứng với thay đổi (tức nhanh nhạy kinh doanh) • Đưa đến thống kỹ thuật tích hợp phát triển thành phần phần mềm theo khái niệm làm giảm đáng kể phức tạp tích hợp Cách tiếp cận thống cho phép “tích hợp từ ngồi” mà khơng cần chép liệu, đó, giảm đáng kể chi phí độ phức tạp giải pháp tổng thể • Tự động hóa đa luồng ảo hóa ứng dụng cấp độ chi tiết (đơn vị công việc) II Mơ thức lập trình hướng đối tượng (Objectoriented programming paradigm) Lập trình hướng đối tượng gì? Lập trình hướng đối tượng (Object-oriented programming, viết tắt OOP) phương pháp bước đường tiến hóa việc lập trình máy tính, nhằm làm cho chương trình trở nên linh hoạt, tin cậy dễ phát triển Tuy nhiên để hiểu OOP gì, lịch sử trình lập trình – xem xét OOP tiến hóa 1.1 Lập trình cấu trúc Vào cuối năm khoảng 1960 1970, ngơn ngữ lập trình có cấu trúc đời Các chương trình có cấu trúc tổ chức theo công việc mà chúng thực Về chất, chương trình chia nhỏ thành chương trình riêng rẽ (cịn gọi hàm hay thủ tục) thực công việc rời rạc trình lớn hơn, phức tạp Các hàm giữ độc lập với nhiều tốt, hàm có liệu logic riêng Thơng tin chuyển giao hàm thông qua tham số, hàm có biến cục mà khơng nằm bên ngồi phạm vi hàm lại truy xuất chúng Như vậy, hàm xem chương trình đặt chung với để xây dựng nên ứng dụng Mục tiêu cho việc triển khai phần mềm dễ dàng lập trình viên mà cải thiện tính tin cậy dễ bảo quản chương trình Một chương trình có cấu trúc hình thành cách bẻ gãy chức chương trình thành mảnh nhỏ mà sau trở thành hàm Bằng cách cô lập công việc vào hàm, chương trình có cấu trúc làm giảm khả hàm ảnh hưởng đến hàm khác Việc làm cho việc tách vấn đề trở nên dễ dàng Sự gói gọn cho phép viết chương trình sáng sủa giữ điều khiển hàm Các biến tồn cục khơng cịn thay tham số biến cục có phạm vi nhỏ dễ kiểm sốt Cách tổ chức tốt nói lên có khả quản lý logic cấu trúc chương trình, làm cho việc triển khai bảo dưỡng chương trình nhanh hữu hiệu Một khái niệm lớn đưa lập trình có cấu trúc trừu tượng hóa (Abstraction) Sự trừu tượng hóa xem khả quan sát việc mà không cần xem xét đến chi tiết bên Trong chương trình có cấu trúc, cần biết hàm cho làm cơng việc cụ thể đủ Cịn làm mà cơng việc lại thực không quan trọng, chừng hàm cịn tin cậy cịn dùng mà khơng cần phải biết thực đắn chức Điều gọi trừu tượng hóa theo chức (Functional abstraction) tảng lập trình có cấu trúc Ngày nay, kỹ thuật thiết kế lập trình có cấu trúc sử rộng rãi Gần ngơn ngữ lập trình có phương tiện cần thiết phép lập trình có cấu trúc Chương trình có cấu trúc dễ viết, dễ bảo dưỡng chương trình khơng cấu trúc Sự nâng cấp cho kiểu liệu ứng dụng mà lập trình viên viết tiếp tục diễn Khi độ phức tạp chương trình tăng lên, phụ thuộc vào kiểu liệu mà xử lý tăng theo Vấn đề trở rõ ràng cấu trúc liệu chương trình quan trọng chẳng phép tốn thực chúng Điều trở rõ ràng kích thước chương trình tăng Các kiểu liệu xử lý nhiều hàm khác bên chương trình có cấu trúc Khi có thay đổi liệu cần phải thực thay đổi nơi có thao tác tác động chúng Đây cơng việc tốn thời gian hiệu chương trình có hàng ngàn dịng lệnh hàng trăm hàm trở lên Một yếu điểm việc lập trình có cấu trúc có nhiều lập trình viên làm việc theo nhóm ứng dụng Trong chương trình có cấu trúc, lập trình viên phân cơng viết tập hợp hàm kiểu liệu Vì có nhiều lập trình viên khác quản lý hàm riêng, có liên quan đến kiểu liệu dùng chung nên thay đổi mà lập trình viên tạo phần tử liệu làm ảnh hưởng đến cơng việc tất người cịn lại nhóm Mặc dù bối cảnh làm việc theo nhóm, việc viết chương trình có cấu trúc dễ dàng sai sót việc trao đổi thơng tin thành viên nhóm dẫn tới hậu nhiều thời gian để sửa chữa chương trình 10 1.2 Sự trừu tượng hóa liệu Sự trừu tượng hóa liệu (Data abstraction) tác động liệu tương tự trừu tượng hóa theo chức Khi có trừu tượng hóa liệu, cấu trúc liệu phần tử sử dụng mà không cần bận tâm đến chi tiết cụ thể Chẳng hạn số dấu chấm động trừu tượng hóa tất ngơn ngữ lập trình, khơng cần quan tâm cách biểu diễn nhị phân xác cho số dấu chấm động gán giá trị, khơng cần biết tính bất thường phép nhân nhị phân nhân giá trị dấu chấm động Điều quan trọng số dấu chấm động hoạt động đắn hiểu Sự trừu tượng hóa liệu giúp bận tâm chi tiết không cần thiết Nếu lập trình viên phải hiểu biết tất khía cạnh vấn đề, lúc tất hàm chương trình hàm viết ra, may mắn thay trừu tượng hóa theo liệu tồn sẵn ngơn ngữ lập trình liệu phức tạp số dấu chấm động Tuy nhiên gần đây, người ta phát triển ngôn ngữ cho phép định nghĩa kiểu liệu trừu tượng riêng 1.3 Lập trình hướng đối tượng Khái niệm hướng đối tượng xây dựng tảng khái niệm lập trình có cấu trúc trừu tượng hóa liệu Sự thay đổi chỗ, chương trình hướng đối tượng thiết kế xoay quanh liệu mà làm việc đó, theo thân chức chương trình Điều hồn tồn tự nhiên hiểu mục tiêu chương 11 trình xử lý liệu Suy cho cùng, cơng việc mà máy tính thực thường gọi xử lý liệu Dữ liệu thao tác liên kết với mức (cịn gọi mức thấp), thứ địi hỏi thứ có mục tiêu cụ thể, chương trình hướng đối tượng làm tường minh mối quan hệ Lập trình hướng đối tượng (Object Oriented Programming gọi tắt OOP), 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 Thực chất phương pháp mà cách nhìn việc lập trình Để phân biệt, với phương pháp lập trình theo kiểu cấu trúc mà quen thuộc trước đây, hay gọi phương pháp lập trình hướng thủ tục (Procedureoriented programming), người lập trình phân tích nhiệm vụ lớn thành nhiều cơng việc nhỏ hơn, sau chi tiết, cụ thể hoá để vấn đề đơn giản, để tìm cách giải vấn đề dạng thuật giải cụ thể rõ ràng qua dễ dàng minh hoạ ngôn ngữ giải thuật (hay cịn gọi thuật giải chương trình con) Cách thức phân tích thiết kế gọi nguyên lý lập trình từ xuống (top-down), để thể trình suy diễn từ chung cụ thể Các chương trình chức độc lập, ghép nối chúng lại với cho hệ thống chương trình để giải vấn đề đặt Chính vậy, cách thức phân tích hệ thống lấy chương trình làm tảng, chương trình đóng vai trị trung tâm việc lập trình, hiểu phương pháp lập trình hướg thủ tục Tuy nhiên, phân tích để thiết kế hệ thống không thiết phải luôn suy nghĩ theo hướng “làm để giải công việc”, định 12 hướng tư theo phong cách “với số đối tượng có, phải làm để giải công việc đặt ra” phong phú hơn, “làm với số đối tượng có đó”, từ giải công việc cụ thể Với phương pháp phân tích đối tượng đóng vai trị trùng tâm việc lập trình vậy, người ta gọi nguyên lý lập trình từ lên (bottom-up) Lập trình hướng đối tượng liên kết cấu trúc liệu với thao tác, theo cách mà tất thường nghĩ giới quanh Chúng ta thường gắn số hoạt động cụ thể với loại hoạt động đặt giả thiết quan hệ Ví dụ 1: Để dễ hình dùng hơn, thử nhìn qua cơng trình xây dựng đại, sân vận động có mái che hình vịng cung, kiến trúc thẩm mĩ với đường nét hình cong Tất sản phẩm xuất với vật liệu xây dựng Ngày nay, không chồng lên viên gạch, tảng đá để tạo nên quần thể kiến trúc (như Tháp Chàm Nha Trang, Kim Tự Tháp, ) mà với bê tơng, sắt thép khơng nhiều viên gạch, người xây dựng thiết kế cơng trình kiến trúc tuyệt mỹ, tồ nhà đại Chính chất liệu xây dựng làm ảnh hưởng phương pháp xây dựng, chất liệu xây dựng nguyên lý kết dính chất liệu lại với cho đối tượng để khảo sát Chất liệu xây dựng nguyên lý kết dính chất liệu lại với hiểu theo nghĩa liệu chương trình tác động liệu Ví dụ 2: Chúng ta biết xe có bánh xe, di chuyển đổi hướng cách quẹo tay lái Tương tự thế, một loại thực vật có thân gỗ Một xe cây, mà xe, 13 giả thiết mà làm với xe làm với Chẳng hạn, thật vô nghĩa muốn lái cây, cịn xe lại chẳng lớn thêm tưới nước cho Lập trình hướng đối tượng cho phép sử dụng trình suy nghĩ với khái niệm trừu tượng sử dụng chương trình máy tính Một mẫu tin (record) nhân đọc ra, thay đổi lưu trữ lại; cịn số phức dùng tính tốn Tuy lại viết số phức vào tập tin làm mẫu tin nhân ngược lại hai mẫu tin nhân lại cộng với Một chương trình hướng đối tượng xác định đặc điểm hành vi cụ thể kiểu liệu, điều cho phép biết cách xác có kiểu liệu khác Chúng ta cịn tạo quan hệ kiểu liệu tương tự khác chương trình hướng đối tượng Người ta thường tự nhiên phân loại thứ, thường đặt mối liên hệ khái niệm với khái niệm có, thường thực suy diễn chúng quan hệ Hãy quan niệm giới theo kiểu cấu trúc cây, với mức xây dựng chi tiết cho hệ sau so với hệ trước Đây phương pháp hiệu để tổ chức giới quanh Các chương trình hướng đối tượng làm việc theo phương thức tương tự, chúng cho phép xây dựng các cấu liệu thao tác dựa cấu có sẵn, mang theo tính cấu mà chúng dựa đó, thêm vào tính 14 Lập trình hướng đối tượng cho phép tổ chức liệu chương trình theo cách tương tự nhà sinh học tổ chức loại thực vật khác Theo cách nói lập trình đối tượng, xe hơi, cối, số phức, sách gọi lớp (Class) Một lớp mẫu mô tả thông tin cấu trúc liệu, lẫn 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 (Object) 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ột thực thể (Instance) vật thể có thực bên nhớ, thực chất đối tượng (nghĩa đối tượng cấp phát vùng nhớ) Mỗi đối tượng có riêng cho phần tử liệu lớp gọi biến thực thể (Instance variable) Các phương thức định nghĩa lớp gọi đối tượng lớp Điều gọi gửi thông điệp (Message) cho đối tượng Các thông điệp phụ thuộc vào đối tượng, đối tượng nhận thông điệp phải làm việc theo thơng điệp Các đối tượng độc lập với thay đổi biến thể đối tượng không ảnh hưởng biến thể đối tượng khác việc gửi thông điệp cho đối tượng khơng ảnh hưởng đến đối tượng khác Như vậy, đối tượng hiểu theo nghĩa thực thể mà liệu thủ tục tác động lên liệu đóng 15 gói lại với Hay “đối tượng đặc trưng số thao tác (operation) thông tin (information) ghi nhớ tác động thao tác này.” Ví dụ 3: Khi nghiên ngăn xếp (stack), liệu vùng chứa ngăn xếp, đỉnh ngăn xếp, phải cài đặt kèm theo thao tác khởi tạo (creat) ngăn xếp, kiểm tra ngăn xếp rỗng (empty), đẩy (push) phần tử vào ngăn xếp, lấy (pop) phần tử khỏi ngăn xếp Trên quan điểm lấy đối tượng làm tảng, rõ ràng liệu thao tác liệu ln gắn bó với nhau, kết dính chúng đối tượng cần khảo sát Các thao tác đối tượng gọi phương thức hay hành vi đối tượng Phương thức liệu đối tượng ln tác động lẫn có vai trị ngang đối tượng, Phương thức đối tượng qui định liệu ngược lại, liệu đối tượng đặc trưng phương thức đối tượng Chính nhờ gắn bó đó, gửi thơng điệp đến đối tượng khác Điều giúp người lập trình khơng phải xử lý chương trình dãy cấu trúc điều khiển tuỳ theo thông điệp nhận vào, mà chương trình xử lý vào thời điểm thực Tóm lại, so sánh lập trình cấu trúc với chương trình làm tảng: Chương trình = Cấu trúc liệu + Thuật giải Trong lập trình hướng đối tượng có: Đối tượng = Phương thức + Dữ liệu Đây quan điểm lập trình tồn phát triển giới ngày 16 Một số khái niệm Lập trình hướng đối tượng Trong phần này, tìm hiểu khái niệm đóng gói, tính kế thừa tính đa hình Đây khái niệm bản, tảng tư tưởng lập trình hướng đối tượng Hiểu khái niệm này, bước đầu tiếp cận với phong cách lập trình mới, phong cách lập trình dựa vào đối tượng làm tảng mà quan điểm che dấu thơng tin thơng qua sư đóng gói quan điểm trung tâm vấn đề 2.1 Sự đóng gói (Encapsulation) Sự đóng gói chế ràng buộc liệu thao tác liệu thành thể thống nhất, tránh tác động bất ngờ từ bên Thể thống gọi đối tượng Trong Object-Oriented Software Engineering Ivar Jacobson, tất thông tin hệ thống định hướng đối tượng lưu trữ bên đối tượng hành động đối tượng lệnh thực thao tác Như vậy, đóng gói khơng đơn gom chung liệu chương trình vào khối, chúng hiểu theo nghĩa đồng liệu thao tác tác động lên liệu Trong đối tượng, liệu thao tác hai riêng (private) chung (public) đối tượng Thao tác hay liệu riêng thuộc đối tượng truy cập thành phần đối tượng, điều nghĩa thao tác hay liệu riêng truy cập phần khác chương trình tồn ngồi đối tượng Khi thao tác hay liệu chung, phần khác chương trình truy cập 17 định nghĩa đối tượng Các thành phần chung đối tượng dùng để cung cấp giao diện có điều khiển cho thành thành riêng đối tượng Cơ chế đóng gói phương thức tốt để thực chế che dấu thông tin so với ngơn ngữ lập trình cấu trúc 2.2 Tính kế thừa (Inheritance) Chúng ta xây dựng lớp từ lớp cũ thông qua kế thừa Một lớp gọi lớp dẫn xuất (Derived class), thừa hưởng liệu phương thức lớp sở (Base class) ban đầu Trong lớp này, bổ sung thành phần liệu phương thức vào thành phần liệu phương thức mà thừa hưởng từ lớp sở Mỗi lớp (kể lớp dẫn xuất) có số lượng lớp dẫn xuất Qua cấu kế thừa này, dạng hình lớp hình thành Dạng lớp trông giống gia phả lớp sở cịn gọi lớp cha (Parent class) lớp dẫn xuất gọi lớp (Child class) Ví dụ: Chúng ta xây dựng tập lớp mô tả cho thư viện ấn phẩm Có hai kiểu ấn phẩm: tạp chí sách Chúng ta tạo ấn phẩm tổng quát cách định nghĩa thành phần liệu tương ứng với số trang, mã số tra cứu, ngày tháng xuất bản, quyền nhà xuất Các ấn phẩm lấy ra, cất đọc Đó phương thức thực ấn phẩm Tiếp định nghĩa hai lớp dẫn xuất tên tạp chí sách Tạp chí có tên, số ký phát hành chứa nhiều tác giả khác Các thành phần liệu tương ứng với yếu tố đặt vào định nghĩa lớp tạp chí Tạp chí cần có phương thức đặt mua Các thành phần liệu xác định cho sách bao gồm tên tác giả, loại bìa 18 (cứng hay mềm) số hiệu ISBN Như thấy, sách tạp chí có chung đặc trưng ấn phẩm, có thuộc tính riêng chúng Hình 1: Lớp “Ấn phẩm” lớp dẫn xuất Với tính kế thừa, khơng phải công xây dựng lại từ đầu lớp mới, cần bổ sung để có lớp dẫn xuất đặc trưng cần thiết 2.3 Tính đa hình (Polymorphism) Đó khả thơng điệp thay đổi cách thực theo lớp cụ thể đối tượng nhận thơng điệp Khi lớp dẫn xuất tạo ra, thay đổi cách thực phương thức mà thừa hưởng từ lớp sở Một thơng điệp gửi đến đối tượng lớp sở, dùng phương thức định nghĩa cho lớp sở Nếu lớp dẫn xuất định nghĩa lại phương thức thừa hưởng từ lớp sở thơng điệp có tên với phương thức này, gửi tới đối tượng lớp dẫn xuất gọi phương thức định nghĩa cho lớp dẫn xuất 19 Như vậy, đa hình khả cho phép gửi thông điệp đến đối tượng khác có chung đặc điểm, nói cách khác thông điệp gửi không cần biết thực thể nhận thuộc lớp nào, biết tập hợp thực thể nhận có chung tính chất Chẳng hạn, thơng điệp “vẽ hình” gửi đến hai đối tượng hình hộp hình trịn Trong hai đối tượng có chung phương thức “vẽ hình”, nhiên tuỳ theo thời điểm mà đối tượng nhận thơng điệp, hình tương ứng vẽ lên Trong ngơn ngữ lập trình OOP, tính đa hình thể qua khả cho phép mô tả phương thức có tên giống lớp khác Đặc điểm giúp người lập trình khơng phải viết cấu trúc điều khiển rườm rà chương trình, khả khác thơng điệp thực địi hỏi chương trình thực 20 Ví dụ: Xét lại ví dụ phần Kế thừa, thấy tạp chí và sách phải có khả lấy Tuy nhiên phương pháp lấy cho tạp chí có khác so với phương pháp lấy cho sách, kết cuối giống Khi phải lấy tạp chí, phải sử dụng phương pháp lấy riêng cho tạp chí (dựa tra cứu) lấy sách lại phải sử dụng phương pháp lấy riêng cho sách (dựa hệ thống phiếu lưu trữ) Tính đa hình cho phép xác định phương thức để lấy tạp chí hay sách Khi lấy tạp chí dùng phương thức lấy dành riêng cho tạp chí, cịn lấy sách sử dụng phương thức lấy tương ứng với sách Kết cần tên phương thức dùng cho hai công việc tiến hành hai lớp dẫn xuất có liên quan, việc thực phương thức thay đổi tùy theo lớp Hình 2: Minh họa tính đa hình lớp “Ấn phẩm” lớp dẫn xuất Tính đa hình dựa ràng buộc (Binding), q trình gắn phương thức với hàm thực Khi phương thức kiểu đa hình sử dụng trình biên dịch chưa thể xác định 21 hàm tương ứng với phương thức gọi Hàm cụ thể gọi tuỳ thuộc vào việc phần tử nhận thông điệp lúc thuộc lớp nào, hàm gọi xác định vào lúc chương trình chạy Điều gọi ràng buộc muộn (Late binding) hay ràng buộc lúc chạy (Runtime binding) xảy chương trình thực Các ngơn ngữ vài ứng dụng OOP Xuất phát từ tư tưởng ngôn ngữ Simula67, trung tâm nghiên cứu Palo Alto (PARC) hãng Xerox tập trung 10 năm nghiên cứu để hồn thiện ngơn ngữ OOP với tên gọi Smalltalk Sau ngơn ngữ OOP đời Eiffel, Clos, Loops, Flavors, Object Pascal, Object C, C++, Delphi, Java… Chính Xerox sở ngôn ngữ OOP đề tư tưởng giao diện biểu tượng hình (icon base screen interface), kể từ Apple Macintosh Microsoft Windows phát triển giao diện đồ họa ngày Trong Microsoft Windows, tư tưởng OOP thể cách rõ nét "chúng ta click vào đối tượng", đối tượng control menu, control menu box, menu bar, scroll bar, button, minimize box, maximize box,… đáp ứng cơng việc tùy theo đặc tính đối tượng Turbo Vision hãng Borland ứng dụng OOP tuyệt vời, giúp lập trình viên khơng quan tâm đến chi tiết chương trình gia diện mà cần thực nội dung vấn đề III Lời kết Trên báo cáo mà em tìm hiểu, tổng hợp, dịch lược chỉnh sửa lại từ tài liệu công khai internet Do kiến thức hạn chế chưa có nhiều thời 22 gian để tìm hiểu chun sâu nên cịn nhiều thiếu sót nội dung cách trình bày Em mong nhận thông cảm giúp đỡ thầy! IV Tài liệu tham khảo - Kỹ thuật lập trình - Trần Đan Thư (2014) NXB Khoa học kỹ thuật - What Is a Programming Paradigm? - Troy Holmes - Lập trình hướng đối tượng với C++ - Lê Đăng Hưng, Tạ Tuấn Anh, Nguyễn Hữu Đức, Nguyễn Thanh Thủy - Object-Oriented Software Engineering - Ivar Jacobson - https://www.wikipedia.org/ … 23 ... quan mô thức lập trình phổ biến Mơ thức lập trình trực quan (Visual programming paradigm) 2 Mơ thức lập trình song song (Parallel programming paradigm) _2 Mô thức lập trình. .. paradigm) _3 Mơ thức lập trình phân tán (Distributed programming paradigm) _4 Mô thức lập trình hướng dịch vụ (Service-oriented programming paradigm) II Mơ thức lập trình hướng đối tượng... đến đáp ứng để tiếp tục xử lý Mô thức lập trình phân tán (Distributed programming paradigm) Lập trình phân tán dạng lập trình song song (tính tốn song song) Lập trình song song tạo mối liên hệ

Ngày đăng: 17/10/2021, 21:37

Hình ảnh liên quan

Hình 1: Lớp “Ấn phẩm” và các lớp dẫn xuất của nó. - Báo cáo tìm hiểu về các mô thức lập trình cơ bản

Hình 1.

Lớp “Ấn phẩm” và các lớp dẫn xuất của nó Xem tại trang 19 của tài liệu.
trên hệ thống phiếu lưu trữ). Tính đa hình cho phép chúng ta xác định một phương thức để lấy ra một tạp chí hay một cuốn sách - Báo cáo tìm hiểu về các mô thức lập trình cơ bản

tr.

ên hệ thống phiếu lưu trữ). Tính đa hình cho phép chúng ta xác định một phương thức để lấy ra một tạp chí hay một cuốn sách Xem tại trang 21 của tài liệu.

Từ khóa liên quan

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

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

Tài liệu liên quan