Bài giảng môn Lập trình hướng đối tượng: Bài 8 - Đa hình
Số trang: 37
Loại file: pdf
Dung lượng: 802.61 KB
Lượt xem: 17
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Lập trình hướng đối tượng: Bài 8 - Đa hình" được biên soạn bao gồm các nội dung chính sau: Giới thiệu về upcasting và downcasting; Phân biệt liên kết tĩnh và liên kết động; Kỹ thuật đa hình; Ví dụ và bài tập về các vấn đề trên với ngôn ngữ lập trình Java. Mời các bạn cùng tham khảo bài giảng.
Nội dung trích xuất từ tài liệu:
Bài giảng môn Lập trình hướng đối tượng: Bài 8 - Đa hìnhBài 8: Đa hìnhMục tiêu❖ Giới thiệu về upcasting và downcasting❖ Phân biệt liên kết tĩnh và liên kết động❖ Nắm vững kỹ thuật đa hình❖ Ví dụ và bài tập về các vấn đề trên với ngôn ngữ lập trình Java 2Nội dung1. Upcasting và Downcasting2. Liên kết tĩnh và Liên kết động3. Đa hình (Polymorphism)4. Ví dụ và bài tập 3Nội dung1. Upcasting và Downcasting2. Liên kết tĩnh và Liên kết động3. Đa hình (Polymorphism)4. Ví dụ và bài tập 41. Upcasting và Downcasting❖ Chuyển đổi kiểu dữ liệu nguyên thủy ▪ Java tự động chuyển đổi kiểu khi • Kiểu dữ liệu tương thích • Chuyển đổi từ kiểu hẹp hơn sang kiểu rộng hơn int i; double d = i; ▪ Phải ép kiểu khi • Kiểu dữ liệu không tương thích • Chuyển đổi từ kiểu rộng hơn sang kiểu hẹp hơn int i; byte b = i; byte b = (byte)i; 51. Upcasting và Downcasting❖ Chuyển đổi kiểu dữ liệu tham chiếu ▪ Kiểu dữ liệu tham chiếu có thể được chuyển đổi kiểu khi • Kiểu dữ liệu tham chiếu (lớp) tương thích A • Nằm trên cùng một cây phân cấp kế thừa A var1 = new B(); A var1 = new A(); C var2 = (C)var1; B ▪ Hai loại chuyển đổi • Up-casting • Down-casting C 61.1 Upcasting❖ Upcasting: đi lên trên cây phân cấp thừa kế (moving up the inheritance hierarchy)❖ Upcasting là khả năng nhìn nhận đối tượng thuộc lớp dẫn xuất như là một đối tượng thuộc lớp cơ sở.❖ Tự động chuyển đổi kiểu 7Ví dụ Upcasting Person - name: String - birthday: Date + setName(String) + setBirthday(Date) + getDetails(): Stringpublic class Test1 { Employee public static void main(String arg[]) { Employee e = new Employee(); - salary: double Person p; + setSalary(double) p = e; + getDetails(): String p.setName(“Hoa”); p.setSalary(350000); // compile error} 8Ví dụ Upcasting Personclass Manager extends Employee { - name: String Employee assistant; - birthday: Date // ... + setName(String) public void setAssistant(Employee e) { + setBirthday(Date) assistant = e; + getDetails(): String } // ...} Employeepublic class Test2 { - salary: double public static void main(String arg[]) { + setSalary(double) Manager junior, senior; + getDetails(): String // ... senior.setAssistant(junior); Manager } - assistant: Employee} + setAssistant(Employee) + getDetails():String 9 Ví dụ Upcasting Personpublic class Test3 { - name: String String static teamInfo(Person p1, - birthday: Date Person p2) { + setName(String) return Leader: + p1.getName() + + setBirthday(Date) , member: + p2.getName(); + getDetails(): String } public static void main(String arg[]) { Employee e1, e2; Employee Manager m1, m2; - salary: double // ... + setSalary(double) System.out.println(teamInfo(e1, e2)); + getDetails(): String System.out.println(teamInfo(m1, m2)); System.out.println(teamInfo(m1, e2)); Manager } - assistant: Employee} + setAssistant(Employee) + getDetails():String ...
Nội dung trích xuất từ tài liệu:
Bài giảng môn Lập trình hướng đối tượng: Bài 8 - Đa hìnhBài 8: Đa hìnhMục tiêu❖ Giới thiệu về upcasting và downcasting❖ Phân biệt liên kết tĩnh và liên kết động❖ Nắm vững kỹ thuật đa hình❖ Ví dụ và bài tập về các vấn đề trên với ngôn ngữ lập trình Java 2Nội dung1. Upcasting và Downcasting2. Liên kết tĩnh và Liên kết động3. Đa hình (Polymorphism)4. Ví dụ và bài tập 3Nội dung1. Upcasting và Downcasting2. Liên kết tĩnh và Liên kết động3. Đa hình (Polymorphism)4. Ví dụ và bài tập 41. Upcasting và Downcasting❖ Chuyển đổi kiểu dữ liệu nguyên thủy ▪ Java tự động chuyển đổi kiểu khi • Kiểu dữ liệu tương thích • Chuyển đổi từ kiểu hẹp hơn sang kiểu rộng hơn int i; double d = i; ▪ Phải ép kiểu khi • Kiểu dữ liệu không tương thích • Chuyển đổi từ kiểu rộng hơn sang kiểu hẹp hơn int i; byte b = i; byte b = (byte)i; 51. Upcasting và Downcasting❖ Chuyển đổi kiểu dữ liệu tham chiếu ▪ Kiểu dữ liệu tham chiếu có thể được chuyển đổi kiểu khi • Kiểu dữ liệu tham chiếu (lớp) tương thích A • Nằm trên cùng một cây phân cấp kế thừa A var1 = new B(); A var1 = new A(); C var2 = (C)var1; B ▪ Hai loại chuyển đổi • Up-casting • Down-casting C 61.1 Upcasting❖ Upcasting: đi lên trên cây phân cấp thừa kế (moving up the inheritance hierarchy)❖ Upcasting là khả năng nhìn nhận đối tượng thuộc lớp dẫn xuất như là một đối tượng thuộc lớp cơ sở.❖ Tự động chuyển đổi kiểu 7Ví dụ Upcasting Person - name: String - birthday: Date + setName(String) + setBirthday(Date) + getDetails(): Stringpublic class Test1 { Employee public static void main(String arg[]) { Employee e = new Employee(); - salary: double Person p; + setSalary(double) p = e; + getDetails(): String p.setName(“Hoa”); p.setSalary(350000); // compile error} 8Ví dụ Upcasting Personclass Manager extends Employee { - name: String Employee assistant; - birthday: Date // ... + setName(String) public void setAssistant(Employee e) { + setBirthday(Date) assistant = e; + getDetails(): String } // ...} Employeepublic class Test2 { - salary: double public static void main(String arg[]) { + setSalary(double) Manager junior, senior; + getDetails(): String // ... senior.setAssistant(junior); Manager } - assistant: Employee} + setAssistant(Employee) + getDetails():String 9 Ví dụ Upcasting Personpublic class Test3 { - name: String String static teamInfo(Person p1, - birthday: Date Person p2) { + setName(String) return Leader: + p1.getName() + + setBirthday(Date) , member: + p2.getName(); + getDetails(): String } public static void main(String arg[]) { Employee e1, e2; Employee Manager m1, m2; - salary: double // ... + setSalary(double) System.out.println(teamInfo(e1, e2)); + getDetails(): String System.out.println(teamInfo(m1, m2)); System.out.println(teamInfo(m1, e2)); Manager } - assistant: Employee} + setAssistant(Employee) + getDetails():String ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình hướng đối tượng Lập trình hướng đối tượng Giới thiệu về upcasting Kỹ thuật đa hình Ngôn ngữ lập trình Java Giới thiệu về downcastingTài liệu có liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 315 0 0 -
101 trang 211 1 0
-
14 trang 141 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 128 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 104 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 103 0 0 -
265 trang 93 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 86 0 0 -
Bài giảng Ngôn ngữ lập trình Java: Applet - TS. Nguyễn Thị Hiền
34 trang 77 0 0 -
33 trang 74 0 0