面向对象第一篇

1.封装

  • 属性私有
  • 对外提供公有的getter/setter
  • Fruit的例子
package com.soft1841.week7;

/**
 * 水果类
 */
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;
    }
}

package com.soft1841.week7;

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);
    }
}

2.类之间的关系

  • 纵向关系:比较清晰

    • 继承:父子关系——extends
    • 实现:类对接口的实现——implements
  • 横向关系:取决于语义

    • 依赖
      • 双方的地位往往是独立平等的(地位)
      • 是偶尔的、临时性的、不频繁的(依赖程度)
      • 代码层面的表现形式而言,往往是局部的变量
        • 类B以参数的形式传入类A的方法。
        • 类B以局部变量的形式存在于类A的方法中。
        • 类A调用类B的静态方法。
      • 员工和游轮
    • 关联
      • 双方的地位往往是独立的、平等的(地位)
      • 是长期的、稳定的、频繁的(依赖程度)
      • 代码层面的表现形式而言,关联往往以全局属性的形式存在
      • 员工和手机
    • 聚合
      • 双方的地位不是平等的,是整体和部分之间的关系(地位)
      • 是长期的、稳定的、频繁的,这种关系比关联更强,以至于在形式上出现了整体和部分之间的关系。整体和部分都有自己的生命周期,一方的消失另外一方不会跟着消失。(依赖程度)
      • 代码层面的表现形式而言可参考关联
      • 公司和员工
    • 组合
      • 双方的地位不是平等的,是整体和部分之间的关系(地位)
      • 比聚合更强,部分的生命周期取决于整体,部分随着整体的消失而消失(依赖程度)
      • 代码层面的表现形式而言可参考关联
      • 区分是聚合还是组合的核心点是在生命周期
      • 公司和部门
  • 参考文章:点这里

你可能感兴趣的:(面向对象第一篇)