簡體   English   中英

java中如何通過調用HAS-A關系中的setter方法在一個對象中插入多個值

[英]how to insert more than one values in one object by calling setter method in HAS-A relationship in java

class Address {
    private int pincode;
    private String village;
    //setters  to store multiple values
}

class Student{
    private int sid;
    private String
    // setter methods for inserting values into student object
    Address a=new Address();//HAS-A relationship
    a.setPincode(1111);
    a.setVillage("xxxxxx");// temporary address
    a.setPincode(2547);
    a.setVillage("yyyyy"); permanent address
    // so here i want to  inject more than one address parameters to Student object
    // like i want to print temporary adress and permament address for one student object
    System.out.println(studentobject);
    // toString method overriden
}

例如,如果我打印studentobject ,我想為一個學生對象輸出臨時地址和永久地址。

按照您的設計方式,一個Address類型的對象可以恰好包含一個密碼和一個村庄名稱。 創建對象后,存儲兩個值(1111 和“xxxxxx”),然后在之后的兩行中覆蓋它們。 以前的數據不再可用。

設計它的最佳方法可能是將兩個類字段放入您的Student類中。 然后您可以設置兩個地址(在一個 setter 中或有兩個單獨的 setter)。 toString()您打印兩個地址。

class Student{
    private int sid;
    private String name;
    private Address tempAddress;
    private Address permAddress;

    public void setAddress(Address tempAddress, Address permAddress) {
        this.tempAddress = tempAddress;
        this.permAddress = permAddress;
    }

    //Other methods here...

    public String toString() {
        //Concatenate your addresses somehow, you might need to implement toString for Address
        String addresses = tempAddress + "\n" + permAddress; 
        return addresses;
    }   
}
class Address {
private int tempAddressPincode;
private String tempAddressVillage;
//storing tempAddress with above two variables
private int permAddressPincode;
private String permAddressVillage;
//storing permAddress with above two variables
}

這可以是滿足您要求的一種解決方案。

另一種解決方案,你可以去使用一個數組

Address[] addresses = new Address[2].

addresses[0] for tempAddress and addresses[1] for permanent address.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM