面向过程与面向对象
面向过程与面向对象都是软件开发中的一类编程风格、开发范式。
面向过程的程序设计思想 (procedure-Oriented Programming) , 简称POP
关注的焦点是过程:过程就是操作数据的步骤。如果某个过程的实现代码重复出现,那么就可以把这个过程抽取为一个函数。这样就可以大大简化冗余代码,便于维护。
典型的语言:C语言
代码结构:以函数为组织单位。
是一种“执行者思维”,适合解决简单问题。分析出解决问题所需要的步骤,然后把步骤一步一步实现。扩展能力差、后期维护难度较大。
面向对象的程序设计思想(Object Oriented Programming),简称OOP
关注的焦点是类:在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,用类来表示。
典型的语言:Java、C#、C++、Python、Ruby和PHP等
代码结构:以类为组织单位。每种事物都具备自己的属性和行为/功能。
是一种设计者思维,适合解决复杂问题。代码扩展性强、可维护性高。
面向过程与面向对象的区别
例子:乘坐电梯
面向过程:
1.打开电梯
2.乘坐电梯
3.走出电梯
面向对象:
分析对象:【人】【电梯】
【人】:1.【人】进入电梯 2.【人】操纵电梯 3.【人】走出电梯
【电梯】:1.【电梯】打开 2.【电梯】上声/下降 3.【电梯】关闭
面向对象
类与对象
类(Class)和对象(Object)是面向对象的核心概念
类:具有相同特征的事物的抽象描述,是抽象的、概念上的定义。
对象:实际存在的该类事物的每个个体,是具体的,因而也称为实例。
类=>抽象概念的人;对象=>实实在在的某个人
类=>汽车图纸;对象=>实际存在的一辆汽车,拥有类中定义的功能,可以被使用
类
类的结构:
变量:事物属性的描述(名词)
方法:事物的行为(可以做的事情动词)
构造方法:初始化对象
块:一段没有名称的代码块
内部类:即在类体中声明的类
第一步:发现类
这个总结的过程,其实是抽象化的过程。抽象出来某种事物的特征,可以归纳为一类。
第二步:发现类的共有属性(成员变量)
成员变量是定义在类中,方法体之外的变量。
成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。
成员变量可以被类中方法、构造方法和特定类的语句块访问。成员变量的作用范围为整个类体。
第三步:发现类的共有行为(成员方法)
对象
对象:是类的一个实例,是以类为模板在内存中创建的实际存在的实例。
对象的创建和使用
Car bm= new Car();
Car bm:使用Car类作为类型声明一个变量bm
new Car():使用new创建对象,然后调用Car类的构造方法初始化对象.=:将右边创建的对象地址赋给左边的bm变量
对象是类的一个实例,必然具备该类事物的属性和行为(即方法)。使用对象名.属性或对象名.方法的方式访问对象成员(包括属性和方法)
总结类和对象
类是一类事物的抽象概念,是一个模型.
对象是由这个模型所创造的,一个个具体存在的,实实在在存在的实例.
所以创建对象的过程也叫实例化对象.