LẬP TRÌNH HƯỚNG đối TƯỢNG TRONG c (NGÔN NGỮ lập TRÌNH 2 SLIDE)

64 46 0
LẬP TRÌNH HƯỚNG đối TƯỢNG TRONG c (NGÔN NGỮ lập TRÌNH 2 SLIDE)

Đ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

NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Chương 2: Lập trình hướng đối tượng Bộ mơn CNPM – Khoa CNTT NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Lập trình hướng đối tượng Lớp đối tượng Tổng quan lập trình hướng đối tượng (OOP) Phương thức Thuộc tính Nạp chồng tốn tử Kế thừa đa hình Lớp trừu tượng giao diện Bộ môn CNPM – Khoa CNTT NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Lớp đối tượng Khái niệm lớp Lớp: tập hợp đối tượng có thuộc tính hành vi Là thiết kế mẫu mô tả cấu trúc liệu gồm:  Các thành phần liệu  Các phương thức Lớp sử dụng kiểu liệu người dùng định nghĩa Lớp Customer Name: Tên khách hàng Nhập tên Address: Địa khách hàng Nhập địa Kiểu xe khách hàng mua Nhập kiểu xe khách hàng mua Tên người bán hàng Nhập tên người bán hàng Tạo hóa đơn Bộ môn CNPM – Khoa CNTT Lớp đối tượng Khái niệm đối tượng NGÔN NGÔN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Đối tượng (object) thực thể lớp Tất object lớp có đầy đủ thuộc tính hành vi định nghĩa lớp Stephen Boston Opel Astra Robin  Stephen đối tượng lớp Customer Bộ mơn CNPM – Khoa CNTT NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 OOP Tổng quan Lập trình hướng đối tượng (gọi tắt là OOP, từ chữ Anh ngữ objectoriented programming), hay cịn gọi là lập trình định hướng đối tượng, kĩ thuật lập trình hỗ trợ cơng nghệ đối tượng OOP xem giúp tăng suất, đơn giản hóa độ phức tạp bảo trì mở rộng phần mềm cách cho phép lập trình viên tập trung vào đối tượng phần mềm bậc cao OOP dễ tếp thu cho người học về lập trình hơn phương pháp trước OOP phương pháp bước đường tế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, tn cậy dễ phát triển Bộ mơn CNPM – Khoa CNTT NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 OOP Các tính chất Tính trừu tượng (Abstracton) Tính đóng gói (Encapsulaton) che giấu liệu (Informaton Hiding) Tính thừa kế (Inheritance) Tính đa hình (Polymorphism) Bộ mơn CNPM – Khoa CNTT NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 OOP Trừu tượng hóa Trừu tượng hóa (Abstraction) Khái niệm:  Là khả bỏ qua hay không để ý tới thành phần không quan trọng Các loại trừu tượng hoá:  Trừu tượng hoá liệu: không quan tâm chi tết không quan trọng bên  Trừu tượng hố chức năng: khơng quan tâm làm để thực cơng việc Tóm lại:  Chỉ quan tâm tới đặc điểm quan trọng  Bỏ qua chi tết không liên quan Bộ mơn CNPM – Khoa CNTT NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 OOP Tính đóng gói Tính đóng gói (Encapsulaton) che giấu thơng tin (Informaton Hiding) 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 tế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 Bộ môn CNPM – Khoa CNTT NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 OOP Tính kế thừa Tính kế thừa (Inheritance) 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 Bộ môn CNPM – Khoa CNTT NGÔN NGÔN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 OOP Tính kế thừa Tính kế thừa (Inheritance) 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 Bộ mơn CNPM – Khoa CNTT 10 NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Kế thừa, đa hình Tính đa hình - B khai báo lại phương thức Foo Bộ mơn CNPM – Khoa CNTT 50 NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Lớp trừu tượng Khái niệm Lớp trừu tượng đơn giản xem class cha cho tất Class có chất Mỗi lớp dẫn xuất (lớp con) kế thừa từ lớp trừu tượng Lớp trừu trượng không cho phép tạo đối tượng trực tiếp từ nó, tạo đối tượng qua hàm tạo lớp Các phương thức abstract lớp trừu tượng khơng có phần thân Bộ mơn CNPM – Khoa CNTT 51 Lớp trừu tượng Ví dụ public abstract class Employee NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22     {         //Khai báo Properties         public abstract string ID         {             get;             set;         }         //Khai báo Method         public abstract String Add();         public abstract String Update();              } } Bộ môn CNPM – Khoa CNTT 52 NGÔN NGÔN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Giao diện Khái niệm Interface xem mặt nạ cho tất Class cách thức hoạt động khác chất Interface định nghĩa events, indexers, methods properties Các lớp struct đa kế thừa từ interface Tất lớp (hoặc struct) kế thừa từ interface phải thực thi toàn thành viên interface Không tạo đối tượng trực tiếp từ interface Bộ môn CNPM – Khoa CNTT 53 NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Giao diện Ý nghĩa Sức mạnh to lớn interface giống kỹ thuật plug and play, thành phần thay đổi tương lai, thành phần thay đổi thực interface, sử dụng mà khơng cần mở rộng chương trình Một interface kế thừa từ interface khác Nó thực class struct Bộ mơn CNPM – Khoa CNTT 54 NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Giao diện Ví dụ interface ISampleInterface { void SampleMethod(); } class ImplementationClass : ISampleInterface { public void SampleMethod() { // Method implementation } } Bộ mơn CNPM – Khoa CNTT 55 NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Giao diện Giao diện mẫu thông dụng Giao diện khả hóa - System.Runtime.Serialization.ISerializable: dễ dàng lưu trữ vào đĩa, truyền qua mạng chuyển giá trị qua lại miền ứng dụng Giao diện khả chép - System.ICloneable: Cung cấp chế tạo cho đối tượng lớp Giao diện khả so sánh - System.Collections.IComparer: Cung cấp chế so sánh kiểu tùy biến, cho bạn dễ dàng xếp mảng đối tượng Giao diện khả liệt kê - System.IEnumerable: hỗ trợ dùng vòng lặp foreach để duyệt phần tử tập hợp Giao diện khả hủy - System.IDisposable Bộ môn CNPM – Khoa CNTT 56 NGÔN NGÔN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Giao diện Giao diện khả chép Có nhu cầu chép đối tượng: Sao chép truyền tham số để tránh sửa đổi đối tượng gốc Làm để chép đối tượng mà rõ kiểu (lớp) thực nó?  Sử dụng copy constructor? – Trong C# khơng hỗ trợ  Sử dụng phương thức copy? Lớp C cho phép chép đối tượng C phải thực thi giao diện khả chép  Sử dụng:  Hiện thực giao diện khả chép System.ICloneable  Thực thi phương thức Clone: giá trị trả object kết chép đối tượng Bộ môn CNPM – Khoa CNTT 57 Giao diện public class Point2D : ICloneable Local copy public double Y NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 { { double x, y; get { return y; } public object Clone() set { y = value; } { } return new Point2D(x, y);// MemberwiseClone(); public override string ToString() } { public Point2D(double x, double y) return x.ToString() + "," + y.ToString(); { } this.x = x; this.y = y; } public double X { get { return x; } set { x = value; } } Bộ môn CNPM – Khoa CNTT } So sánh kết chép trường hợp: Point2D thực giao diện khả chép không thực giao diện khả chép 58 NGÔN NGÔN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Giao diện Giao diện khả so sánh  Hiện thực giao diện System.IComparable Thực thi phương thức int CompareTo(Object other);  Hiện thực giao diện System.Collections.IComparer Thực thi phương thức int Compare(object obj1, object obj2) Return Value Description Less than zero This instance is less than value Zero This instance is equal to value Greater than zero This instance is greater than value Bộ môn CNPM – Khoa CNTT 59 NGÔN NGÔN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Giao diện Giao diện khả so sánh – ví dụ Các lớp thực giao diện khả so sánh xếp mảng phương thức Array.Sort Hiện thực giao diện khả so sánh dùng: System.Collections.IComparer, System.ICompareable Ví dụ: Hiện thực giao diện khả so sánh, xếp mảng sinh viên theo họ tên, theo chiều cao Bộ môn CNPM – Khoa CNTT 60 NGÔN NGÔN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Giao diện IComparable, IComparer Để thực giao diện khả so sánh với kiểu liệu xác định lập trình, dùng giao diện System IComparable System.Collections.IComparer Bộ môn CNPM – Khoa CNTT 61 NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Bài tập Bài Một cửa hàng cần xây dựng chương trình quản lý bán thuốc Giả sử bạn lập trình viên cần thực công việc sau Xây dựng lớp Medicine lưu trữ thông tin thuốc, bao gồm: Medicine Code, Medicine Name, Manufacturer Name, Unit Price, Quantity On Hand, Manufactured Date, Expiry Date, Batch Number - Lớp Sales lưu trữ thông tin bán hàng: Medicine Code, Quantity Sold, Planned Sales, Actual Sales, Region Mỗi lớp có constructor để khởi tạo tham số Mỗi lớp có phương thức Accept () để nhập liệu cho tham số Lớp Medicine có phương thức tên Print: + Phương thức 1: Hiển thị tồn thơng tin Medicine + Phương thức 2: Hiển thị , Quantity On Hand thuốc + Phương thức 3: Hiển thị Expiry Date, Manufactured Date thuốc Lớp Sales có phương thức tên Display + Phương thức 1: Hiển thị thông tin chi tiết đối tượng Sales + Phương thức 2: Hiển thị khác Actual Sales Planned Sales Bộ mơn CNPM – Khoa CNTT 62 NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Bài tập Bài Xây dựng lớp nhân viên (Employee): mã nhân viên, họ tên, số hợp đồng, ngày vào làm Hàm tạo có tham số để khởi tạo giá trị Phương thức virtual Nhập, thực nhập giá trị cho trường thông tin Phương thức virtual Tạo hợp đồng, thực tạo giá trị cho trường số hợp đồng = HD + Mã nhân viên + ngày vào làm (dd/MM/yyyy) Xây dựng lớp ParttimeEmployee kế thừa lớp Employee Ghi đè phương thức tạo hợp đồng Thực số hợp đồng = HDPT + Mã nhân viên + ngày vào làm (dd/MM/yyy) Xây dựng lớp FulltimeEmployee kế thừa Employee Ghi đè phương thức tạo hợp đồng Thực số hợp đồng = HDFT + Mã nhân viên + ngày vào làm (dd/MM/yyyy) Bộ môn CNPM – Khoa CNTT 63 Bài tập NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 - Bài 3, Xây dựng lớp ma trận, sử dụng indexer truy cập vào liệu mảng Nạp chồng toán tử +, -, * (ma trận với ma trận, ma trận với số nguyên) Xây dựng lớp sinh viên có thuộc tính sau: mã sinh viên, họ tên, điểm trung bình học kỳ Viết chương trình nhập vào mảng n sinh viên Hiện thực giao diện khả so sánh:  Sắp xếp mảng sinh viên theo họ tên theo thứ tự A, B, C Hiển thị kết  Sắp xếp mảng sinh viên theo điểm trung bình từ cao đến thấp Hiển thị kết  Sắp xếp mảng sinh viên theo điểm trung bình, điểm trung bình nhau, xếp theo họ tên Bộ môn CNPM – Khoa CNTT 64 ...NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Lập trình hướng đối tượng Lớp đối tượng Tổng quan lập trình hướng đối tượng (OOP) Phương th? ?c Thu? ?c tính Nạp chồng tốn tử Kế thừa đa hình Lớp trừu tượng giao... mơn CNPM – Khoa CNTT } 20 NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Phương th? ?c Constructor  Constructor (phương th? ?c khởi tạo) phương th? ?c đ? ?c biệt lớp, dùng để tạo đối tượng Chương trình c? ??p... phương th? ?c kiểu static } - Tốn tử c? ? ngơi phương th? ?c nạp chồng c? ? nhiêu tham số Bộ môn CNPM – Khoa CNTT 27 NGƠN NGƠN NGỮ NGỮ LẬP LẬP TRÌNH TRÌNH 22 Nạp chồng tốn tử C? ?c tốn tử nạp chồng C? ?c toán

Ngày đăng: 29/03/2021, 12:37

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

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

Tài liệu liên quan