• Java面向对象编程 -7.2


    自身关联

    class Car{
    	private float value;
    	private String name;
    	private Person person;
    	public void setName(String name){
    		this.name = name;
    	}
    	public String getName(){
    		return this.name;
    	}
    	public void setValue(float value){
    		this.value = value;
    	}
    	public float getValue(){
    		return this.value;
    	}
    	public void setPerson(Person person){
    		this.person = person;
    	}
    	public Person getPerson(){
    		return this.person;
    	}
    	public String getInfo(){
    		return "name"+name+"value"+value;
    	}
    	public Car(String name,float value){
    		this.name = name;
    		this.value = value;
    	}
    }
    
    
    class Person{
    	private String name;
    	private int age;
    	private Car car;
    	private Person children[];//一个人可以有很多孩子 这些孩子都是人 都有相同的类结构 不可能重复建多个类
    	
    	public void setChildren(Person children[]){//注意 我第一次想的不对
    		this.children = children;
    	}
    	public Person[] getChildren(){//注意 我第一次想的不对
    		return this.children;
    	}
    	public void setName(String name){
    		this.name= name;
    	}
    	public String getName(){
    		return this.name;
    	}
    	public void setAge(int age){
    		this.age = age;
    	}
    	public int getAge(){
    		return this.age;
    	}
    	public void setCar(Car car){
    		this.car = car;
    	}
    	public Car getCar(){
    		return this.car;
    	}
    	public String getInfo(){
    		return "name"+name+"age"+age;
    	}
    	public Person(String name,int age){
    		this.name = name;
    		this.age = age;
    	}
    }
    
    
    public class name {	
    	public static void main(String args[]){
    		Person person = new Person("张三",18);
    		Car car = new Car("宾利", 20000000.00f);
    		Person childA = new Person("李四", 1);
    		Person childB = new Person("王五", 2);
    		childA.setCar(new Car("BWM X1", 300000.00f));//匿名函数
    		childB.setCar(new Car("法拉利", 200000.00f));//匿名函数
    		person.setChildren(new Person[]{childA,childB});//这里我没想到这样写
    		person.setCar(car);
    		car.setPerson(person);
    		System.out.println(person.getCar().getInfo());//代码链
    		System.out.println(car.getPerson().getInfo());//代码链
    		for (int i = 0; i < person.getChildren().length; i++) {
    			System.out.println(person.getChildren()[i].getInfo());
    			System.out.println(person.getChildren()[i].getCar().getInfo());
    			
    		}
    	}
    }
    
    

    这些关系的匹配都是通过引用数据类型的关联来完成的
    对象数组能表示多 这个概念 在实际开发中异常重要

  • 相关阅读:
    docker log
    byte转String防止乱码
    SQL索引
    Redis 总结精讲
    如何保证消息队列是高可用的
    消息中间件(一)MQ详解及四大MQ比较
    @Bean和@Componet区别
    理解Spring的AOP和Ioc/DI就这么简单
    SpringBoot 基础
    《Linux 鸟哥私房菜》 第6章 Linux的文件权限与目录配置
  • 原文地址:https://www.cnblogs.com/sakura579/p/12499920.html
Copyright © 2020-2023  润新知