Bài giảng Lập trình hướng đối tượng Chương 5 Trường Đại học Ngoại ngữ Tin học

59 357 0
Bài giảng Lập trình hướng đối tượng Chương 5  Trường Đại học Ngoại ngữ  Tin học

Đ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 Chương 5 Thừa kế cung cấp cho người học các kiến thức Vấn đề tái sử dụng code các hình thức, lý do thừa kế, lớp cơ sở, lớp dẫn xuất, sử dụng lớp cơ sở, constructor và thừa kế,... Mời các bạn cùng tham khảo nội dung chi tiết.

Click to edit Master subtitle style CHƯƠNG 5: THỪA KẾ Khoa Công nghệ thông tin Trường Đại học Ngoại ngữ - Tin học, TP.HCM NỘI DUNG Vấn đề tái sử dụng code & hình thức Lý thừa kế Lớp sở Lớp dẫn xuất Sử dụng lớp sở Constructor thừa kế Access modifier: protected Lớp sở lớp: Lớp object Lớp sealed lớp partial Vấn đề tái sử dụng code Xuất phát từ nhu cầu: Sử dụng lại đoạn code có sẵn Hoặc phát triển thêm từ code có sẵn mà viết lại từ đầu  Ưu điểm: Giảm chi phí Nâng cao khả bảo trì khả mơ hình hóa Vấn đề tái sử dụng code Lập trình cấu trúc: chương trình OOP: nhiều loại đối tượng có thuộc tính, hành vi tương tự  tái sử dụng lớp viết Trong lớp tái sử dụng phương thức Các hình thức tái sử dụng code Có hình thức: Sao chép lớp cũ thành lớp khác  Hạn chế: Dư thừa, khó quản lý có thay đổi Kết tập (Aggregation): Lớp tập hợp sử dụng (khơng thay đổi) lớp có Thừa kế (Inheritance): Lớp phát triển thêm thuộc tính phương thức từ lớp có KẾT TẬP (aggregation) Kết tập (Aggregation) Thành phần lớp chứa đối tượng lớp cũ Lớp mới: Lớp chứa/Lớp tồn thể Sử dụng thuộc tính phương thức lớp thành phần thông qua đối tượng Lớp cũ: Lớp thành phần Ví dụ: Lớp cũ: Điểm (Point) Lớp mới: Tam giác (Triangle) có điểm Ký hiệu quan hệ kết tập Số lượng lớp thành phần lớp chứa có thể: số nguyên dương (1, 2, 3, ) Dải số (0 1, n) Bất kỳ giá trị nào: * Không ghi: mặc định Ví dụ quan hệ kết tập public class Point { private int x; private int y; //Định nghĩa phương thức } public class Triangle { Point dinhA; //Đỉnh A Point dinhB; //Đỉnh B Point dinhC; //Đỉnh C //Định nghĩa phương thức } Bài tập lớp Cài đặt lớp Point lớp Triangle có chức năng: Nhập Xuất Tính chu vi Tính diện tích (Mỗi lớp phải có: Property get, set; constructor; kiểm tra ràng buộc có) Cài đặt lớp ListTriangle chứa danh sách Triangle có chức năng: nhập, xuất cho biết thơng tin tam giác có diện tích lớn 10 Constructor thừa kế Lớp dẫn xuất thừa kế Fields Methods, Properties, Indexers, Events Lớp dẫn xuất không thừa kế constructor Không thể dùng constructor lớp sở để tạo lớp dẫn xuất Chúng ta phải tự tạo constructor lớp dẫn xuất 45 Constructor thừa kế Khi lớp dẫn xuất định nghĩa constructor, cần gọi constructor lớp sở Mặc định, constructor lớp dẫn xuất gọi constructor không tham số lớp sở 46 Constructor thừa kế Tình huống: Nếu lớp sở Khơng có constructor khơng tham số Constructor lớp dẫn xuất muốn gọi constructor khác (không phải constructor không tham số) Giải pháp: Dùng từ khóa “base” 47 Constructor thừa kế class Person class Student : Person { { // … // … public Person() public Student(string studentID) : base(“No name”) { { Email = ""; StudentID = studentID Name = ""; } } // … public Person(string name) } { Name = name; } // … } 48 Access modifier: protected 49 Thành viên protected Đã học, thành viên lớp: private public Khi thừa kế, có thêm protected • • Trong lớp dùng Lớp dẫn xuất dùng 50 Lớp object 51 Lớp object Bất kỳ lớp tạo dẫn xuất từ lớp đặc biệt: lớp object Lớp object: Lớp sở lớp (trực tiếp hay gián tiếp) Có thể dùng lớp object để lưu lớp dẫn xuất object student = new Student(“15TH123456”); 52 Phương thức ToString() Trả chuỗi biểu diễn (mô tả) đối tượng class Student class Point { { … double x, y; public override string ToString() … { public override ToString() return Name; { } return “(” + x + “,” + y + “)”; } } } 53 Lớp sealed lớp partial 54 Lớp sealed Có lúc cần ngăn cản lớp cho thừa kế Dùng từ khóa sealed sealed class Student: Person { } sealed class Something { } 55 Lớp partial Đôi lúc lớp trở nên lớn Chia lớp thành lớp nhỏ Chia lớp thành nhiều file hay nhiều section (dùng từ khóa partial) public partial class Something { public void DoSomething { } } public partial class Something { public void DoSomethingElse { } } 56 Bài tập Thiết kế lớp cần thiết (áp dụng kỹ thuật kế thừa) để quản lý thông tin giảng viên sinh viên Đối với sinh viên gồm thông tin hành vi: Họ tên Tuổi Tên trường học Số tín tích luỹ Cập nhật số tín Hiển thị thông tin 57 Bài tập … Đối với giảng viên gồm thông tin hành vi: Họ tên Tuổi Tên trường công tác Học vị Hệ số lương Mức lương Hiển thị thông tin 58 ĐIỂM CHÍNH Thừa kế cách tái sử dụng code cách mở rộng lớp sở thành lớp cụ thể (lớp dẫn xuất) Bất kỳ lớp làm lớp sở (trừ lớp sealed) Lớp dẫn xuất thừa kế thành viên lớp sở (trừ private) Fields Methods, Properties, … Thừa kế: class Something : Another {…} protected access modifier: nơi lớp truy cập lớp dẫn xuất truy cập 59 ... nhận đối tượng lớp sở: Thực tự động Downcasting: đối tượng lớp sở nhìn nhận đối tượng lớp dẫn xuất: Phải ép kiểu 38 Kiểm tra kiểu ép kiểu (casting) Person person = new Student(“15TH123 456 ”);... Student(“15TH123 456 ”); Biến personPerson student có mã 15TH123 456 Nhưng person dùng thứ có person 37 Kiểm tra kiểu ép kiểu (casting) Ví dụ: int x = 20 .5; //error? double y = 10; //OK? Upcasting: đối tượng. .. chi phí Nâng cao khả bảo trì khả mơ hình hóa Vấn đề tái sử dụng code Lập trình cấu trúc: chương trình OOP: nhiều loại đối tượng có thuộc tính, hành vi tương tự  tái sử dụng lớp viết Trong lớp

Ngày đăng: 15/05/2017, 10:22

Từ khóa liên quan

Mục lục

  • Slide 1

  • NỘI DUNG

  • Vấn đề tái sử dụng code

  • Vấn đề tái sử dụng code

  • Các hình thức tái sử dụng code

  • KẾT TẬP (aggregation)

  • Kết tập (Aggregation)

  • Ký hiệu quan hệ kết tập

  • Ví dụ quan hệ kết tập

  • Bài tập tại lớp

  • Bài tập ví dụ

  • Phát hiện lớp và thông tin của lớp

  • Phát hiện lớp và thông tin của lớp

  • Sơ đồ lớp

  • public class XucXac

  • public class NguoiChoi

  • public class TranDau

  • public class TranDau

  • public class TranDau

  • Bài tập về nhà

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

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

Tài liệu liên quan