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());
运行