Nếu một lớp có một tham chiếu thực thể, thì nó được biết đến như là một lớp có quan hệ HAS-A. Giả sử một tình huống, đối tượng Employee chứa nhiều thông tin như id, name, eamailID, … Nó gồm một hoặc nhiều đối tượng address mà có thông tin riêng như city, state, country, zipcode, … như sau:
class Employee{
int id;
String name;
Address address; //Address la mot lop
...
}
Trong tình huống như vậy, Emloyee có một address là tham chiếu thực thể, vì thế mối quan hệ là Employee HAS-A address.
Ví dụ đơn giản về quan hệ HAS-A trong Java
Trong ví dụ, chúng ta tạo tham chiếu của lớp Operation trong lớp Circle.
class Operation{
int square(int n){
return n*n;
}
}
class Circle{
Operation op; //quan hệ HAS-A
double pi=3.14;
double area(int radius){
op=new Operation();
int rsquare=op.square(radius); //tai su dung code (vi du: uy quyen cho loi goi phuong thuc).
return pi*rsquare;
}
public static void main(String args[]){
Circle c=new Circle();
double result=c.area(5);
System.out.println(result);
}
}
Ví dụ
Như trong ví dụ trên đã đề cập, Employee có một đối tượng là Address, đối tượng này chứa thông tin riêng như city, state, country, … Trong tình huống này, mối quan hệ là Employee HAS-A address.
Tệp Address.java có nội dung:
public class Address {
String city,state,country;
public Address(String city, String state, String country) {
this.city = city;
this.state = state;
this.country = country;
}
}
Tệp Emp.java có nội dung sau:
public class Emp {
int id;
String name;
Address address;
public Emp(int id, String name,Address address) {
this.id = id;
this.name = name;
this.address=address;
}
void display(){
System.out.println(id+" "+name);
System.out.println(address.city+" "+address.state+" "+address.country);
}
public static void main(String[] args) {
Address address1=new Address("hanoi","HN","vietnam");
Address address2=new Address("hadong","HN","vietnam");
Emp e=new Emp(111,"hoang",address1);
Emp e2=new Emp(112,"thanh",address2);
e.display();
e2.display();
}
}
Chạy chương trình trên sẽ cho kết quả:
Output:111 hoang
hanoi HN vietnam
112 thanh
hadong HN vietnam
Hoclaptrinh.vn © 2017
From Coder With
Unpublished comment
Viết câu trả lời