• N0---编程观念


    写在前面

    下面提到的计算任务、面向对象、声明式等,通常被叫做编程范式。

    但是我想总结的【观念】还有其他东西,所有统称为【观念】。

    需求vs硬件

    从需求看,软件是一种产品,要满足用户的某种需求。

    从硬件看,计算机本质上是一台会(数值化的)存储、(数字化的)计算、输入输出的机器。

    而编程,是联系需求和硬件的桥梁,通过告诉机器按怎样的步骤工作,来实现需求。

    从计算任务看编程

    1.程序=数据结构+算法。

    2.所以说,编程的核心问题有二。

    一是,选择合适结构存储数据。

    二是,对数据进行计算和操作。

    3.大大小小的程序都可抽象为【定义变量】【计算】【返回结果】三个部分。(Main函数也有参数和返回值,Main函数和它调用的那些函数构成了一棵函数树)

    程序可以说就是来描述变量是如何变化的。

    可以说【变量是编程世界的第一定义】

    4.基于以上事实,很多教科书都会先教你【变量类型】;然后教你【运算符+控制流】。

    你有了数据结构,又有了表达算法的语法,你就可以开始编程了。

    面向对象

    1.基本

    面向对象本质是人组织代码的一种方式。它能使代码更容易组织、理解、修改,也方便多人协作,但它对计算机的计算任务来说是没有意义的。

    在面向对象中,类是一类事物的抽象。

    类中的字段和方法是对事物的特征和行为的抽象。

    构造方法,是用来创造对象的。它通过赋不同的初值创造有差别的对象。

    2.继承和多态

    通过继承,子类可以保留父类的行为,也可以产生新的行为。

    子类可直接转为父类。------重写父类方法时------多子同父,由父类统一调同名方法,不同行为。

    父类可强制转为子类。------隐藏父类方法时------同一对象,改变辈分后调同名方法,不同行为。

    同一调用,不同实现,是为多态。

    如果没有继承机制,我们只能通过静态方法去重用代码。

    3.1红苹果问题

    红苹果是苹果的子类,还是颜色属性为红的苹果?这是一个根据经验区分事物的问题。生物学上分界门纲目,必然是经过长期观察比较后得出的。

    当然时间长了以后,我们能从中总结出合适的模式来。但是可能花更多时间。

    3.2.简单与复杂

    面向对象简化了事物的模型,复杂了事物之间的关系,并且允许凭空产生联系。

    如果设计的不好,会让代码更难懂。

    声明式编程

    SQL和C#中的Lambda都可以声明式的编程。

    在我看来,它有两个特点:

    1.函数嵌套。

    2.少写循环,因为有高阶函数。

    sql更接近自然语言。

    我最喜欢的

    程序=数据结构+算法。

  • 相关阅读:
    Linux学习笔记8——VIM编辑器的使用
    Linux学习笔记7——linux中的静态库和动态库
    Linux学习笔记6——映射虚拟内存
    Linux学习笔记5——虚拟内存
    Linux学习笔记4——函数调用栈空间的分配与释放
    C++中new和malloc
    Linux学习笔记3——Linux中常用系统管理命令
    Linux学习笔记2——Linux中常用文件目录操作命令
    python的基本语法
    11.3 自定义注解
  • 原文地址:https://www.cnblogs.com/fabao/p/8808054.html
Copyright © 2020-2023  润新知