• 面向对象分析和设计笔记——第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是用户、插座是接口、发电厂是实现;

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

  • 相关阅读:
    set, unordered_set模板类
    C/C++ Bug记录
    win10远程连接
    C/C++缓冲区刷新问题
    hihocoder1711 评论框排版[并查集+set]
    makefile
    Virtual Table
    粤语
    xilinx SDK开发 GPIO使用API总结
    基于zynq 7020的串口UART中断实验
  • 原文地址:https://www.cnblogs.com/li7anStrugglePath/p/12736650.html
Copyright © 2020-2023  润新知