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

定义人   这个类

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

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

运行

Java中一对多映射关系的更多相关文章

  1. java中继承关系学习小结

    继承:把多个类中同样的内容提取出来.定义到一个类中,其它类仅仅须要继承该类.就能够使用该类公开的属性和公开的方法.   继承的优点:提高代码的复用性.提高代码的可维护性.让类与类之间产生关系,是多态存 ...

  2. C#与Java中相等关系

    最近在学习java的语法,发现java中两个字符串某些情况下不能用==这个来判断,比如自己定义的类中有String属性,那么就不能用==判断两个是否相等.这才开始比较C#和Java在这里的区别,最后发 ...

  3. C++/Java中继承关系引发的调用关系详解

    C++: 这里引用到了 http://blog.csdn.net/haoel/article/details/1948051/ 中的内容,还请提前阅读陈大神的这篇博客后在阅读本篇. 覆盖,实现多态的基 ...

  4. java中变量关系

  5. 028、Java中的关系运算符

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  6. 024 01 Android 零基础入门 01 Java基础语法 03 Java运算符 04 关系运算符

    024 01 Android 零基础入门 01 Java基础语法 03 Java运算符 04 关系运算符 本文知识点:Java中的关系运算符 关系运算符

  7. Java中内存中的Heap、Stack与程序运行的关系

    堆和栈的内存管理 栈的内存管理是顺序分配的,而且定长,不存在内存回收问题:而堆 则是随机分配内存,不定长度,存在内存分配和回收的问题:堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存就象是自己动 ...

  8. java中paint repaint update 之间的关系

    最近总结了一下java中的paint,repaint和updata三者之间的关系,首先咱们都知道用paint方法来绘图,用repaint重绘,用update来写双缓冲.但是他们之间是怎么来调用的呢,咱 ...

  9. Java中的集合类型的继承关系图

    Java中的集合类型的继承关系图

随机推荐

  1. ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql (转)

    ps -A | grep -i mysql kill 列出来的进程 service mysql start 我的问题就解决了 ------------------------------------- ...

  2. [POJ] Bode Plot

    Description Consider the AC circuit below. We will assume that the circuit is in steady-state. Thus, ...

  3. Spring Boot自定义配置

    一.方法 覆盖自动配置很简单,就当自动配置不存在,直接显式地写一段配置.这段显式配置的形式 不限, Spring支持的XML和Groovy形式配置都可以. 二.原理 @ConditionalOnMis ...

  4. 第六章 声明式服务调用: Spring Cloud Feign

    我们在使用 Spring Cloud Ribbon 时, 通常都会利用它对 RestTemplate 的请求拦截来实现对依赖服务的接口调用, 而 RestTemplate 已经实现了对 HTTP 请求 ...

  5. 概述XML

    xml概述--->干什么的 存储一对多的数据 作为配置文件存储数据 xml组成---->怎么用 元素的分类 包含标签体的标签(有开始标签和结束标签) 例如: <student> ...

  6. Python 小知识点(9)--反射

    通过字符串映射或修改程序运行时的状态.属性.方法.有如下四个方法 1.hasattr(obj,name_str) , 判断一个对象obj里是否有对应的name_str字符串的方法 2.getattr( ...

  7. leetcode849

    public class Solution { public int MaxDistToClosest(int[] seats) { ; var len = seats.Length; ) { ; } ...

  8. 由于安装Android设备驱动异常,ADB无法识别安卓设备的解决方案

    体验更优排版请移步原文:http://blog.kwin.wang/programming/android-driver-exception-solution.html 最近换了台新电脑,在Andro ...

  9. ffmpeg编译选项汇总

    编译禁用“jack” 和 “crystalhd” : --disable-crystalhd--disable-indev=jack ================================= ...

  10. OpenSUSE 安装JAVA环境变量JDK

    一.首先卸载虚拟机自带的JDK环境 具体命令: rpm -qa |grep java  --查找java信息 rpm –qa|grep jdk   --查找jdk信息 如果有依赖关系,提示无法卸载,使 ...