BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI JAVA(Chương 4)

Chia sẻ bởi Trần Thị Thu Thủy | Ngày 19/03/2024 | 19

Chia sẻ tài liệu: BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI JAVA(Chương 4) thuộc Công nghệ thông tin

Nội dung tài liệu:

Chương 04
TÍNH KẾ THỪA VÀ ĐA HÌNH
INHERITANCE - POLYMORPHISM
Ôn tập
Accsess modifier: chỉ thị mức độ cho phép bên ngoài truy cập vào một dữ liệu hay một hành vi của 1 lớp.
Khi thiết kế 1 lớp: Cần xem xét để chọn access modifier phù hợp đối với từng thành phần.
Nếu muốn kết thúc một lớp( lớp không con), một hành vi (không cho hiệu chỉnh), một dữ liệu (là hằng): Dùng chỉ thị final.
Dữ liệu static là dữ liệu toàn cục của chương trình.
Code static là code được thực thi ngay lúc lớp được tham khảo đến.
Hành vi static là hàm toàn cục.
Truy xuất thành phần static thông qua tên lớp hoặc một đối tượng thuộc lớp.
Ôn tập
Constructor: Hành vi được thực thi ngay lúc khởi tạo đối tượng.
Tập các constructor tạo ra tập các mẫu khởi tạo biến đối tượng.
Một đối tượng sống từ lúc đối tượng được khởi tạo (bằng new) cho đến khi khối chứa nó được thực thi xong.
Tầm vực của 1 đối tượng là vùng văn bản chương trình từ lúc định nghĩa biến đến hết khối chứa biến này.
Destructor: Hành vi được thực thi vào lúc đối tượng chết ( Java không hỗ trợ destructor).
Đặc tính truy xuất
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.
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
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.
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ế
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
Thí dụ về thừa kế
Bài tập
Phân tích phân cấp thừa kế cho các lớp:
(làm tại lớp)
Hàng điện máy
Hàng sành sứ < mã hàng, tên hàng, nhà sản xuất, giá, loại nguyên liệu>
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 (Lab)
Gợi ý: cách viết tương tự thí dụ vừa rồi.
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.
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.
Thí 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
Thí dụ...
Bài tập (Lab)
Xây dựng thêm lớp MyArray3 kế thừa từ lớp MyArray2 có thêm các hành vi:
Add (int ar[]) để thêm cả mảng ar vào tập trị.
Remove(int i) để xoá phần tử ở vị trí i.
RemoveAll (int x) để xóa mọi xuất hiện của x trong tập trị.
IndexOf (int x) để tìm xuất hiện đầu của trị trong tập trị.
LastIndexOf (int x) để tìm xuất hiện cuối của trị trong tập trị.
Viết chương trình minh họa các hành vi này.
Thí dụ : Đối tượng lớp cha nhưng cụ thể lại là lớp con
4.6- Quan hệ giữa các lớp
Hai lớp không có quan hệ.
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 (lớp nội)
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
Lớp có dữ liệu là một đối tượng của lớp ngoài...
Lớp có dữ liệu là một đối tượng của lớp ngoài...
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 các instance này.

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 )
Lớp nội: Lớp ngoài không thể truy cập
trực tiếp lớp trong
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
4.7- Toán tử instanceof
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.
Thí dụ về ép kiểu
4.9- Tham số của hàm trong Java
Tham số trong hàm (hành vi) chỉ là tham trị.
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
Thí dụ: Tham số là đối tượng thì dữ liệu của đối tượng sẽ bị đổi
Bài tập
Làm một hóa đơn có 10 mặt hàng.
Viết chương trình minh họa cho thiết kế sau:
Người
Tên
NămSinh
HọcViên
điểm1
điểm2
điểm3
NhânViên
Lương
NgàyNhậnViệc
PBK
NhânViênCLCao
TrìnhĐộ
Ngành
NơiĐàoTạo
GiáoViên
ThùLaoGD
PhòngBanKhoa
MãPBK
TênPBK
NVQuảnLý
PhụCâpCV
Viết chương trình
khởi tạo một số
đối tượng gồm:
3 học viên,
2 giaó viên
3 nhân viên
quản lý.
Xuất thông tin về
các đối tượng.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Trần Thị Thu Thủy
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)