Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的聚合关系_Java - Fatal编程技术网

Java中的聚合关系

Java中的聚合关系,java,Java,下面是一段Java代码,演示了在Java中使用“聚合”或has-a关系 class Address{ private String addressLine; public String getAddressLine(){ return addressLine; } public void setAddressLine(String address){ addressLine=address; } } class Custom

下面是一段Java代码,演示了在Java中使用“聚合”或has-a关系

class Address{
    private String addressLine;
    public String getAddressLine(){
        return addressLine;
    }
    public void setAddressLine(String address){
        addressLine=address;
    }
}
class Customer{
    private int customerId;
    private Address address;
    private static int counter = 1000;
    public Customer{
        customerId=++counter;
    }
    public int getCustomerId(){
        return customerId;
    }
    public void set Address(Address address){
        this.address=address;
    }
    public Address getAddress(){
        return address;
    }
}
class Retail{
    public static void main(String args[]){
        Address add=new Address();
        add.setAddressLine("Washington Street");
        Customer custObj = new Customer();
        custObj.setAddress(add);
        Address temp = custObj.getAddress();
        System.out.println("Address");
        System.out.println(temp.getAdressLine());
    }
}
无法理解此处代码的某些部分。请解释一下程序的执行情况。
另外,为什么我们必须将get address的值存储在temp中才能打印它?还有其他方法吗?

学习如何设置和获取聚合属性似乎是一个测试程序

在实际场景中,

Address add=new Address();
add.setAddressLine("Washington Street");
Customer custObj = new Customer();
custObj.setAddress(add); 
saveCustomer(custObj);
这部分将是头等舱和

Customer custObj = getCustomer();
Address temp = custObj.getAddress();
System.out.println("Address");
将在其他文件中


第一部分,您可能将其保存到某个数据库或缓存中,而第二部分,您可能希望从db/cache获取相同的数据

对于1)你能详细说明你不理解的部分吗?对于2)您是否尝试了
System.out.println(custObj.getAddress().getAddressLine())?您不了解哪些部分?几乎总是有其他的方法来实现它(不管“它”是什么)。在这种情况下,它存储在temp中,因此您不需要调用getAddress()函数两次,在某些情况下这可能会很昂贵。在Customer类中,我们声明“private Address Address”;如果执行一个函数,会发生什么情况?它是类地址的实例变量地址吗?