Java中一对多映射关系(转)

 

通过例子,一个人可以有多辆汽车

定义人   这个类

人可以有很多辆汽车,类中车属性用数组

复制代码
class Person{ 
    private String name;
    private String phone;
    private Car[] car; 
    public Person() {}
    public Person(String name, String phone) {
        this.name = name;
        this.phone = phone;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public Car[] getCar() {
        return car;
    }
    public void setCar(Car[] car) {
        this.car = car;
    }
    public String getInfo(){
        return "姓名"+name+",电话"+phone;
    }
}
复制代码

然后定义汽车  这个类

复制代码
class Car{ 
    private String name;
    private double price;
    private Person person;
    public Car() {}
    public Car(String name,double price) {
        this.name = name;
        this.price = price;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public Person getPerson() {
        return person;
    }
    public void setPerson(Person person) {
        this.person = person;
    }
    public String getInfo() {
        return "品牌:"+name+" 价格:"+price;
    }
复制代码

之后,在测试类中,分别实例Person类和Car类

人这个对象只new一个

汽车可以无限个,这里象征性实例三个

        Person p = new Person("阿三","33333333");
        Car c1 = new Car("宝马",400000);
        Car c2 = new Car("宝来",100000);
        Car c3 = new Car("宝骏",800

对象实例化之后,设置彼此的关系,即一个人对应三台车,每台车都对应一个人

通过set方法传值

        p.setCar(new Car[]{c1,c2,c3}); 
        c1.setPerson(p);
        c2.setPerson(p);
        c3.setPerson(p);

测试

通过人,查询其下的车辆信息

System.out.println(p.getInfo()+"拥有的车辆");
for(int i=0;i<p.getCar().length;i++) {
    System.out.println(p.getCar()[i].getInfo()); //数组类型用for循环打印
}

运行

通过车,查找所属人信息

System.out.println(c1.getInfo()+" 这辆车的所属人:"+c1.getPerson().getInfo());
System.out.println(c2.getInfo()+" 这辆车的所属人:"+c1.getPerson().getInfo());
System.out.println(c3.getInfo()+" 这辆车的所属人:"+c1.getPerson().getInfo());

运行

原文地址:https://www.cnblogs.com/ty-v/p/8249928.html