Lập trình Java - Chương 4: Tính kế thừa và đa hình

4.1- Tính kế thừa – Inheritance.

4.2- Các loại thừa kế.

4.3- Hiện thực lớp con trong Java.

4.4- Tính đa hình.

4.5- Kỹ thuật Overriding

4.6- Quan hệ qiữa các lớp

4.7- Toán tử instanceof

4.8- Vấn đề ép kiểu trong Java

4.9- Tham số của hàm trong Java

 

ppt26 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 7313 | Lượt tải: 2download
Tóm tắt nội dung Lập trình Java - Chương 4: Tính kế thừa và đa hình, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Chương 4- Tính Thừa kế và Đa hình Slide */31 Chương 04TÍNH KẾ THỪA VÀ ĐA HÌNHINHERITANCE - POLYMORPHISM ThS. Nguyễn Thị Thùy LẬP TRÌNH JAVA Chương 4- Tính Thừa kế và Đa hình Slide */31 Mục tiêu Giải thích được: Thừa kế là gì trong OOP Các loại thừa kế trong các ngôn ngữ OOP Đa hình là gì trong OOP Phân biệt được kỹ thuật Overloading và overriding Hiện thực được đặc điểm thừa kế trong OOP với Java Hiện thực được đặc điểm đa hình trong OOP với Java Sử dụng được toán tử instanceOf và ép kiểu trong Java Giải thích được những tình huống có thể xẩy ra khi ép kiểu Giải thích được loại tham số trong hàm của Java ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Nội dung 4.1- Tính kế thừa – Inheritance. 4.2- Các loại thừa kế. 4.3- Hiện thực lớp con trong Java. 4.4- Tính đa hình. 4.5- Kỹ thuật Overriding 4.6- Quan hệ qiữa các lớp 4.7- Toán tử instanceof 4.8- Vấn đề ép kiểu trong Java 4.9- Tham số của hàm trong Java ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.1- Tính kế thừa – Inheriatance Khả năng một lớp thừa hưởng data và code từ một hay nhiều lớp khác. Kỹ thuật giúp tái sử dụng code  Tiết kiệm công sức lập trình, công sức kiểm tra code. ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.2- Các loại thừa kế Đơn thừa kế Đa thừa kế (thừa kế bội) Mỗi ngôn ngữ OOP hỗ trợ khả năng thừa kế riêng. C++: đa thừa kế. C#, Java: Đơn thừa kế ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.3- Hiện thực lớp con trong Java class CLASSNAME extends FATHERCLASSNAME { DataType1 Property1 [=Value]; DataType2 Property1 [=Value]; CLASSNAME (DataType Arg,…)	// constructor {… } [Modifier] DataType MethodName( DataType Arg,…) { … } } Lớp con là mở rộng của lớp cha ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Thí dụ về thừa kế ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Bài tập Phân tích phân cấp thừa kế cho các lớp: Hàng điện máy Hàng sành sứ Hàng thực phẩm Viết chương trình tạo mỗi loại một mặt hàng cụ thể, xuất thông tin về các mặt hàng này. ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.4- Tính đa hình - Polymorphism Đa hình thái, nhiều cách phản ứng khác nhau cho cùng một hành vi Lớp A có hành vi M() Lớp B là con của lớp A, trong lớp B viết lại hành vi M() Có biến đối tượng obj Tại thời điểm t1: obj chỉ đến một thực thể A, obj.M() sẽ cho một phản ứng Tại thời điểm t2: obj chỉ đến một thực thể B, obj.M() sẽ cho một phản ứng khác Tính đa hình có được là nhờ kỹ thuật override hành vi giữa 2 lớp cha con. ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.5- Kỹ thuật Overriding Override: ghi đè, thay thế code một hành vi thừa kế từ lớp cha để lớp con phản ứng khác với phản ứng của lớp cha khi cùng được yêu cầu thực thi hành vi này. Khác biệt giữa overloading và overriding: Overloading: Kỹ thuật cho phép nhiều hành vi trùng tên nhưng khác chữ ký trong cùng một lớp. Overriding: Kỹ thuật cho phép sửa code của một hành vi mà lớp con thừa kế từ lớp cha để lớp con phản ứng khác với lớp cha. ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Ví dụ về overload và override overloading method: cùng tên, khác tham số, cùng lớp overriding method: cùng tên, cùng tham số, ở hai lớp cha con ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Ví dụ ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Ví dụ : Đối tượng lớp cha nhưng cụ thể lại là lớp con ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.6- Quan hệ giữa các lớp Quan hệ cha con : tính thừa kế ( đã bàn rồi). Quan hệ bao gộp: Lớp có thành phần dữ liệu là thể hiện của 1 lớp khác. Lớp thành phần là lớp bên ngoài. Lớp thành phần là lớp bên trong ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.6.1-Lớp có dữ liệu là một đối tượng của lớp ngoài Chương trình xuất hóa đơn ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Lớp có dữ liệu là một đối tượng của lớp ngoài... ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Lớp có dữ liệu là một đối tượng của lớp ngoài... ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.6.2-Lớp nội – Inner/nested class Là lớp được khai báo bên trong một lớp khác. Lớp trong truy xuất được lớp ngoài. Lớp ngoài có phải có ít nhất một thành phần là instance của lớp trong và truy xuất cac1 instance này. ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Inner class... Cú pháp: class Outter { …. class Inner { … } } Lợi ích: Có thể viết code truy xuất lớp ngoài từ lớp trong mà không cần định nghĩa đối tượng lớp ngoài Lớp ngoài muốn truy cập lớp trong thì phải định nghĩa 1 đối tượng lớp trong ( bằng toán tử new ) ThS. Nguyễn Thị Thùy 4.6.2-Lớp nội – Inner/nested class Chương 4- Tính Thừa kế và Đa hình Slide */31 Lớp nội: Lớp ngoài không thể truy cập trực tiếp lớp trong ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Inner class: Lớp ngoài truy cập thành phần là đối tượng thuộc lớp trong, lớp trong truy cập trực tiếp lớp ngoài ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.7- Toán tử instanceof ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.8- Vấn đề ép kiểu trong Java type casting Copy dữ liệu từ kiểu này sang kiểu khác Có thể bị tràn số  Phải chú ý khi lập trình ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Thí dụ về ép kiểu ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 4.9- Tham số của hàm trong Java Tham số trong hàm (hành vi) chỉ là tham trị. ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Thí dụ: Tham số là mảng Ôn tập về khai báo mảng Tham số là mảng (địa chỉ phần tử đầu) nên hàm xử lý hiệu qủa ThS. Nguyễn Thị Thùy Chương 4- Tính Thừa kế và Đa hình Slide */31 Thí dụ: Tham số là đối tượng thì dữ liệu của đối tượng sẽ bị đổi ThS. Nguyễn Thị Thùy 

File đính kèm:

  • pptLập trình Java - Chương 4_Tính kế thừa và đa hình.ppt
Tài liệu liên quan