类的关系:
纵向:
继承:父子关系——extends
实现:类对接口的实现——implements
横向:
依赖:
双方的地位往往是独立平等的(地位)
是偶尔的、临时性的、不频繁的(依赖程度)
代码层面的表现形式而言,往往是局部的变量
eg:员工和游轮
关联:
双方的地位往往是独立的、平等的(地位)
是长期的、稳定的、频繁的(依赖程度)
代码层面的表现形式而言,关联往往以全局属性的形式存在
eg:员工和手机
聚合:
双方的地位不是平等的,是整体和部分之间的关系(地位)
是长期的、稳定的、频繁的,这种关系比关联更强,以至于在形式上出现了整体和部分之间的关系。
整体和部分都有自己的生命周期,一方的消失另外一方不会跟着消失。(依赖程度)
代码层面的表现形式而言可参考关联
eg:公司和员工
组合:双方的地位不是平等的,是整体和部分之间的关系(地位)
比聚合更强,部分的生命周期取决于整体,部分随着整体的消失而消失(依赖程度)
代码层面的表现形式而言可参考关联
区分是聚合还是组合的核心点是在生命周期
eg:公司和部门
封装
封装是面向对象编程的核心思想。封装的载体是类,对象的属性和行为被封装在这个类中。
*** 水果类 */
public class Fruit {
//名称
public String fruitName;
//价格 private double fruitPrice;
//产地
protected String origin;
public double getFruitPrice() { return fruitPrice;
}
public void setFruitPrice(double fruitPrice) { this.fruitPrice = fruitPrice;
}
}
public class FruitApp { public static void main(String[] args) {
Fruit fruit = new Fruit();
fruit.fruitName = "苹果";
System.out.println(fruit.fruitName);
fruit.setFruitPrice(8.8);
System.out.println(fruit.getFruitPrice());
fruit.origin = "山东烟台";
System.out.println(fruit.origin);
}
}
继承
子类继承父类,可以继承父类原有的属性和方法,也可以增加其他的属性和方法,可以直接重写父类中的某些方法。