Professional Documents
Culture Documents
Bai 07
Bai 07
Nội dung
3 4
Ví dụ Ví dụ (2)
class Manager extends Employee {
Employee assistant;
// ...
public void setAssistant(Employee e) {
assistant = e;
}
public class Test1 { // ...
public static void main(String arg[]){ }
Person p; public class Test2 {
Employee e = new Employee(); public static void main(String arg[]){
Manager junior, senior;
p = e; // ...
p.setName(“Hoa”); senior.setAssistant(junior);
p.setSalary(350000); }
} }
5 6
1
8/24/2011
7 8
Ví dụ Nội dung
public class Test2 {
public static void main(String arg[]){ 1. Upcasting và Downcasting
Liên kết tĩnh và Liên kết động
Employee e = new Employee();
Person p = e; 2.
Employee ee = (Employee) p;
3. Đa hình (Polymophism)
Manager m = (Manager) ee;
Person p2 = new Manager(); 4. Lập trình tổng quát (generic prog.)
Employee e2 = (Employee) p2;
11 12
2
8/24/2011
13 14
15 16
17 18
3
8/24/2011
19 20
23 24
4
8/24/2011
4. Lập trình tổng quát 4. 1. Giới thiệu về lập trình tổng quát
25 26
27 28
Ví dụ: Java dùng upcasting và Object Nhắc lại – equals của lớp tự viết
class MyStack { class MyValue {
... int i;
public void push(Object obj) {...} }
public Object pop() {...} public class EqualsMethod2 {
public static void main(String[] args) {
}
MyValue v1 = new MyValue();
public class TestStack{
MyValue v2 = new MyValue();
MyStack s = new MyStack(); v1.i = v2.i = 100;
Point p = new Point(); System.out.println(v1.equals(v2));
Circle c = new Circle(); System.out.println(v1==v2);
s.push(p); s.push(c); }
Circle c1 = (Circle) s.pop(); }
Point p1 = (Point) s.pop();
}
29 30
5
8/24/2011
31 32
33 34
15 10
35 36
6
8/24/2011
H D ... Q
37 38
c. Tree d. Queue
Queue (Hàng đợi) là cấu trúc theo kiểu FIFO
Nút gốc
Nút trong
Nút lá
39 40
11 43 65 93
7 17 31 44 68
41 42
7
8/24/2011
43 44
4.2.2. Java Collection Framework (2) 4.2.2. Java Collection Framework (3)
Các collection đầu tiên của Java: Một số lợi ích của Collections Framework
45 46
47 48
8
8/24/2011
<<interface>> <<interface>>
Collection Map
<<interface>>
SortedSet 49 50
51 52
Object last
SortedSet subSet(Object e1, Object e2);
53 54
9
8/24/2011
Collection c;
Iterator it = c.iterator();
while ( it.hasNext() ) {
Point p = (Point) it.next();
System.out.println( p.toString() );
}
Iterator it = c.iterator(); ...
55 56
Iterator i = c.iterator();
while (i.hasNext()) {
Object o = i.next();
// Process this object
57
} 58
59 60
10
8/24/2011
61 62
HashSet
Set LinkedHashSet
SortedSet TreeSet
HashMap
Map LinkedHashMap
SortedMap TreeMap
63 64
4.2.4. Implementations (3) -Mô tả các cài 4.2.4. Implementations (3) -Mô tả các cài
đặt đặt
ArrayList: HashMap:
LinkedList LinkedHashMap:
HashSet: TreeMap:
LinkedHashSet:
TreeSet:
65 66
11
8/24/2011
69 70
12
8/24/2011
73 74
printList(lst0); // String
printList(lst1); // Employee
} 75 76
}
Sử dụng wildcard:
void printCollection(Collection<?> c) {
for(Object o:c) {
System.out.println(o);
}
}
77 78
13