• 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());

    运行

  • 相关阅读:
    Django(十五)模板详解:模板标签、过滤器、模板注释、模板继承、html转义
    Python @函数装饰器及用法
    NPM概述及使用简介
    MVC、MVT简介
    十、Vue:Vuex实现data(){}内数据多个组件间共享
    九、响应式发:rem和less(适配移动端)
    八、Vue-lazyload
    Vue点到子路由,父级,无法高亮问题解决
    七、Vue组件库:Element、Swiper(轮播专用组件)
    六、Vue-Router:基础路由处理、路由提取成单独文件、路由嵌套、路由传参数、路由高亮、html5的history使用
  • 原文地址:https://www.cnblogs.com/mengxinrenyu/p/8350786.html
Copyright © 2020-2023  润新知