A has-a B 包含(组合 聚合 关联)
一个类的对象有另一个类的对象作为属性
组合——-相当于人和大脑 人和心脏的关系
整体和部分的关系 不可分割 要出现都出现 要消亡都消亡
聚合——-汽车和轮子的关系 电脑和主板
整体和部分的关系 可以分割 创建时有可能是分开的
关联——-人有汽车 人有电脑
整体和部分的关系 可以分割 不是一开始就有的 是后来形成在一起的
package contains;
//package和import同时出现的话要先写package
//且package只能写一个 import可以有多个
public class Car {
//属性
public String brand;//汽车品牌
public String type;//型号
public String color;//颜色
public Wheel wheel;//车有轮子---->包含关系
//构造方法
public Car(){}
public Car(String brand,String type,String color,Wheel wheel){
this.brand = brand;
this.type = type;
this.color = color;
this.wheel = wheel;
}
//方法
public void showCar(){
System.out.println("这是一辆"+brand+"牌"+type+"型号"+color+"的小汽车");
System.out.println("车上搭载着"+wheel.brand+"牌的"+wheel.size+"尺寸"+wheel.color+"的车轮");
//空对象不要紧 但是空对象不能拿去用
wheel.run();//方法一定是对象调用的 谁的方法谁来调用 车轮的方法肯定是车轮的对象来调用 这行代码可以放在任何位置
}
}
package contains;
public class Wheel {
//属性
public String brand;//品牌
public int size;//尺寸
public String color;//颜色
//构造方法
public Wheel(){}
public Wheel(String brand,int size,String color){
this.brand = brand;
this.size = size;
this.color = color;
}
//方法
public void run(){
System.out.println("汽车能跑");
}
}
package contains;
public class RunMain {
public static void main(String[] args){
Car c = new Car("宝马","A4l","宝石蓝",new Wheel("宝马自制",400,"黑色"));
c.showCar();//展示汽车
}
}