Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
4,89 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG KHOA CƠNG NGHỆ THƠNG TIN PHƯƠNG PHÁP LUẬN LẬP TRÌNH ĐỀ TÀI: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG C++ Giáo viên hướng dẫn : ThS Nguyễn Thị Loan Oanh Sinh viên thực : Hoàng Tùng Dương Nguyễn Hải Đăng Hà Trung Tuyến Hoàng Huyền Diệp Nguyễn Đức Tuấn Lớp : KTPM - K19B Thái Nguyên , ngày…tháng…năm 2022 BẢNG PHÂN CÔNG CÔNG VIỆC STT Họ tên Nguyễn Đức Tuấn Cơng việc thực + Tìm hiểu Chương 2(Tính đóng gói,đa tượng,kế dình,trừu thừa),làm powerpoint,thuyết trình + Tìm hiểu Chương 2(Ưu nhược điểm.Xu hướng,1 số Hà Trung Tuyến Hồng Tùng Dương Hồng Huyền Diệp ngơn ngữ lập OOP,private public),làm báo cáo + Xây dựng Demo,làm báo cáo + Tìm hiểu Chương 2(Lịch sử hình thành,khái OOP,Class Object),làm báo cáo + Tìm hiểu Chương 1(Khái niệm,vai trò cấp độ Nguyễn Hải Đăng phương pháp luận)làm báo cáo MỤC LỤ BẢNG PHÂN CÔNG CÔNG VIỆC MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ PHƯƠNG PHÁP LUẬN LẬP TRÌNH 1.1 Đặt vấn đề 1.2 Phương pháp luận gì? 1.3 Vai trò phương pháp luận 1.4 Chức phương pháp luận 1.5 Các cấp độ phương pháp luận CHƯƠNG : LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 10 2.1 Lịch sử hình thành lập trình hướng đối tượng 10 2.2 Những khái niệm lập trình hướng đối tượng 11 2.3 Class Object .12 2.4 Tính kế thừa (inheritance) 13 2.5 Tính đóng gói (encapsulation) 15 2.6 Tính đa hình(polimorphism) 16 2.7 Tính trừu tượng .17 Ưu điểm sử dụng tính trừu tượng để lập trình .18 2.8 Tính ứng dụng 18 2.9 Thành phần private public lớp .19 2.10 Một số ngơn ngữ lập trình hướng đối tượng 20 2.11 Uư điểm phương pháp luận lập trình hướng đối tượng 21 2.12 Nhược điểm phương pháp luận lập trình hướng đối tượng .22 2.13 Xu hướng phát triển .23 CHƯƠNG 3: DEMO 24 3.1 Tổng quan phần mềm .24 3.1.1 Lý chọn đề tài 24 3.1.2 Mục tiêu đề tài 24 3.1.3 Hiênotr愃⌀ng 24 3.2 Các tính chất lập trình hướng đối tượng 25 3.2.1 Tính kế thừa 25 3.2.2 Tính đóng gói 25 3.2.3 Tính đa hình 26 3.2.4 Tính trừu tượng 26 CHƯƠNG : TỔNG K쨃ĀT, K쨃ĀT LUÂoN 27 4.1 Tổng kết 27 4.2 Tài liêu o 28 LỜI MỞ ĐẦU Các phương pháp hướng đối tượng, đặc biệt lập trình hướng đối tượng xây dựng dựa nhiều khái niệm dưoc hỗ trợ nhiều cơng cụ, ngơn ngữ lập trình, mạnh giúp cho việc tạo phần mềm ứng dụng có chất lượng cao ngày đáp ứng tốt u cầu người sử dụng.Ngơn ngữ lập trình C++ ngơn ngữ lập trình hướng đối tượng(OOP - Object-oriented programming) phát triển Bjarne Stroustrup C++ ngơn ngữ lập trình phát triển nên tảng ngơn ngữ lập trình C Do đó, C++ có song song phong cách(style) lập trình hướng cấu trúc giống C có thêm phong cách hướng đối tượng Trong nhiều trường hợp, C+ + sử dụng kết hợp style Do đó, xem ngôn ngữ lai tạo Ngôn ngữ C++ ngơn ngữ lập trình cấp trung Bởi có tính chất ngơn ngữ lập trình bậc thấp (Pascal, C…) ngơn ngữ lập trình bậc cao (C#, Java, Python…) Ngơn ngữ lập trình C++ (C plus plus) có mở rộng cpp Vai trị đặc biệt quan trọng đơi ngơn ngữ lập trình C C++ phục vụ cho học lập trình Bởi ngơn ngữ lập trình bậc trung Hầu hết trường đào tạo công nghệ thông tin Việt Nam dùng ngôn ngữ làm môn sở ngành Mơn lập trình C giúp bạn có tảng với kỹ thuật lập trình, kiến thức tư lập trình Một lập trình C++ cung cấp kiến thức lập trình hướng đối tượng Cả ngôn ngữ sử dụng để học môn học cấu trúc liệu giải thuật Nếu bạn có kiến thức tốt ngơn ngữ này, thêm với kiến thức cấu trúc liệu giải thuật Việc học kiến thức lập trình bạn trở nên đơn giản nhiều Kiến thức cơng nghệ mới, ngơn ngữ lập trình mới,… CHƯƠNG 1: TỔNG QUAN VỀ PHƯƠNG PHÁP LUẬN LẬP TRÌNH 1.1 Đặt vấn đề Mặc dù nhà khoa học cố gắng nhiều để giới thiệu tảng khoa học lập trình Nhưng lập trình ln dạy cách thủ cơng (craft): + Nó thường dạy theo ngữ cảnh (hoặc vài) ngơn ngữ lập trình + Có mập mờ công cụ, khái niệm cách khác quan điểm lập trình/phương pháp lập trình => Dạy lập trình theo cách này, giống dạy xây dựng cầu (bridge) Một số người dạy cách xây dựng cầu gỗ, số người lại dạy cách xây dựng cầu sắt mà không nghĩ đến việc kết hợp gỗ sắt Do đó, dẫn đến chương trình phải chịu thiết kế nghèo nàn (bị ràng buộc hạn chế kỹ thuật công cụ, ngôn ngữ, ) Khoa học giúp ta hiểu sâu sắc vấn đề hiểu biết tạo cho ta khả dự đốn khái qt hóa Ví dụ: Trong khoa học thiết kế, cho phép người thiết kế thiết kế cầu (có thể tạo chất liệu sắt, gỗ, kết hợp hai.) thiết kế chúng theo khái niệm sau: + Sức lực (force) + Năng lượng (energy) + Sức ép (Stress) + Sự căng (Strain) + luật (Laws) mà chúng tuân theo Tương tự, khoa học lập trình, ta cần thiết kế chương trình dựa khái niệm chung lập trình Có thể xem lập trình hoạt động nằm hoạt động đặc tả hệ thống chạy chương trình cài đặt đặc tả Như vậy, lập trình gồm bước: + Thiết kế kiến trúc chương trình trừu tượng + Mã hóa thiết kế, sử dụng ngơn ngữ lập trình cụ thể Trong đó: Thiết kế kiến trúc chương trình trừu tượng Là hoạt động độc lập với ngôn ngữ lập trình, cơng việc khó quan trọng lập trình nhằm đưa kiến trúc chương trình thiết kế trừu tượng Các thiết kế trừu tượng định nghĩa thiết bị/công cụ để giải vần đề thực tế Đây chìa khóa trừu tượng Các trừu tượng phân loại theo thứ bậc, phụ thuộc vào cách chúng đặc tả Càng mức cao, trừu tượng có mức khái quát cao Sự trừu tượng phần sống hàng ngày mà ta thường lãng quên Ví dụ: Một số trừu tượng như: + Những sách + Các tua vít, + Cây bút chì - Cơng cụ viết Trong đó: “Bút chì” đặc tả chi tiết so với “công cụ để viết”, trừu tượng Để thiết kế chương trình mang tính độc lập, ta cần thiết kế chương trình dựa khái niệm lập trình nói chung để xây dựng trừu tượng Có thể kết hợp nhiều phương pháp luận lập trình chương trình Ta thấy dường sai lầm làm điều này, thực chất điều khơng tình huống, tự nhiên chương trình tốt sử dụng nhiều phương pháp luận lập trình Mã hóa đặc tả, sử dụng ngơn ngữ lập trình cụ thể Sử dụng kỹ thuật mã hóa cụ thể (ngơn ngữ, cơng cụ, chuẩn, ) để chuyển đặc tả thiết kế chương trình thành chương trình cụ thể Điều giống việc, từ thiết kế cầu, xây dựng cầu gỗ, sắt, kết hợp gỗ sắt, chất liệu tùy ý Tóm lại Hoạt động lập trình định nghĩa gồm hai phần bản: + Kỹ thuật: Gồm công cụ, kỹ thuật thực hành, chuẩn cho phép ta lập trình + Nền tảng khoa học nó: Gồm lý thuyết cho phép ta hiểu hoạt động lập trình Khoa học giải thích kỹ thuật cách trực tiếp, giúp ích cho ta hiểu sâu sắc vấn để để từ vận dụng, phân tích, tổng hợp đưa cải tiến đề xuất kỹ thuật Khoa học kỹ thuật phải kết hợp với tách rời để giải trọn vẹn vấn đề Khơng có kỹ thuật, ta làm việc đơn với chế Khơng có khoa học, ta phải làm việc cách thủ công, thiếu hiểu biết sâu sắc 1.2 Phương pháp luận gì? Phương pháp luận cách tiếp cận để giải vấn đề Phương pháp luận lập trình cách tiếp cận để viết chương trình (theo quan điểm lý thuyết) Theo quan điểm kỹ thuật, phương pháp luận lập trình cịn gọi kỹ thuật lập trình Nguồn gốc phương pháp luận: Trong khoa học người sử dụng nhiều phương pháp phương pháp thống kê, phương pháp mô tả, phương pháp điều tra bảng hỏi, phương pháp vấn… Quá trình lựa chọn phương pháp để sử dụng đến thành công, chọn sai chắn dẫn đến thất bại (ví dụ: cách mạng lựa chọn sai phương pháp đánh giặc) Đứng trước vấn đề này, xuất nhu cầu phải có nhận thức khoa học phương pháp thơng qua phương pháp luận đời Hiện nay, có nhiều cách hiểu gần giống phương pháp luận Có ba cách hiểu phổ biến nhất: - Luận phương pháp - Hệ thống phương pháp - Khoa học lý thuyết phương pháp Nếu xác định vị trí, phương pháp luận “là phận logic học, nhằm nghiên cứu cách hậu nghiệm phương o Vậy nạp chồng hàm nạp chồng toán tử gì? o N p chồồng hàm o Nạp chồng hàm (Function Overloading) cho phép sử dụng tên gọi cho hàm “giống nhau” (có mục đích) Nhưng khác kiểu liệu tham số số lượng tham số o Nạp chồng hàm cho phép ta khai báo định nghĩa hàm với tên gọi Runtime Polymorphism +, Đây trường hợp đối tượng bị ràng buộc với chức chúng thời gian chương trình chạy +, Đa hình thời gian chạy sử dụng phương thức ghi đè Cụ thể, lớp dùng lại phương thức tên với phương thức sẵn có lớp cha 2.7 Tính trừu tượng Tính trừu tượng cho phép tổng quát hóa đối tượng Nghĩa ẩn thông tin chi tiết bên trong, thể thơng tin bên ngồi Và nhìn vào thơng tin bên ngồi ta hiểu đối tượng làm Tính chất thể qua việc sử dụng interface abstract class Ví dụ: Bài tốn quản lý sinh viên cần quản lý thông tin Họ tên Ngày sinh Giới tính Điểm thi Mà lại không cần quản lý thêm thơng tin: Màu tóc Sở thích Chiều cao Tại chúng thực khơng cần thiết 21 Phân loại: Theo hướng chức 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 Quá trình tiến hành sau: • Tập hợp tất hành động có đối tượng • Nhóm đối tượng có hoạt động tương tự nhau, loại bỏ bớt hoạt động cá biệt, tạo thành nhóm chung • • Mỗi nhóm đối tượng đề xuất lớp tương ứng Các hành động chung nhóm đối tượng cấu thành phương thức lớp tương ứng Theo hướng liệu Trừu tượng hố đố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 Quá trình tiến hành sau: • Tập hợp tất thuộc tính có đối tượng • Nhóm đối tượng có thuộc tính tương tự nhau, loại bỏ bớt thuộc tính cá biệt, tạo thành nhóm chung • • Mỗi nhóm đối tượng đề xuất lớp tương ứng Các thuộc tính chung nhóm đối tượng cấu thành thuộc tính tương ứng lớp đề xuất • Giảm thiểu chi tiết không cần thiết Việc trừu tượng hóa liệu cần thiết, mô tả tất hành động thuộc tính 22 thực thể vấn đề mấu chốt tập trung đến hành vi cốt yếu áp dụng chúng ứng dụng Ưu điểm sử dụng tính trừu tượng để lập trình Tính trừu tượng cho phép lập trình viên loại bỏ tính chất phức tạp đối tượng cách đưa thuộc tính phương thức cần thiết đối tượng lập trình, cải thiện khả bảo trì hệ thống Tính trừu tượng giúp tập trung vào cốt lõi cần thiết đối tượng thay quan tâm đến cách thực Tính trừu tượng cung cấp nhiều tính mở rộng sử dụng kết hợp với tính đa hình kế thừa lập trình hướng đối tượng 2.8 Tính ứng dụng Tính ứng dụng: hầu hết phần mềm OOP tập trung vào đối tượng thao tác logic để thao tác chúng OOP tảng design pattern Mục tiêu OOP tối ưu việc quản lý source code, giúp tăng khả tái sử dụng quan trọng hết giúp tóm gọn thủ tục biết trước tính chất thơng qua việc sử dụng đối tượng Lập trình hướng đối tượng (hay OOP) mơ hình lập trình dựa khái niệm Class Object.Nó sử dụng để tách chương trình phần mềm thành phần đơn giản, tái sử dụng 2.9 Thành phần private public lớp Để bảo vệ liệu tránh bị truy nhập tự từ bên ngồi, lập trình hưởng đối tượng sử dụng từ khoá quy định phạm vi truy nhập thuộc tinh phương thức lớp Một cách tổng quát, lập trình hướng đối tượng chia hai mức truy nhập thành phần lớp: • Private: Truy nhập nội lớp • Protected: Thành phần bảo vệ, hạn chế truy nhập thành phần private • Public: Truy nhập tự từ bên Thành phần private: 23 Thành phần private khu vực dành riêng cho lớp, không chia sẻ với lớp khác từ bên ngồi Thành phần private chi cho phép truy nhập phạm vi nội lớp: Từ phương thức vào thuộc tính phương thức lớp với Các thành phần private khơng thể truy nhập từ bên ngồi lớp, từ đối tượng khác Trong lớp, thông thường thành phân sau đặt vào khu vực private lớp: + Tất thuộc tính liệu lớp Các thuộc tỉnh liệu lớp đặt vào vùng private nhằm bảo vệ chúng, tránh truy nhập tự từ bên + Các phương thức trung gian, sử dụng bước tỉnh toán đệm cho phương thức khác Các phương thức trung gian đặt vào vùng private để thực việc đóng gói lập trình hướng đối tượng: Các đối tượng, chương trình bên ngồi khơng cần, khơng thể biết cách tinh tốn cụ thể bên lớp Thành phần public Thành phần public khu vực mà Lớp chia sẻ với tất chương trình đối tượng bên ngồi Thành phần public truy nhập từ bên lẫn bên ngồi lớp: • Bên lớp: từ phương thức lớp vào thuộc tính liệu lớp, phương thức lớp với • Bên ngồi lớp: Từ chương trình bên ngồi bước đối tượng khác vào phương thức lớp Trong lớp, thông thưởng thành phần sau đặt vào vùng chia sẻ public lớp: • Các phương thức để nhập xem (setget) thuộc tính liệu lớp Các phương thức cho phép đối tượng bên truy nhập vào thuộc tính liệu lớp cách gián tiếp bên em• Các phương thức cung cấp chức hoạt động, cách cư xử đội trọng môi trường bên Các phương thực thể chức đối tượng lớp 2.10 Một số ngôn ngữ lập trình hướng đối tượng Java 24 Ngơn ngữ Java phát triển Sun Microsystems (sau mua lại tập đoàn Oracle Corporation) Ngày nay, Java có mặt khắp nơi ngơn ngữ lập trình hướng đối tượng phổ biến Với Java, developer có đủ thứ tay để xây dựng ứng dụng web giải pháp phần mềm Ngoài ra, sản phẩm xây dựng Java chạy tảng C++ Ngồi Java C++ phổ biến giới lập trình nói chung với pointer (con trỏ) Được xem phiên nâng cấp C, ngơn ngữ lập trình C++ mạnh mẽ đa Do đó, C++ có tốc độ ngơn ngữ C khả áp dụng mơ hình lập trình OOP Nó xem “bậc trung” kết hợp đặc điểm ngôn ngữ bậc cao bậc thấp Bên cạnh OOP, C++ cịn hỗ trợ mơ hình procedural (lập trình thủ tục) functional (lập trình chức năng) Python Ngơn ngữ lập trình Python ngôn ngữ thông dịch phổ biến, bậc cao đa Triết lý thiết kế Python trọng vào yếu tố dễ đọc hiểu code whitespace (khoảng trắng) Mặc dù không OOP Python hỗ trợ mơ hình OOP số phạm trù định Python liên kết khái niệm OOP tính linh hoạt, đơn giản để tạo sản phẩm phức tạp Đặc biệt, Python quan trọng lĩnh vực khoa học liệu, machine learning (học máy),… Và cịn nhiều ngơn ngữ lập trình khác 2.11 Uư điểm phương pháp luận lập trình hướng đối tượng Nâng cao hiệu phát triển phần mềm Ba yếu tố quan trọng lập trình hướng đối tượng là: 25 Tính mơ-đun: tách biệt nhiệm vụ trình phát triển phần mềm dựa đối tượng cụ thể Mỗi đối tượng có nhiệm vụ khác Tính mở rộng: đối tượng mở rộng dễ dàng, bao gồm mở rộng thuộc tính hành vi Tính tái sử dụng: đối tượng sử dụng lại ứng dụng nhiều ứng dụng khác Ba yếu tố lập trình hướng đối tượng giúp hiệu phát triển phần mềm cải thiện nhiều, so với kỹ thuật lập trình truyền thống dựa thủ tục Nâng cao khả bảo trì phần mềm Chính lý nêu trên, phần mềm lập trình theo hướng đối tượng dễ bảo trì Vì thiết kế mơ-đun, nên việc thay đổi phần chương trình khơng ảnh hưởng đến phần cịn lại Điều có lợi trường hợp dự án bạn có quy mơ lớn, địi hỏi nhiều thay đổi Phần mềm phát triển nhanh Tính tái sử dụng lập trình hướng đối tượng cho phép phát triển phần mềm nhanh Các phần mềm lập trình theo hướng đối tượng thường có thư viện đối tượng phong phú, đoạn mã tối ưu hóa tái sử dụng dự án khác tương lai Lập trình hướng đối tượng giúp phát triển phần mềm nhanh Giảm thiểu chi phí phát triển Việc tái sử dụng phần mềm làm giảm thiểu chi phí phát triển cho nhà sản xuất Thơng thường, phần lớn công sức tập trung vào việc phân tích đối tượng thiết kế phần mềm Do đó, tổng chi phí phát triển phần mềm giảm đáng kể Chất lượng phần mềm cao Thực tế, chất lượng phần mềm phụ thuộc vào nhiều yếu tố khác Chẳng hạn, kinh nghiệm trình độ nhóm phát triển ảnh hưởng đến sản phẩm đầu Tuy nhiên, phương pháp có xu hướng tạo phần mềm chất lượng cao 26 Việc phát triển phần mềm nhanh hơn, chi phí thấp giúp nhà sản xuất dành nhiều thời gian, tài nguyên vào việc kiểm thử Điều đồng nghĩa phần mềm cuối thường lỗi hơn, chất lượng tốt 2.12 Nhược điểm phương pháp luận lập trình hướng đối tượng Đường cong học tập sâu Lập trình hướng đối tượng phương pháp địi hỏi nhiều tư Do đó, khơng dễ dàng với số người, đặc biệt người vào nghề Các lập trình viên cần khoảng thời gian để học tập làm quen với Phương pháp phức tạp phần mềm phải dựa tương tác đối tượng Do đó, lập trình viên cần phải hiểu chất khái niệm như: lớp, đối tượng, phương thức, thuộc tính Đồng thời, ta cần nắm bốn tính chất lập trình hướng đối tượng Đó là: Tính trừu tượng (Abstraction), Tính đóng gói (Encapsulation), Tính kế thừa (Inheritance) Tính đa hình (Polymorphism) Lập trình viên cần có nhiều thời gian để làm chủ phương pháp Chương trình chậm có kích thước lớn Phần mềm lập trình theo hướng đối tượng thường chậm phần mềm dựa thủ tục Lý phần mềm thường yêu cầu nhiều câu lệnh để thực thi Lập trình viên phải viết nhiều dịng mã để đảm bảo thuộc tính phương pháp Do đó, kích thước chương trình lớn Phương pháp lập trình hướng đối tượng không phù hợp với loại vấn đề Mỗi phương pháp khác phù hợp với vấn đề khác Lập trình hướng đối tượng Thực tế, có vấn đề mặc định giải tốt lập trình viên sử dụng phương pháp lập trình chức (Functional Programming), lập trình logic, lập trình thủ tục Nếu ta áp dụng lập trình hướng đối tượng, khơng đem lại hiệu tốt 27 Nhìn chung, lập trình hướng đối tượng phương pháp hay khơng hồn hảo Hy vọng qua viết này, bạn cân nhắc ưu, nhược điểm phương pháp lập trình hướng đối tượng để vận dụng tốt công việc 28 2.13 Xu hướng phát triển Lập trình hướng thành phần (component-oriented programming) Tư lập trình hưởng thành phần xây dựng theo ý tưởng: + Giải toán cách xây dựng tập thành phần (component) có tính độc lập tương Mỗi thành phần đảm nhiệm phần cơng việc định + Sau đó, người ta ghép thành phần với để thu phần mềm thoả mãn tập yêu cầu xác định Trong xu hướng lập trình hướng thành phần, số phương pháp lập trình khác nảy sinh phát triển mạnh mẽ: • Lập trình hướng agent (agent-oriented programming) • Lập trình hưởng aspect (aspect-oriented programming) Lập trình hưởng Agent Lập trình hướng agent có hai đặc trưng bản: • Thứ khả tự chủ agent để hoàn thành nhiệm vụ riêng • Thứ hai tinh tổ chức xã hội agent, cho phép agent phối hợp, cộng tác, cạnh tranh để hoàn thành nhiệm vụ chung tồn hệ thống Lập trình hướng Aspect Lập trình hướng aspect xu hướng lập trình hướng thành phần Theo đó, thành phần có nhiệm vụ hồn thành theo luồng cơng việc khía cạnh vấn đề Sau đó, tổng hợp thành phần luồng khác nhau, ta thu giải pháp cho tốn Lập trình hướng aspect có đặc trưng bản: • Tinh đóng gói theo luồng cơng việc, đóng gói theo khía cạnhcủa vấn đề 29 • Tính đơn điệu theo luồng, luồng công việc, nhiệm vụ thực liên tiếp nhau, lập trình tuyến tính CHƯƠNG 3: DEMO 3.1 Tổng quan phần mềm 3.1.1 Lý chọn đề tài Công nghệ thơng tin ngày có vai trị quan trọng sống ngày Việc ứng dụng CNTT vào lĩnh vực đời sống giúp công việc tiến hành nhanh chóng hiệu Có nhiều cơng việc phát triển song song với phát triển CNTT, số phát triển phần mềm quản lí sinh viên, hướng nhằm mục đích quản lí sinh viên cách rễ dàng Chúng em chọn đề tài “Phát triển phần mềm quản lí sinh viên” nhằm tìm hiểu sâu ngơn ngữ C++ lập trình hướng đối tượng, từ viết ứng dụng cụ thể thử nghiệm làm sở củng cố kiến thức định hướng, kế hoạch xây dựng ứng dụng quản lí sinh viên, phát triển theo hướng dịch vụ tương lai 3.1.2 Mục tiêu đề tài Hiểu khái niệm phân tích giải tốn lập trình hướng đối tượng: Xác định đối tượng lớp, quan hệ lớp hệ thống thông tin | Mục tiêu đề tài mục đích nhằm nghiên cứu mơi trường phát triển, ngôn ngữ C++ xây dựng ứng dụng cụ thể 3.1.3 Hiê +n tr愃⌀ng Ra đời vào năm 1979, tạo nhà khoa học máy tính người Đan Mạch Bjarne Stroustrup, ngơn ngữ lập trình C++ dạo gần 30 phần ưa chuộng mà có Tuy nhiên, điều khơng phải C++ bị thay công nghệ mà chuyển đổi loại ứng dụng ưa chuộng Ngày nay, ứng dụng web ứng dụng di động thống trị mạng Internet Không may cho C++, ngôn ngữ phù hợp để áp dụng vào lĩnh vực Tuy lập trình web C++ thuận tiện tối ưu nhiều sử dụng PHP, Javascript hay chí ASP.NET cho ứng dụng lớn Tương tự ứng dụng di động – Java, Kotlin cho Android Objective-C, Swift cho iOS C++ gần khơng có đất diễn Ngay lập trình phần mềm máy tính ngơn ngữ C++ khơng thể đánh bại Java C# Viết chương trình C++ phức tạp nhiều so với hầu hết ngôn ngữ lập trình nay, debug thơi mệt đứng nói tới việc tận hưởng niềm vui lập trình 3.2 Các tính chất lập trình hướng đối tượng 3.2.1 Tính kế thừa Class “ Sinhvien” kế thừa từ “Nguoi” bao gồm thuộc tính “ name, age, display(), getName(), setName() từ class “Nguoi” 31 3.2.2 Tính đóng gói - Tính đóng gói: thuộc tính class khơng thể truy cập từ bên ngồi mà phải thơng qua phương thức public - Trong code để thể tính đa hình có cách: • Method Overloading (compile time polymorphism) • Method Overriding (run time polymorphism) - Method Overloading: cách nạp chồng method có tên khác tham số - Method Overriding: Đây phương pháp ghi đè lại method ảo lớp cha (được khai báo từ khóa virtual) - Tính đóng gói (Encapsulation) hay cịn gọi hiding information giúp gom nhóm lại thuộc tính (properties), phương thức (methods) nhiều thành phần khác thành đối tượng hay đơn vị - Tính đóng gói triển khai cách sử dụng access modifier•public: Có thể truy cập từ đâu • • private: Chỉ truy cập bên class protected: Chỉ truy cập bên class class kế thừa từ class • internal: Giống public hạn chế assembly 32 3.2.3 Tính đa hình € Đa hình (polymorphism) nghĩa có nhiều hình thái khác Tiêu biểu là, đa hình xuất có cấu trúc cấp bậc lớp chúng liên quan với tính kế thừa 3.2.4 Tính trừu tượng 33 CHƯƠNG : TỔNG K쨃ĀT, K쨃ĀT LUÂnN 4.1 Tổng kết Bài báo cáo nêu tổng quan ngôn ngữ lập trình hưởng đối tượng, tính chất đặc trưng số ngơn ngữ lập trình hướng đối tượng Bài báo cáo cịn thiểu sót, mong nhận góp ý thầy, cô Kết đạt được: - Tìm hiểu lập trình hướng đối tượng - Thu nhiều kinh nghiệm việc thiết kế lập trình hướng đối tượng Khiếm khuyết: - Khó khăn việc phân chia cơng việc nhóm Khó khăn để phân chia cơng việc cho người làm độc lập với Và hạn chế mặt thời gian nên chưa thực toàn chức mong muốn hiệu ứng âm thanh, xử lý đồ họa chưa hoàn hảo Thực hành: - Tìm hiểu tính chất Lập trình hướng đối tượng: - Tính kế thừa - Tính đóng gói - Tính đa hình - Tính trừa tượng - Tính ứng dụng - Rút kinh nghiệm làm việc nhóm - Biết tổ chức - phân công công việc đồng thành viên đảm bảo tiến độ - Có lực thuyết phục trình bày từ đưa phương pháp tốt để giải vấn đề - Tôn trọng giúp đỡ thành vien nhóm - Có trách nhiệm với cơng việc giao - Biết lắng nghe người khác 34 Hạn chế: - Chưa phân bố thời gian làm báo cáo hợp lí - Vẫn cịn thiếu sót việc lựa chọn nội dung 4.2 Tài liêun - Giáo tình phương pháp luận lập trình, Đại học Thái Nguyên, 2021 - Phương pháp lập trình hướng đối tượng ưu, nhược điểm,https://vn.got-it.ai - ASP.NET 35