类之间的关系【泛化关系、实现关系、依赖关系、关联关系、聚合关系、组合关系】

类之间的关系【泛化关系、实现关系、依赖关系、关联关系、聚合关系、组合关系】

这种是强依赖关系,举例是球员,头,腿,脚

1、类与类之间的继承关系,关键词是extends,具体在UML图上是generalization 是is a的关系

image-20220422104347856

image-20220422104023900

①父类

package classadpter;
//适配者接口
public class Adaptee {
	public void specificRequest() {
		System.out.println("适配这种的业务代码被调用!");
	}
}

②子类

package classadpter;

public class ClassAdapter extends Adaptee implements Target{
	@Override
	public void request() {
		// TODO Auto-generated method stub
		specificRequest();
	}
}

2、实现关系:类与接口的关系 implements 是has a 的关系

image-20220422104434729

image-20220422104215024

①接口

package classadpter;
//目标接口
interface Target {
	public void request();
}

②接口的实现类

package objectadapter;

public class ObjectAdapter implements Target{
    private Adaptee adaptee;
    public ObjectAdapter(Adaptee adaptee) {
        // TODO Auto-generated constructor stub
        this.adaptee = adaptee;
    }
    @Override
    public void request() {
        // TODO Auto-generated method stub
        adaptee.specificRequest();
    }

}

3、依赖关系:一个类使用了另一个类

举例是电视机和遥控器

image-20220422104457114

image-20220422104515428

①原来的类

public class TV {
	public void open(){
		
	}
	public void close(){
		
	}
	public void change(){
		
	}
 
}

②被依赖的类

public class Control {
	public void open(TV tv){
		tv.open();
	}
	public void close(){
		TV tv = new TV();
		tv.close();
	}
}

③测试类

public class TestTV {
	public static void main(String[] args) {
		TV tv = new TV();
		Control ct = new Control();
		ct.open(tv);
		
	}
 
}

4、关联关系

有一对一、一对多、多对多

举例是客户和订单、订单和商品

关联关系是长期的、强的、体现在代码上是B类做A类的成员变量


public class Product {


}

//订单类   --》订单中可以有N多商品

public class Order {

    // 在订单中有 N 多商品

    // 属性

    Product [] pros = new Product[1000];

}
image-20220422105144322

关联关系是长期的、强的、体现在代码上是B(Product)类做A(Order)类的成员变量,在图上是A(Order)类指向B(Product)类

5、聚合关系

这种关系类似于:球队、球员、队医、教练

image-20220422105247730
public class Player { // 球员


}

public class Coach {   // 教练


}


public class Doctor {   // 队医


}


public class Team {

    // 私有属性

    private Player p ;   // 球员

    private Coach c ; // 教练

    private Doctor d ; // 队医

}

6、组合关系

组合关系是部分与整体的关系,举例是球员、头部、腿部等

image-20220422105318176
public class Head { // 头


}

public class Leg {


}

public class Player { // 球员

    private Head head ;

    private Leg leg ;

}

8、总结

(1)extends

(2)implement

(3)类作方法的形参/局部变量 -->依赖

(4)类作方法的成员变量 -->(关联、聚合、组合)

posted @ 2022-04-22 10:59  记录学习Blog  阅读(206)  评论(0编辑  收藏  举报