重温java知识(十三、引用传递应用案例之一:类关联结构)

描述人与汽车关系的例子:

package com.mydemo;

// 创建一个“PersonDemo”类
public class PersonDemo {
    public static void main(String args[]) {

        // 实例化Person类对象
        Person person = new Person("张三", 18);

        // 实例化Car类对象
        Car car = new Car("宝马", 20000.00);

        // 一个人有一辆车
        person.setCar(car);

        // 一辆车属于一个人
        car.setPerson(person);

        // 通过人获取汽车的信息
//        System.out.println(person.getCar().getInfo());    // 代码链式写法
        Car tempCar = person.getCar();
        System.out.println(tempCar.getInfo());

        System.out.println("-----------------------");

        // 通过汽车获取人的信息
//        System.out.println(car.getPerson().getInfo());    // 代码链式写法
        Person tempPerson = car.getPerson();
        System.out.println(tempPerson.getInfo());

    }
}

// 定义一个“人”类
class Person {

    private String name;    // 人的姓名
    private int age;        // 人的年龄
    private Car car;        // 一个人有一辆车,如果没有车则为null

    /**
     * 双参构造函数------构造传入人的信息
     *
     * @param name
     * @param age
     */
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 获取人员信息
     *
     * @return
     */
    public String getInfo() {
        return "姓名:" + this.name + "、年龄:" + this.age;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    /**
     * 获取人对应的车的信息
     *
     * @return
     */
    public Car getCar() {
        return car;
    }

    /**
     * 设置人与车的关系
     *
     * @param car
     */
    public void setCar(Car car) {
        this.car = car;
    }

}

// 定义一个“车”类
class Car {
    private String name;        // 汽车名称
    private double price;       // 汽车价值
    private Person person;      // 车应该属于一个人

    /**
     * 双参构造函数------构造传入汽车的信息
     *
     * @param name
     * @param price
     */
    public Car(String name, double price) {
        this.name = name;
        this.price = price;
    }

    public String getInfo() {
        return "汽车型号:" + this.name + "、汽车价值:" + this.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;
    }

    /**
     * 获取汽车所属人信息
     *
     * @return
     */
    public Person getPerson() {
        return person;
    }

    /**
     * 配置汽车与人的关系
     *
     * @param person
     */
    public void setPerson(Person person) {
        this.person = person;
    }
}
运行结果:
汽车型号:宝马、汽车价值:20000.0
-----------------------
姓名:张三、年龄:18
发布了149 篇原创文章 · 获赞 4 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/yuzhiboyouzhu/article/details/105605254