1. Trang chủ
  2. » Giáo Dục - Đào Tạo

tính kế thừa và đa hình inheritanca polymorphism

31 726 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 248,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ô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.. • Truy xuất thành phần static thông qua tên lớp hoặc một đối tượng thuộ

Trang 1

Chương 04

TÍNH KẾ THỪA VÀ ĐA HÌNH

INHERITANCE - POLYMORPHISM

Trang 2

Ô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ác yếu tố sau cần được xem xét

để chọn access modifier phù hợp.

• 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.

Trang 3

• 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).

Trang 4

Đặc tính truy xuất

Modifier private friendly protected public

Trang 5

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.

Trang 6

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

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

Trang 7

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.

Trang 8

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ế

Trang 9

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

Trang 10

100 emp

mng p

200 300

P01 Hoa 21 P02 Luan 25 150

P03 Quang 25 150 200

100 200 300

Thí dụ về thừa kế

Trang 11

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 <mã hàng, tên hàng, nhà sản

xuất, giá, thời gian bảo hành, điện áp, công

suất>

• 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 <mã hàng, tên hàng, nhà sản xuất, giá, ngày sản xuất, ngày hết hạn dùng>

• 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ề cac1 mặt hàng này.

• Gợi ý: cách viết tương tự thí dụ vừa rồi.

Trang 12

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.

Trang 13

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 khac1 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

Trang 14

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

Trang 15

Thí dụ

thêm đuôi

thêm đầu

Trang 16

Thí dụ : Đối tượng lớp cha nhưng cụ thể lại là

lớp con

Biến đối tượng là tham khảo nên hoàn toàn có thể khai báo biến là lớp cha nhưng khởi tạo biến là đối tượng thuộc

lớp con.

Tính đa hình

Trang 17

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

Trang 18

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

Trang 19

Lớp có dữ liệu là một đối tượng của lớp ngoài

Trang 20

Lớp có dữ liệu là một đối tượng của lớp ngoài

Trang 21

4.6.2-Lớp nội – Inner/nested class

• Là lớp được khai báo bên trong một lớp

Trang 22

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 )

Trang 23

Lớp nội: Lớp ngoài không thể truy cập

trực tiếp lớp trong

Trang 24

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

Trang 25

4.7- Toán tử instanceof

Toán tử instanceof có 2 toán hạng

Toán hạng trái: Một đối tượng

Toán hạng phải: Tên 1 lớp

Trả trị:

Trang 26

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

Trang 27

Thí dụ về ép kiểu

overflow

b, kiểu byte: -128 127

Trang 28

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

• Tham số trong hàm (hành vi) chỉ là tham trị.

Hàm Swap1 không thể làm thay đổi trị của tham số xx và yy

Hàm Swap2 hoán vị x, y của dữ liệu của lớp (tầm vực bên ngoài hàm) nên hoán vị sẽ thành công

Trang 29

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

Trang 30

Thí dụ: Tham số là đối tượng thì dữ liệu của đối tượng

sẽ bị đổi

Trang 31

THANK YOU

Ngày đăng: 17/01/2015, 09:28

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN