Ngôn ngữ lập trình chương 5 lập trình hướng đối tượng

40 229 0
Ngôn ngữ lập trình chương 5 lập trình hướng đối tượng

Đ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

Chương Lập trình hướng đối tượng Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN Nội dung  Phương pháp tiếp cận lập trình hướng đối tượng (OOP)  Các đặc trưng OOP  Lịch sử đời OOP  Giới thiệu số ngôn ngữ OOP  Xu hướng phát triển OOP Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 5.1 Phương pháp tiếp cận OOP  Phương pháp tiếp cận lập trình truyền thống – Lập trình tuyến tính: Lập trình tuyến tính tư theo lối Chương trình thực lệnh từ đầu đến lúc kết thúc chương trìnhLập trình cấu trúc: Trong lập trình hướng cấu trúc, chương trìnhh chia nhỏ thành chương trình chương trình thực công việc xác định Chương trình gọi đến chương trình theo giải thuật cấu trúc xác định Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN Lập trình tuyến tính  Ưu điểm: đơn giản, dễ hiểu, có luồng công việc  Nhược điểm: không tái sử dụng đoạn mã lệnh, liệu liệu toàn cục, khó khăn việc viết chương trình dài, phức tạp Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 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  Vấn đề lập trình cấu trúc phân chia chương trình thành chương trình cho phù hợp với yêu cầu, theo chiến lược thiết kế chương trình top-down (làm mịn dần) Lập trình có cấu trúc dựa tảng trừu tượng hóa chức  Ưu điểm: chương trình có bố cục sáng sủa, dễ viết, dễ hiểu, dễ bảo dưỡng chương trình cấu trúc  Nhược điểm: – Giải thuật chương trình phù thuộc chặt chẽ vào cấu trúc liệu – Có thể ẩn chứa xung đột truy cập liệu toàn cục trao đổi liệu – Tư giải thuật phù hợp với toán nhỏ Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN Sự trừu tượng hóa mặt liệu  Sự trừu tượng hóa mặt liệu việc định nghĩa kiểu liệu trừu tượng nhằm che dấu thông tin cấu trúc liệu  Một kiểu liệu trừu tượng mô hình toán học với tập hợp phép toán Kiểu liệu trừu tượng người lập trình tự định nghĩa Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN Lập trình hướng đối tượngLập trình hướng đối tượng (OOP) xây dựng từ tảng khái niệm lập trình có cấu trúc trừu tượng hóa liệu  OOP lấy đối tượng làm tảng để xây dựng giải thuật chương trình  Xây dựng chương trình theo hướng tiếp cận OOP theo chiến lược bottom-up Cách tư duy: “với số đối tượng có phải làm để giải công việc đặt ra, hay làm từ tập đối tượng có” Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN Ưu điểm OOP  Không nguy liệu bị thay đổi tự chương trình Dữ liệu đóng gói vào đối tượng, muốn truy nhập phải thông qua phương thức cho phép đối tượng  Khi thay đổi cấu trúc liệu đối tượng, không cần thay đổi mã nguồn đối tượng khác, mà cần thay đổi số hàm thành phần đối tượng bị thay đổi  Có thể sử dụng lại mã nguồn, tiết kiệm tài nguyên (chẳng hạn tính chất kế thừa)  Phù hợp với dự án phần mềm lớn, phức tạp Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN Câu hỏi?  So sánh cách tiếp cận hướng cấu trúc hướng đối tượng theo mặt: – Phương pháp tiếp cận thiết kế mô hình hóa toán – Cách thức đóng gói liệu, che dấu thông tin – Ưu / nhược điểm – Lĩnh vực ứng dụng Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN Đối tượng OOP  Trong OOP, tất thực thể hệ thống coi đối tượng cụ thể Đối tượng thực thể hoạt động chương trình chạy VD: sinh viên, lớp, giáo viên, môn học, điểm,  Một đối tượng thực thể tồn hệ thống xác định ba yếu tố: – Định danh đối tượng: id – Trạng thái đối tượng: giá trị thuộc tính – Hoạt động đối tượng: thao tác đối tượng Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 10 Con trỏ this  Con trỏ this bên khai báo lớp đại diện cho đối tượng lớp thực nhớ Nó trỏ có giá trị địa đối tượng  Con trỏ this tham số ẩn mà phương thức lớp truy cập Nó trỏ tới đối tượng mà phương thức gọi  Có số trường hợp, việc sử dụng trỏ this bắt buộc để cài đặt chức phương thức lớp Câu hỏi: Những trường hợp bắt buộc phải sử dụng trỏ this? Lấy ví dụ Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 26 5.3 Lịch sử phát triển ngôn ngữ OOP  Xuất phát từ định hướng ngôn ngữ Simula67, trung tâm Palo Alto hãng XEROR nghiên cứu cho đời ngôn ngữ OOP Smalltalk  Sau ngôn ngữ OOP đời Eiffel, Clos, Loops, Flavors, Object Pascal, Object C, C++, Delphi, Java,…  Lập trình hướng đối tượng phát triển phương pháp lập trình chủ đạo từ thập niên 1980 việc ảnh hưởng đáng kể C++ với tính GUI Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 27 Lịch sử phát triển ngôn ngữ OOP (tiếp)  Các chức định hướng đối tượng thêm vào nhiều ngôn ngữ suốt thời gian qua như: ADA, BASIC , Lisp, Fortran, Pascal,…  Việc thêm chức không chủ định từ thiết kế ban đầu dẫn tới khó khăn việc tương thích bảo trì mã nguồn  Trong thời gian gần ngôn ngữ OOP ưa chuộng Java, Microsoft.NET  Gần đây, hai ngôn ngữ OOP xuất với chức định hướng đối tượng tương thích với phương pháp thủ tục Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 28 5.4 Một số ngôn ngữ OOP  C++  C#  Java  PHP Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 29 C++  C++, đời vào năm 1980, ngôn ngữ lập trình OOP mở rộng từ ngôn ngữ lập trình cấu trúc C Cho nên C++ ngôn ngữ lập trình nửa hướng cấu trúc, nửa hướng đối tượng  Những đặc trưng hướng đối tượng C++ – Cho phép định nghĩa lớp đối tượng – Cho phép đóng gói liệu vào lớp đối tượng Cho phép định nghĩa từ khóa phạm vi truy nhập vào thành phần lớp – Cho phép kế thừa lớp với kiểu kế thừa – Cho phép chồng phương thức lớp kế thừa Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 30 C++ (tiếp)  Những vi phạm hướng đối tượng C++ – Cho phép định nghĩa sử dụng biến liệu tự – Cho phép định nghĩa sử dụng hàm tự – Ngay liệu đóng gói vào lớp, liệu truy nhập trực tiếp liệu tự hàm bạn, lớp bạn (friend)  Tính hỗ trợ hướng đối tượng C++ thấp, không sáng, dễ gây nhầm lẫn Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 31 ASP.NET C#.NET  Các ngôn ngữ lập trình NET Microsoft đời vào cuối năm 1990 để cạnh tranh với ngôn ngữ lập trình Java  Một số đặc điểm ngôn ngữ NET – Là ngôn ngữ hoàn toàn hướng đối tượng – Cung cấp giao diện lập trình đồ họa thân thiện đẹp mắt – Cho phép lập trình viên tạo thư viện UserControl Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 32 Java  Java ngôn ngữ OOP Sun Microsystems giới thiệu vào tháng năm 1995 Java xây dựng dựa tảng C C++: Java sử dụng cú pháp C đặc trưng hướng đối tượng C++  Đặc điểm Java – Là ngôn ngữ hoàn toàn hướng đối tượng – Java ngôn ngữ vừa biên dịch vừa thông dịch – Java cho phép người sử dụng tự tạo đối tượng thư viện JavaBeans  Ứng dụng viết Java thường có tính ổn định, tin cậy cao, dễ bảo trì nâng cấp Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 33 PHP  PHP ngôn ngữ lập trình kịch chủ yếu dùng để phát triển ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát  PHP thích hợp cho việc viết ứng dụng web nhúng vào trang HTML  PHP có tốc độ nhanh, nhỏ gọn, cú pháp gần giống C Java, dễ học thời gian xây dựng ứng dụng tương đối ngắn so với ngôn ngữ khác nên PHP nhanh chóng trở thành ngôn ngữ lập trình web phổ biến giới Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 34 PHP (Tiếp)  Các phiên PHP – PHP/FI (Personal Home Page/Forms Interpreter , 1995) – PHP/FI 2.0 (1997) – PHP (1998): bắt đầu hỗ trợ cú pháp hướng đối tượng hỗ trợ nhiều tính mạnh mẽ (hỗ trợ nhiều CSDL giao diện lập trình ứng dụng - API) – PHP (2000): cải thiện tốc độ xử lý, hỗ trợ nhiều máy chủ web hơn, hỗ trợ phiên làm việc http, tạo đệm thông tin đầu ra,… – PHP (2004): cải tiến khả hỗ trợ OOP, xử lý XML, quán truy cập CSDL (MySQL) – PHP 6(hiện tại) Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 35 Câu hỏi? So sánh sức mạnh ngôn ngữ C++, NET, Java, PHP? Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 36 5.5 Xu hướng phát triển OOP  Lập trình hướng thành phần (component-oriented programming) Ý tưởng: – Xây dựng thư viện thành phần, thành phần thực công việc xác định – Khi cần phát triển phần mềm cụ thể cần chọn thành phần có sẵn ghép lại với – Người lập trình phát triển thêm thành phần chưa có thư viện Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 37 Xu hướng phát triển OOP (tiếp)  Lập trình hướng agent: xem mức trừu tượng cao lập trình hướng thành phần Đặc điểm: – Các agent có khả làm việc độc lập, tự chủ để hoàn thành công việc – Các agent có khả chủ động liên lạc với agent khác để phối hợp, cộng tác hay cạnh tranh nhằm hoàn thành nhiệm vụ Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 38 Xu hướng phát triển OOP (tiếp)  Lập trình hướng aspect: xu hướng lập trình hướng thành phần Đặc điểm: – Tính đóng gói theo luồng công việc, đóng gói theo khía cạnh vấn đề – 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 Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 39 Phương pháp phân tích thiết kế hệ thống hướng đối tượng  Cách tiếp cận phân tích thiết kế hệ thống hướng đối tượng  Cơ sở liệu hướng đối tượngLập trình hướng đối tượng Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN 40 ... tiếp cận lập trình truyền thống – Lập trình tuyến tính: Lập trình tuyến tính tư theo lối Chương trình thực lệnh từ đầu đến lúc kết thúc chương trình – Lập trình cấu trúc: Trong lập trình hướng cấu... liệu trừu tượng người lập trình tự định nghĩa Nguyễn Thị Hạnh – Bộ môn CNPM - Khoa CNTT - ĐH SPHN Lập trình hướng đối tượng  Lập trình hướng đối tượng (OOP) xây dựng từ tảng khái niệm lập trình. .. Cho nên C++ ngôn ngữ lập trình nửa hướng cấu trúc, nửa hướng đối tượng  Những đặc trưng hướng đối tượng C++ – Cho phép định nghĩa lớp đối tượng – Cho phép đóng gói liệu vào lớp đối tượng Cho phép

Ngày đăng: 27/10/2017, 11:31

Từ khóa liên quan

Mục lục

  • Chương 5

  • Nội dung

  • 5.1. Phương pháp tiếp cận OOP

  • Lập trình tuyến tính

  • Lập trình cấu trúc

  • Sự trừu tượng hóa về mặt dữ liệu

  • Lập trình hướng đối tượng

  • Ưu điểm của OOP

  • Câu hỏi?

  • Đối tượng trong OOP

  • Lớp đối tượng

  • Một lớp có thể có một trong các khả năng sau:

  • Dạng lưu trữ của một lớp đối tượng

  • 5.2. Các tính chất của OOP

  • Trừu tượng hóa

  • Tính đóng gói dữ liệu

  • Ưu điểm của tính đóng gói dữ liệu

  • Tính kế thừa

  • Dạng lưu trữ các lớp kế thừa

  • Tính đa hình

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

Tài liệu liên quan