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

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

  • 相关阅读:
    关于控制地址控件的代码
    获取某个设计项列表界面上查询框中的值的代码
    js中不同值的替换
    js截取字符串方法实例
    抛异常语句的种类及区别
    从获取结果中去除重复记录
    泛微E8升级E9代码修改
    中控考勤数据转换
    WEB打印,分页首行自动带出栏目标题
    VS附加进程调试IIS网站
  • 原文地址:https://www.cnblogs.com/li7anStrugglePath/p/12736650.html
Copyright © 2011-2022 走看看