面向对象和面向过程的区别:
**面向过程:**主要关注点是:实现的具体过程,因果关系【集成显卡的开发思路】
优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低
缺点:采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的方式导致软件元素之间的‘耦合度’非常高,只要其中一环出问题,整个系统受到影响,导致最终的软件“扩展力”差。另外,由于没有独立体的概念,所以无法达到组件复用
**面向对象:**主要关注点是:主要关注对象【独立体】能完成哪些功能。【独立显卡的开发思路】
优点:耦合性低,扩展力强。更容易解决现实世界当中更复杂的业务逻辑。组件复用性强。
缺点:前期投入成本较高,需要进行独立体的抽取,大量的系统分析与设计。
面向对象的分析:OOA
面向对象的设计:OOD
面向对象的编程:OOP
类和对象的概念
什么是类?
类在现实世界当中是不存在的,是一个模板,是一个概念。是人类大脑思考抽象出的结果。
类代表了一类事物。
在现实世界当中,对象A与对象B之间具有共同特征,进行抽象总结出一个模板,这个模板被称为类
什么是对象
对象是实际存在的个体。现实世界当中实际存在。
描述一下整个软件开发的过程:
程序员先观察现实世界,从现实世界当中实际存在
寻找了N多个对象后,发现所有的对象都有共同特征
程序员在大脑中形成了一个模板【类】
java程序员可以通过java代码来表述一个类
java程序中有了类的定义
然后通过类就可以创建对象,有了对象之后,可以让对象直接协作起来形成一个系统
重点:
类描述的是对象的共同特征。共同特征例如:身高特征这个身高特征在访问的时候,必须先创建对象,通过对象去访问这个特征因为这个特征具体在某个对象上之后的值不同。有的对象身高1.80,有的对象身高身高2.80
一个类主要描述什么信息呢?
一个类主要描述的是 状态 + 动作,状态信息:名字,身高,性别,年龄,动作信息:吃,唱歌,跳舞,学习
状态--> 一个类的属性
动作--> 一个类的方法
* 类--【实例化】->对象
* 对象又被称为实例/instance
* 对象--【抽象】-->类
类{ 属性;//描述对象的状态信息 方法;//描述对象的动作信息 }
注意:
状态和动作当具体到某个对象之后,发现最终的结果可能不一样。
对象和对象之间有共同特征,但是具体到对象之后有数据的差异。
类的定义
语句结构:
[修饰符列表] class 类名{ 属性; 方法; }
学生类,描述所有学生对象的共同特征:
学生对象有哪些状态信息:
学号【int】
姓名【String】
性别【boolean】
年龄【int】
住址【String】
学生对象有哪些动作信息:
* 吃,唱歌,跳舞,学习
基本数据类型
byte
short
int
long
float
double
boolean
char
引用数据类型
String.class SUN提供
System.class SUN提供
Student.class 程序员自定义的
User.class 程序员自定义的
Product.class 程序员自定义的
Customer.class 程序员自定义的