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

Bài giảng lập trình hướng đối tượng – bài 08 đa hình

40 5 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 40
Dung lượng 556,38 KB

Nội dung

ng c om Bộ môn Công nghệ Phần mềm Viện CNTT & TT Trường Đại học Bách Khoa Hà Nội th a n co IT3100 Bài 08 Đa hình cu u du on g LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG CuuDuongThanCong.com https://fb.com/tailieudientucntt Mục tiêu om c du on g u cu ◼ th a n ◼ ng ◼ Giới thiệu upcasting downcasting Phân biệt liên kết tĩnh liên kết động Nắm vững kỹ thuật đa hình Ví dụ tập vấn đề với ngôn ngữ lập trình Java co ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung om c du on g u cu th a n ng Upcasting Downcasting Liên kết tĩnh Liên kết động Đa hình (Polymorphism) Ví dụ tập co CuuDuongThanCong.com https://fb.com/tailieudientucntt om c ng cu u du on g th a n co Upcasting Downcasting CuuDuongThanCong.com https://fb.com/tailieudientucntt Upcasting Downcasting Java tự động chuyển đổi kiểu ng ◼ c om Chuyển đổi kiểu liệu nguyên thủy Kiểu liệu tương thích ◼ Chuyển đổi từ kiểu hẹp sang kiểu rộng int i; double d = i; Phải ép kiểu Kiểu liệu tương thích ◼ Chuyển đổi từ kiểu rộng sang kiểu hẹp int i; byte b = i; byte b = (byte)i; ◼ u ◼ du on g th a n co ◼ cu ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt Upcasting Downcasting ◼ ng Kiểu liệu tham chiếu chuyển đổi kiểu Kiểu liệu tham chiếu (lớp) tương thích Nằm phân cấp kế thừa n ◼ A co ◼ c om Chuyển đổi kiểu liệu tham chiếu du on g th a A var1 = new B(); A var1 = new A(); C var2 = (C)var1; B Hai cách chuyển đổi u ◼ ◼ ◼ cu ◼ Up-casting Down-casting “dán cho nhãn” C CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.1 Upcasting om Up casting: lên phân cấp thừa kế (moving up the inheritance hierarchy) Up casting khả nhìn nhận đối tượng thuộc lớp dẫn xuất đối tượng thuộc lớp sở Tự động chuyển đổi kiểu co du on g u cu ◼ th a n ◼ ng c ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.1 Upcasting Ví dụ: om ◼ Person ? - name: String - birthday: Date + setName(String) + setBirthday(Date) + getDetails(): String cu u du on g th a n co ng c public class Test1 { public static void main(String arg[]) { Employee e = new Employee(); Person p; p = e; p.setName(“Hoa”); p.setSalary(350000); // compile error } Employee - salary: double + setSalary(double) + getDetails(): String CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.1 Upcasting Person - name: String Ví dụ: om ◼ + setName(String) + setBirthday(Date) + getDetails(): String Employee - salary: double + setSalary(double) + getDetails(): String cu u du on g th a n co ng c class Manager extends Employee { Employee assistant; // public void setAssistant(Employee e) { assistant = e; } // } public class Test2 { public static void main(String arg[]) { Manager junior, senior; // senior.setAssistant(junior); } } - birthday: Date CuuDuongThanCong.com Manager - assistant: Employee + setAssistant(Employee) + getDetails():String https://fb.com/tailieudientucntt 1.1 Upcasting Person - name: String Ví dụ: om ◼ + setName(String) + setBirthday(Date) + getDetails(): String co ng c public class Test3 { String static teamInfo(Person p1, Person p2) { return "Leader: " + p1.getName() + ", member: " + p2.getName(); } public static void main(String arg[]) { Employee e1, e2; Manager m1, m2; // System.out.println(teamInfo(e1, e2)); System.out.println(teamInfo(m1, m2)); System.out.println(teamInfo(m1, e2)); } } - birthday: Date - salary: double + setSalary(double) + getDetails(): String cu u du on g th a n Employee CuuDuongThanCong.com Manager - assistant: Employee + setAssistant(Employee) + getDetails():String https://fb.com/tailieudientucntt 10 Đa hình om Polymorphism: Nhiều hình thức thực hiện, nhiều kiểu tồn c ◼ ◼ co ng ◼ du on g Đa hình phương thức: Phương thức trùng tên, phân biệt danh sách tham số Đa hình đối tượng ◼ ◼ Nhìn nhận đối tượng theo nhiều kiểu khác Các đối tượng khác đáp ứng chung danh sách thơng điệp có giải nghĩa thơng điệp theo cách thức khác u ◼ th a Đa hình lập trình cu ◼ Khả biến tham chiếu thay đổi hành vi theo đối tượng mà giữ n ◼ 26 CuuDuongThanCong.com https://fb.com/tailieudientucntt Đa hình om Polymorphism: gia tăng khả tái sử dụng đoạn mã nguồn viết cách tổng quát thay đổi cách ứng xử cách linh hoạt tùy theo loại đối tượng co ng c ◼ n th a u Để thể tính đa hình: ◼ ◼ Các lớp phải có quan hệ kế thừa với lớp cha Phương thức ghi đè (override) lớp cu ◼ Tính đa hình (Polymorphism) Java hiểu trường hợp, hồn cảnh khác đối tượng có hình thái khác tùy thuộc vào ngữ cảnh du on g ◼ 27 CuuDuongThanCong.com https://fb.com/tailieudientucntt Đa hình Person - birthday: Date + setName(String) + setBirthday(Date) + getDetails(): String co ng ◼ Ví dụ: Các đối tượng khác giải nghĩa thông điệp theo cách thức khác c ◼ om - name: String n Liên kết động (Java) Person p1 = new Person(); Person p2 = new Employee(); Person p3 = new Manager(); // System.out.println(p1.getDetail()); System.out.println(p2.getDetail()); System.out.println(p3.getDetail()); Employee - salary: double + setSalary(double) + getDetails(): String cu u du on g th a ◼ Manager - assistant: Employee + setAssistant(Employee) + getDetails():String 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt Đa hình Person - name: String Ví dụ: om ◼ + setName(String) + setBirthday(Date) + getDetails(): String Employee - salary: double + setSalary(double) + getDetails(): String cu u du on g th a n co ng c class EmployeeList { Employee list[]; public void add(Employee e) { } public void print() { for (int i=0; i Hàng thực phẩm u ◼ du on g ◼ th a n co ng ◼ c ◼ Viết chương trình tạo loại mặt hàng cụ thể Xuất thông tin mặt hàng cu ◼ 38 CuuDuongThanCong.com https://fb.com/tailieudientucntt PhongBan NhanVien - tenPhongBan: String - soNhanVien: int * + LUONG_MAX: double + tinhLuong(): double + themNV(NhanVien): boolean + inThongTin() c om + SO_NV_MAX: int ng + xoaNV(): NhanVien NhanVienHopDong NhanVienCoHuu - luongCoBan: double - luongHopDong: double Bài tập - heSoLuong: double + tinhLuong(): double th a co + tinhTongLuong(): double + inThongTin() Xây dựng lớp biểu đồ hình bên + tangHeSoLuong(double): boolean du on g + tinhLuong(): double Sửa lớp NhanVien thành lớp CanBoCoHuu Cho lớp CanBoCoHuu thừa kế lớp abstract NhanVien Tính tổng lương tất nhân viên phòng ban + inThongTin() ◼ ◼ cu u ◼ n + inThongTin() ◼ - tenNhanVien: String CuuDuongThanCong.com TruongPhong - phuCap: double - soNamDuongChuc: int + tinhLuong(): double + inThongTin() 39 https://fb.com/tailieudientucntt om c ng co n th a du on g u cu 41 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... (Polymorphism) ng c Đa hình 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt Đa hình om Ví dụ: Một hoạt động thực đối tượng 2DShape thực đối tượng thuộc ba lớp Tam giác, Hình tròn, Tứ giác... https://fb.com/tailieudientucntt Đa hình om Polymorphism: Nhiều hình thức thực hiện, nhiều kiểu tồn c ◼ ◼ co ng ◼ du on g Đa hình phương thức: Phương thức trùng tên, phân biệt danh sách tham số Đa hình đối tượng ◼ ◼... tượng ◼ ◼ Nhìn nhận đối tượng theo nhiều kiểu khác Các đối tượng khác đáp ứng chung danh sách thơng điệp có giải nghĩa thơng điệp theo cách thức khác u ◼ th a Đa hình lập trình cu ◼ Khả biến

Ngày đăng: 28/12/2021, 19:14

HÌNH ẢNH LIÊN QUAN

Bài 08. Đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
i 08. Đa hình (Trang 1)
◼ Nắm vững kỹ thuật đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
m vững kỹ thuật đa hình (Trang 2)
3. Đa hình (Polymorphism) - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
3. Đa hình (Polymorphism) (Trang 3)
3. Đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
3. Đa hình (Trang 22)
3. Đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
3. Đa hình (Trang 23)
3. Đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
3. Đa hình (Trang 24)
3. Đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
3. Đa hình (Trang 25)
3. Đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
3. Đa hình (Trang 26)
3. Đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
3. Đa hình (Trang 27)
3. Đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
3. Đa hình (Trang 29)
3. Đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
3. Đa hình (Trang 30)
◼ Đa hình - Bài giảng lập trình hướng đối tượng – bài 08 đa hình
a hình (Trang 34)

TỪ KHÓA LIÊN QUAN