A has-a B 包含(组合 聚合 关联)
    一个类的对象有另一个类的对象作为属性

    组合——-相当于人和大脑 人和心脏的关系
    整体和部分的关系 不可分割 要出现都出现 要消亡都消亡

    聚合——-汽车和轮子的关系 电脑和主板
    整体和部分的关系 可以分割 创建时有可能是分开的

    关联——-人有汽车 人有电脑
    整体和部分的关系 可以分割 不是一开始就有的 是后来形成在一起的

    1. package contains;
    2. //package和import同时出现的话要先写package
    3. //且package只能写一个 import可以有多个
    4. public class Car {
    5. //属性
    6. public String brand;//汽车品牌
    7. public String type;//型号
    8. public String color;//颜色
    9. public Wheel wheel;//车有轮子---->包含关系
    10. //构造方法
    11. public Car(){}
    12. public Car(String brand,String type,String color,Wheel wheel){
    13. this.brand = brand;
    14. this.type = type;
    15. this.color = color;
    16. this.wheel = wheel;
    17. }
    18. //方法
    19. public void showCar(){
    20. System.out.println("这是一辆"+brand+"牌"+type+"型号"+color+"的小汽车");
    21. System.out.println("车上搭载着"+wheel.brand+"牌的"+wheel.size+"尺寸"+wheel.color+"的车轮");
    22. //空对象不要紧 但是空对象不能拿去用
    23. wheel.run();//方法一定是对象调用的 谁的方法谁来调用 车轮的方法肯定是车轮的对象来调用 这行代码可以放在任何位置
    24. }
    25. }
    1. package contains;
    2. public class Wheel {
    3. //属性
    4. public String brand;//品牌
    5. public int size;//尺寸
    6. public String color;//颜色
    7. //构造方法
    8. public Wheel(){}
    9. public Wheel(String brand,int size,String color){
    10. this.brand = brand;
    11. this.size = size;
    12. this.color = color;
    13. }
    14. //方法
    15. public void run(){
    16. System.out.println("汽车能跑");
    17. }
    18. }
    1. package contains;
    2. public class RunMain {
    3. public static void main(String[] args){
    4. Car c = new Car("宝马","A4l","宝石蓝",new Wheel("宝马自制",400,"黑色"));
    5. c.showCar();//展示汽车
    6. }
    7. }