Bài giảng Lập trình hướng đối tượng: Quan hệ giữa các lớp

57 51 0
Bài giảng Lập trình hướng đối tượng: Quan hệ giữa các lớp

Đ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

Bài giảng Lập trình hướng đối tượng: Quan hệ giữa các lớp cung cấp cho người học các kiến thức: Các mối quan hệ lớp, thừa kế 3. một số vấn đề khác, ví dụ - Pe. Đây là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.

Quan hệ lớp v 2.3 - 09/2018 Lê Viết Mẫn - lvman@hce.edu.vn Quan hệ lớp bạn Virus.cs Virus - reproductionRate : float - resistance : float -instance defaultReproductionRate : float = 0.1 + Virus(newResistance : float) + Virus(newReproductionRate : float, newResistance : float) + reproduce(immunity : float) : Virus* + survive(immunity : float) : bool Lê Viết Mẫn - lvman@hce.edu.vn Quan hệ lớp học cài đặt mơ hình Lê Viết Mẫn - lvman@hce.edu.vn C# Quan hệ lớp Nội dung Các mối quan hệ lớp Thừa kế Một số vấn đề khác Ví dụ - Pet Lê Viết Mẫn - lvman@hce.edu.vn Quan hệ lớp Các mối quan hệ lớp Lê Viết Mẫn - lvman@hce.edu.vn Quan hệ lớp Mối quan hệ lớp • • • Cho phép đối tượng tương tác với • • Các đối tượng giao tiếp cách gởi thông điệp thông qua kết nối Các đối tượng truy xuất hàm, thuộc tính đối tượng mà kết nối Được thể thông qua đồ thị liên kết • • Các nút / đỉnh lớp (hình chữ nhật) Các cạnh / cung quan hệ Các mối quan hệ lớp • • • • Association - q.h kết hợp Aggregation - q.h thu nạp Composition - q.h thành phần Generization - tổng quát hoá (kỹ thuật thừa kế) Lê Viết Mẫn - lvman@hce.edu.vn Quan hệ lớp Association - q.h kết hợp Person work at Company Employee Employer • Quan hệ kết hợp cho phép đối tượng gọi hàm, thuộc tính lẫn • Các đối tượng kết hợp khơng phải tồn không bắt buộc tạo lúc • • • • Cho phép null Không phép hủy cấp phát nhớ đối tượng tham chiếu đến Tạo đối tượng bên lớp gán vào cho lớp để lưu trữ Khi gán đối tượng khơng xố đối tượng cũ Lê Viết Mẫn - lvman@hce.edu.vn Quan hệ lớp Ví dụ - q.h kết hợp Person Company work at -workAt:Company -employee:Person Employee Employer Person.cs Company.cs using System; using System; namespace AssociationEx { class Person { string name; Company workAt; namespace AssociationEx { class Company { string name; Person employee; } } ần h p ành rong h t n ế i b ny t u trữ a o p T om để lư p C u kiể erson với lớ P lớp uan hệ q mối pany Com Lê Viết Mẫn - lvman@hce.edu.vn } ần h p ành g lớp h t n on ữ ế i r t b Tạo Person lưu tr kiểu pany để với lớp Com uan hệ q mối on Pers } Quan hệ lớp Ví dụ - q.h kết hợp Person.cs using System; ng ợ n it ê ố b đ Tạo pany t v n Com i gá ngo namespace AssociationEx { class Person { string name; Company workAt; o h C p é h l l nu // Có thể cho public Person public Person public Person p phép gán đối tượng cấu tử (string name) { } (string name, Company c) { } () {} public string Name { get { } set { } } // gán đối tượng thông qua thuộc tính public Company WorkAt { get { } set { } } } } Lê Viết Mẫn - lvman@hce.edu.vn ng ợ ối t từ bên đ o Tạ pany v n Com i gá ngo Khơng có Huỷ tử để xố đối tượng biến workAt Khi gán đối tượng khơng xố đối tượng cũ Quan hệ lớp Multiplicity - số Một khách hàng có nhiều đơn hàng Order -belongTo:Customer * belong to Order.cs Một đơn hàng thuộc khách hàng Customer -orders:List of Orders Customer.cs using System; using System; using System.Collections.Generic; namespace AssociationEx { class Order { int id; Customer belongTo; namespace AssociationEx { class Customer { string name; List orders; } ặc o h ray r A ợ g Dùn để hỗ tr List số } } } Lê Viết Mẫn - lvman@hce.edu.vn 10 Quan hệ lớp Định nghĩa lớp Sử dụng lớp Nạp chồng hàm lớp sở HCEPerson.cs Student.cs Nạp chồng hàm để hiển thị thêm thông tin Lê Viết Mẫn - lvman@hce.edu.vn 43 Quan hệ lớp Định nghĩa lớp Sử dụng lớp Nạp chồng hàm lớp sở HCEPerson.cs Student.cs Tạo phiên sử dụng từ khoá new Lê Viết Mẫn - lvman@hce.edu.vn 44 Quan hệ lớp Định nghĩa lớp Sử dụng lớp Nạp chồng hàm lớp sở HCEPerson.cs Sử dụng từ khoá base để gọi phiên lớp sở Student.cs Lê Viết Mẫn - lvman@hce.edu.vn 45 Quan hệ lớp Định nghĩa lớp Sử dụng lớp Nạp chồng hàm lớp sở HCEPerson binh = new HCEPerson(901289, "Hoang Van Binh", "1 Le Loi"); Student an = new Student(971232, "Nguyen Van An", "100 Phung Hung", 43, 2); Program.cs Class c1 = new Class("HTTT4253"); an.addClassTaken(c1); binh.displayProfile(); an.displayProfile(); [Name : Hoang Van Binh; ID : 901289; Address : Le Loi] [Name : Nguyen Van An; ID : 971232; Address : 100 Phung Hung; Course : 43; Year : 2; Num Of Clasess taken : 1] Lê Viết Mẫn - lvman@hce.edu.vn 46 Quan hệ lớp Một số vấn đề khác Lê Viết Mẫn - lvman@hce.edu.vn 47 Quan hệ lớp Đa thừa kế B C D • • C# KHƠNG hỗ trợ đa thừa kế lớp Chỉ hỗ trợ đa thừa kế hành vi thông qua giao diện (Interface) Lê Viết Mẫn - lvman@hce.edu.vn 48 Quan hệ lớp Kiểu thời kiểu khai báo • • Mỗi biến có kiểu khai báo thời điểm biên dịch Nhưng thời gian chạy, biến tham chiếu đến đối tượng có kiểu thời • Có thể kiểu kiểu kiểu khai báo HCEPerson binh = new HCEPerson(901289, "Hoang Van Binh", "1 Le Loi"); HCEPerson an = new Student(971232, "Nguyen Van An", "100 Phung Hung", 43, 2); • • Đâu kiểu khai báo biến binh an ? Đâu kiểu thời chúng ? Lê Viết Mẫn - lvman@hce.edu.vn 49 Quan hệ lớp Gọi hàm nạp chồng HCEPerson an = new Student(971232, "Nguyen Van An", "100 Phung Hung", 43, 2); an.displayProfile(); Lê Viết Mẫn - lvman@hce.edu.vn 50 Quan hệ lớp Gọi hàm nạp chồng HCEPerson an = new Student(971232, "Nguyen Van An", "100 Phung Hung", 43, 2); an.displayProfile(); [Name : Nguyen Van An; ID : 971232; Address : 100 Phung Hung] • Vì khóa học lớp học tham dự khơng in ? Lê Viết Mẫn - lvman@hce.edu.vn 51 Quan hệ lớp Chuyển đổi kiểu Lớp sở Student u h C n ể y i ổ đ u ể i k tường minh ngầm định HCE Person Lớp phái sinh Student s; HCEPerson p = s; Student s1 = (Student)p; Lê Viết Mẫn - lvman@hce.edu.vn 52 Quan hệ lớp Từ khoá sealed sealed class SelectionStudent : Student { } • • • Ngăn chặn việc thừa kế Phù hợp cho lớp tiện ích (utility class) • System.String C# struct ngầm định sealed nên khơng có khả thừa kế Lê Viết Mẫn - lvman@hce.edu.vn 53 Quan hệ lớp Kiểu lồng • C# cho phép định nghĩa kiểu (enum, class, interface, struct, ) bên phạm vi lớp struct class Employee { public class BenefitPackage { public double ComputePayDeduction() { return 125.0; } public enum BenefitPackageLevel { Standard, Gold, Platinum } } } • Lý sử dụng : • • Cho phép điều khiển hoàn toàn tất cấp độ truy xuất lớp nội • Lớp nội hữu dụng lớp trợ giúp (helper class) khơng dự định cho bên ngồi sử dụng Bởi lớp nội thành viên lớp chứa nên truy xuất thành viên private lớp chứa Lê Viết Mẫn - lvman@hce.edu.vn 54 Quan hệ lớp Ví dụ - Pet Lê Viết Mẫn - lvman@hce.edu.vn 55 Quan hệ lớp Lê Viết Mẫn - lvman@hce.edu.vn 56 Quan hệ lớp Cảm ơn ý Câu hỏi ? Lê Viết Mẫn - lvman@hce.edu.vn 57 Quan hệ lớp ... Các mối quan hệ lớp Lê Viết Mẫn - lvman@hce.edu.vn Quan hệ lớp Mối quan hệ lớp • • • Cho phép đối tượng tương tác với • • Các đối tượng giao tiếp cách gởi thông điệp thông qua kết nối Các đối tượng... Quan hệ lớp học cài đặt mơ hình Lê Viết Mẫn - lvman@hce.edu.vn C# Quan hệ lớp Nội dung Các mối quan hệ lớp Thừa kế Một số vấn đề khác Ví dụ - Pet Lê Viết Mẫn - lvman@hce.edu.vn Quan hệ lớp Các. .. lvman@hce.edu.vn 38 Quan hệ lớp Định nghĩa lớp Sử dụng lớp Khởi tạo đối tượng lớp Student.cs Lê Viết Mẫn - lvman@hce.edu.vn 39 Quan hệ lớp Định nghĩa lớp Sử dụng lớp Khởi tạo đối tượng lớp Student.cs

Ngày đăng: 14/10/2020, 22:31

Từ khóa liên quan

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

Tài liệu liên quan