面向对象分析和设计笔记——第1章

1.什么是面向对象的思考方式?

  [1]在对世界/系统 进行 观察/建模的时候,把它们看成是由一系列相互交流、互为影响的对象集(a set of objects);

   即,1)世界是由相互作用的对象组成的;2)描述与构建由对象组成的系统(对象是怎么工作的?);

   “软件系统是由多个对象组成的,对象间通过信息相互交流、共同协作,以完成整个系统的功能”;

  [2]面向对象的思考方式适合解决不确定的事件、创新性的事件;如,篮球场上的每个队员的位置;

   面向过程的思考方式适合解决已知的事实、重要条件都已知的场景;如,生产线上的每个产品的位置;

  [3]面向对象的核心基本特征是构成面向对象思想的基本元素,包括:

   Object/class;

   Method/Message;

   Encapsulation; 封装与接口通信,封装与对象解耦,封装与访问权限;

   Inheritance;继承,is a;继承与抽象;

    Interface/Implement; 接口与类,接口与对象解耦;

   Polymorphism; 多态与继承,多态与指针;

   Composition/Aggregation; 组合/聚合,has a;强调整体控制部分/传递性和不对称性;

   Abstraction;抽象与发现类,抽象与扩展性,抽象与可移植性;

注:多态与继承的例子:

1 public abstract class Shape{
2     private double area;
3     public abstract double getArea();
4 }
public class Circle extends Shape{
    double radius;
    public Circle(double r){
        radius = r;
    }
    public double getArea(){
        area = 3.14*(radius*radius);
        return(area);
    }
}
public class Rectangle extends Shape{
    double length;
    double width;
    public Rectanfle(double l, double w){
        length = l;
        width = w;
    }
    public double getArea(){
        area = length*width;
        return (area);
    }
}
1 Circle circle = new Circle(5);
2 Rectangle rectangle = new Rectangle(4,5);
3 stack.push(circle);
4 stack.push(rectangle);
5 
6 while(!stack.empty()){
7     Shape shape = (Shape)stack.pop();
8     System.out.println("Area = "+ shape.getArea());
9 }

注:接口与实现的例子;

 TV是用户、插座是接口、发电厂是实现;

虚线箭头表示依赖关系,虚线三角表示实现关系;

猜你喜欢

转载自www.cnblogs.com/li7anStrugglePath/p/12736650.html