程序实现的角度:面向过程的角度,自低而上,纵向联系
把业务逻辑从具体的编程技术当中抽象出来的过程,而这个抽象的过程是自上而下的,非常符合人类的思维习惯,也就是先不考虑问题解决的细节,把问题的最主要的方面抽象成为一个简单的框架,集中精力思考如何解决主要矛盾,然后在解决问题的过程中,再把问题的细节分割成一个一个小问题,再专门去解决细节问题。
结构化:演绎的分析过程(自顶而下)
设计:先部分后整体
面向对象:先整体后部分的过程(自底而上)
设计:
自底向上设计:先设计一些较下层的程序,即去解决问题的各个不同的小部分,然后把这些部分组合成为完整的程序。
自顶向下设计:先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决。这样逐层、逐个地进行定义、设计、编程和测试,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。
面向对象关注什么?关注的是对象的行为,面向对象是使用行为来对对象进行分类的!在面向对象中派生类为什么能够替换基类(替换原则),不是因为派生类是一个基类,而是因为派生类具有与基类一致的行为,在派生类与基类的行为不一致的情况下派生类仍然是一个基类(如果有人敢否认这个,大家说怎么办?旁边有人喊道:砍死他!),但是这个时候派生类消减了基类的行为,违背了替换原则,
面向对象是一种思想,是我们考虑事情的方法,通常表现为我们是将问题的解决按照过程方式来解决呢,还是将问题抽象为一个对象来解决它。
面向对象的技术的出现就是因为软件的规模和复杂度不断扩大,导致
了软件开发的危机,人们终于认识到人脑的分析和理解能力是有限度的。
面向对象的思想的出现就是软件开发界的一次“反朴归真”,犹如金庸小说
中张三丰教无忌太极拳一样,“忘掉一切,你就领悟太极的真谛了”,哈哈,
说得有点玄。
其实面向对象技术就是要软件开发者从技术层面向管理层面倾斜,以宏观的眼光
看待系统。
要以面向对象的方法进行系统的分析,愚以为:
1。了解系统的功能。列举出它的对外接口,即对于使用者来说它有什么功能。把这整个系统作为一个对象。
2。环境。系统不是运行在真空中的,操作系统等外部环境都可能会影响它。所以把环境也作为一个大的对象。
3。内部。在系统的内部,一般都比较复杂,一般的做法是规定一个粒度,枚举出该粒度上所有的物体。比如说人体,如果在器官的粒度上,就有心,肝,肺。而小于该粒度的物体(或称对象),比如血细胞,就忽略,作为其它物体(或称子系统的内部对象)。
4。子系统。不断缩小粒度,沿用步骤1~3,直到不能再抽象为止。
5。无形的物体。一个完整的互连的系统需要许多无形的物体,比如消息等了,一般这样的对象比较难发现。当你发现各个子系统无法正确合作或理顺关系时,试着加入一些辅助对象。
一个世界,可以完全由对象组成,而将算法所基于的
世界只用对象表现出来,再进行后续代码的编写,这种编程方法就被称作面向对象的编程思想
面向过程:设计方法强调从软件的功能特性出发来思考问题,使用面向过程会在不同的级别上,把系统分为多个功能模块,同时尽量确保模块之间的耦合度最小
面向对象:软件系统尽可能的模拟现实世界的事物,按照现实世界中的客观规律来组织和实现软件产品
数据代表对象的状态,操作代表对象对内、外部环境变化的响应方式
面向对象是围绕对象和类来分析、设计软件系统的
面向对象分析:模型侧重于描述我们需要解决的问题是什么
编程语言:
1.脚本语言:应用于客户端运行的脚本语言
2.C#与JAVA:
--思想相同,形式不同
--都具有一定的标准
--语法的表现的实质是相同的,但表现形式有所差异
Java更加注重面向对象, 更加注重标准化和完美化. 于是, Java有了Eclipse, 有了JSP、Serverlet、EJB, 有了Spring、Structs、Hibernate...
C#更加注重实用性和易用性, 它封装的更多一些. 于是C#有了VisualStudio, 有了ASP.Net、WinForm App、CommandLine App、WCF、WPF、WF、EntityFramework...
面向对象:
1.类是对象概念在面向对象编程语言中的反映,是相同对象的集合,是一种数据结构,它可以包含数据成员(常量和域)、函数成员(方法、属性、事件、索引器、运算符、实例构造函数、析构数和静态构造函数)和嵌套类型。
2.类相当于一种模板
3.对象包含变量成员和方法类型,它所包含的变量组成了存储在对象中的数据,而其包含的方法可以访问对象的变量(算法与数据结构被看做一个整体,称做对象,程序=对象+对象+……)
4.对象的属性与操作
5.类的性质:
a.类的类型支持继承,继承是一种使派生类可以对基类进行扩展和专用化的机制。
b.封装性:类是属性和方法的集合,为了实现某项功能而定义类后,开发人员并不需要了解类体内每句代码的具体含义,只需通过对象来调用类内某个属性或方法即可实现某项功能,这就是类的封装性。
c.多态性:类的多态性指不同的类进行同一操作可以有不同的行,例如,定义一个火车类和一个汽车类,火车和汽车都可以移动,说明两者在这方面可以进行相同的操作,然而,火车和汽车移动的行为是截然不同的,因为火车必须在铁轨上行驶,而汽车则在公路上行驶,这就是类多态性的形象比喻。
6.类和对象是紧密结合的,类是对象总体上的定义,而对象是类的具体实现。创建类对象时需要使用关键字new
程序(Program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合
软件(中国大陆及香港用语,台湾作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。
应用软件是为了某种特定的用途而被开发的软件
脚本语言的思维方式:
----认识脚本语言的基本结构:
----每一个部分应该以什么样的思维角度去思考:BOM(窗口设计)、DOM(节点的形式)
----基于对象的语言:通过把其它语言所创建的复杂对象统一起来从而形成一个非常强大的对象系统,基于对象就是我们时常所说的,所有事物都是对象。也就是用类来表达我们的程序,基于对象,意味着它们有像c++的结构加函数这样的对象,然而这只是到达面向对象语言的一部分,停留在把函数捆绑在结构内部的语言是基于对象的
2.执行的特点:
///内化知识的概念:
///代码的特点:从局部看与从整体看,对比看,分类看、、、、、、、、
3.对象系统:
----脚本语言中有许多的对象集合,只是使用有的对象而不能派生对象
----脚本是纯粹的语言,只是阐述对象如何构成程序
4.
-----延伸到编程就是,写个程序,可以让一个人从代码的第一行开始像汇编一样一行一行写到最后,也可以分工,让一个人专门写一个功能,另一个专门写另一个功能,在面向对象的程序思想中,把不同的功能叫做不同的“类”,其实和函数的概念很像,不过比函数更方便多人开发。
----软件设计“现实世界是什么,在程序中就应当是什么”