只提出概念,需要三四年的开发经验才能彻底理解面向对象
从语言方面出发
对于C语言来说,是完全面向过程的
对于C++语言来说,是一半面向过程,一半面向对象
对于Java语言来说,是完全面向对象的
什么是面向过程的开发方式
面向过程的开发方式主要的特点
注重步骤,注重的是实现某个功能的步骤
第一步…
第二步…
….
另外面向过程也注重实现功能的因果关系
因为A所以B
因为B所以C
….
面向过程中没有对象的概念,只是实现这个功能的步骤以及因果关系
面向过程开发的缺点
面向过程最主要的是每一步与每一步之间的因果关系
其中A步骤因果关系到B步骤,A和B联合起来形成一个子模块
子模块和子模块之间有因为因果关系结合在一起
假设其中任何一个因果关系出现问题(错误),此时整个系统的运转都会出现问题。(代码和代码之间的耦合度太高,扩展力太差)
耦合度就是黏连程度
耦合度高导致扩展力差(类似电焊)(集成显卡)(板载储存/内存)
耦合度低导致扩展力强(类似螺栓与螺母)(独立显卡)(内存条/ssd)
面向过程开发的优点(快速开发)
对于小型项目(功能),采用面向过程的方式进行开发,效率较高
不需要前期进行对象的提取,模型的建立
采用面向过程的方式,一上来就可以直接写代码,编写因果关系
什么是面向对象的开发方式
面向对象就是将现实世界分割称不同的单元,然后每一个单元都实现成对象,然后给一个环境驱动以下,让各个对象之间协作起来形成一个系统
例如:
对象“张三”
对象“香烟”
对象“打火机”
对象“吸烟的场所”
然后将以上4个对象组合在一起,就可以模拟一个人吸烟的场景
其中“张三”可以更换成“罗翔”;“香烟”可以更换品牌;“打火机”可以更换为“防风打火机”;“吸烟的场所”也可以更换
采用面向对象的方式进行开发
耦合度低,扩展性强
采用面向对象的方式进行开发,更符合人类的思维方式(面向对象称为主流的原因)
人类就是以“对象”的方式去认识世界的
所以面向对象更容易让我们接受
面向对象和面向过程的区别
蛋炒饭
鸡蛋和米饭完全混合在一起。没有独立对象的概念。
如果客户提出需求:只想吃蛋炒饭中的米,怎么办br> 很难扩展,因为耦合度太高了
盖饭
鱼香肉丝盖饭
鱼香肉丝是一道菜,可以看作一个独立的对象
米饭可以看作一个独立的对象
两个对象准备好之后,只要有一个动作“盖”
两个对象就能组合在一起
如果客户提出新需求:西红柿鸡蛋盖饭
这个扩展更容易,把“鱼香肉丝”对象换成“西红柿鸡蛋”对象
面向过程主要关注的是:实现步骤,步骤之间的因果关系以及整个过程
面向对象主要关注的是:对象A,对象B,对象C,然后对象ABC组合,或者CBA组合…
面向对象开发
使用面向对象的方式开发,会将面向对象(OO)贯穿整个过程,一般包括
OOA:面向对象分析(Object-Oriented Analysis)
OOD:面向对象设计(Object-Oriented Design)
OOP:面向对象编程(Object-Oriented Programming)
面向对象的三大特征
面向对象包括三大特征:封装、继承、多态
任何一个面向对象的编程语言(如:python,Java)都包括这三个特征
类和对象
面向对象一词中,最主要一词是“对象”
类
类实际上在现实世界中是不存在的,是一个抽象的概念,是一个模板,人人类大脑进行思考、总结、抽象的结果
对象
对象也叫“实例”
对象是实际存在的个体
例如:明星是类,姚明、梁朝伟就是对象
“对象”属于“类”
在Java语言中,要想得到“对象”,必须先定义“类”
“对象”是通过“类”这个模板创造出来的
类是模板:类中描述的是所有对象的“共同特征信息”
对象是通过类创造的个体
通过类创建对象的过程可以称为“创建”,也可以成为“实例化”
由对象提取类的过程称为“抽象”
总结以上
类:实际不存在的,经过思考总结出的一个模板,这个模板描述了共同特征
对象:实际存在的个体
实例:对象的别称
实例化:通过类这个模板创建按对象的过程
抽象:多个对象居于共同特征,进行思考中抽取共同特征的结果
“共同特征”
对于“人类”这个“类”,其中的“对象”——“人”可以具有以下共同特征:
姓名
身高
体重
…
打篮球
学习
…
以上共同特征中
包括姓名、身体、体重等名词,属于状态特征
还包括打篮球、学习等动词,属于动作特征
Java软件工程师在开发中起桥梁的作用
为什么要做软件开发
为人民服务,解决现实生活中的问题
为了解决现实生活中的问题
Java软件首先要能够模拟现实世界
软件是虚拟世界
虚拟世界和现实世界一一对应,叫做模拟
Java软件工程师使软件和现实世界一一对应
Java软件工程师通过思考抽象出类,进而创建对象,使对象之间相互协作,形成系统
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树类和接口类和面向对象92131 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!