08 Ket tap
LẬP TRÌNH JAVA
Bài 8: Kết tập
Mục tiêu
Kết thúc bài học bạn có thể nắm được:
Ch ỉ ra đư ợc b ản ch ất c ủa k ết t ập
Mô t ả các khái ni ệm cơ b ản liên quan đ ến k ết t ập.
Bi ểu di ễn đư ợc k ết t ập trên UML
Sử dụng các vấn đề trên với ngôn ngữ lập trình Java.
Nội dung
8.1 Tổng quan về kết tập
8.2 Biểu diễn trên UML
8.3 Thực thi trên Java
8.1 Tổng quan về kết tập
Ví dụ:
Đi ểm
T ứ giác g ồm 4 đi ểm
K ết t ập
8.1 Tổng quan về kết tập
Tái sử dụng mã nguồn (Re-usability)
T ồn t ại nhi ều lo ại đ ối tư ợng có các thu ộc tính và hành vi tương t ự ho ặc liên quan đ ến nhau
Xu ất hi ện nhu c ầu s ử d ụng l ại các mã ngu ồn đã vi ết.
L ớp c ũ đã có, đã m ất công l ập trình S ử d ụng l ại l ớp c ũ:
Sao chép l ớp c ũ thành 1 l ớp khác.
T ạo ra l ớp m ới là s ự k ết h ợp các đ ối tư ợng c ủa l ớp c ũ đã có K ết t ập
T ạo ra l ớp m ới trên cơ s ở phát tri ển t ừ l ớp c ũ đã có K ế th ừa
8.1 Tổng quan về kết tập
Bản chất của kết tập
T ạo ra tham chi ếu đ ến các đ ối tư ợng c ủa các l ớp có s ẵn trong l ớp m ới L ớp m ới là s ự k ết t ập các l ớp c ũ đã có.
L ớp m ới ch ứa các tham chi ếu đ ến các đ ối tư ợng c ủa các l ớp c ũ.
Các tham chi ếu này chính là các thành viên c ủa l ớp m ới.
Quan h ệ ch ứa/có ("has-a") ho ặc là m ột ph ần (is-a-part-of) ho ặc s ử d ụng ("use-a").
K ết t ập tái s ử d ụng thông qua đ ối tư ợng
Nội dung
8.1 Tổng quan về kết tập
8.2 Biểu diễn trên UML
8.3 Thực thi trên Java
8.2 Biểu diễn trên UML
Bội số quan hệ (Multiplicity)
1 số nguyên dương: 1, 2,...
Dải số (0..1, 2..4)
*: Bất kỳ số nào
8.2 Biểu diễn trên UML
Điểm được gọi là đối tượng thành phần
Tứ giác là lớp chứa đối tượng thành phần
Điểm được khai báo và sử dụng giống như các dữ liệu thành phần của Tứ giác.
8.2 Biểu diễn trên UML
Một số thuật ngữ liên quan:
K ết t ập
Aggregation (has a)
Composition (use a)
Liên k ết
Association
Nội dung
8.1 Tổng quan về kết tập
8.2 Biểu diễn trên UML
8.3 Thực thi trên Java
8.3 Thực thi trên Java
class Diem {
private int x, y;
public Diem(int _x, int _y){
x = _x; y = _y; }
public void setX(int _x){x=_x;}
public int getX() {return x;}//...
}
class TuGiac {
private Diem d1, d2;
private Diem d3, d4;
public TuGiac(Diem _d1, Diem _d2, Diem _d3, Diem _d4){
d1=_d1; d2=_d2;
d3=_d3; d4=_d4; }
public void setD1(Diem _d1){
d1=_d1;}
public Diem getD1(){return d1;}
//...
}
8.3 Thực thi trên Java
public class Test {
public static void main(String arg[])
{
Diem d1 = new Diem(0,0);
Diem d2 = new Diem(0,1);
Diem d3 = new Diem (1,1);
Diem d4 = new Diem (1,0);
TuGiac tg1 = new TuGiac(d1, d2, d3, d4);
TuGiac tg2 = new TuGiac();
tg2.setD1(d1);
// ...
}
}
8.3 Thực thi trên Java
class Person {
private String name;
private Date bithday;
public String getName() { return name; }
...
}
class Employee {
private Person me;
private double salary;
public String getName() { return me.getName(); }
...
}
8.3 Thực thi trên Java
class Manager {
private Employee me;
private Employee assistant;
public setAssistant(Employee e) {...}
...
}
...
Manager junior = new Manager();
Manager senior = new Manager();
// senior.setAssistant(junior); error
Bạn đang đọc truyện trên: Truyen247.Pro