面向对象:
面向对象本身是一种思想,而非一种编程算法。
例如:
面向对象:冰箱打开、冰箱存储、冰箱关闭
面向过程:打开冰箱、将大象放进去、关闭冰箱门
面向过程思想:强调的是过程(动作及函数)
面向对象思想:强调的是对象(实体)
面向过程:C语言
面向对象:java、c++、c#、Python
面向对象:
1. 符合人们的思考习惯
2. 将复杂问题简单化
3. 让曾经在面向过程之中的执行者变成面向对象中的指挥者
类和对象之间的关系:
1. 类是模型 对象是该模型的实体(例如汽车的制造过程)
2. 用java语言对现实生活中的事物进行描述(通过类的形式来体现的)
3. 对于事物描述通常只关注两方面,即属性和行为(有四个轱辘、能跑)
4. 只要明确该事物的属性和行为并定义在类中即可
对象:
1. 其实就是该类实实在在存在的个体,通过new创建
2. 在写程序之前一定要先分析,例如写汽车的类
1)要先分析汽车有哪些属性(颜色、轮胎数),有哪些行为(运行)
2)然后在具体的实例化
内存:堆内存(存储对象)、栈内存(存储临时变量)
对象的内存体现:在堆内存中
对象的出现:为封装数据,和数组类似
局部变量和成员变量:
1. 成员变量定义在类中,整个类中都可以访问
2. 局部变量定义在方法中,语句中,局部代码块中,在所属的区域有效
3. 成员变量存在于堆内存的对象中
4. 局部变量存在于栈内存的方法中
5. 成员变量随着对象的创建而创建,随着对象的消亡而消亡
6. 局部变量是随着自己所属的区域变化
7. 成员变量都有默认初始化值,局部变量没有初始化值
8. 局部变量和成员变量同名:局部变量将屏蔽成员变量
注意:编程序一定要注意代码的清晰简洁,代码复用性
函数间参数传递分为引用参数传递(堆)和基本参数传递(栈);注意当对象做参数的时候,也是引用参数传递类型
封装:
1. 在面向对象中是指隐藏对象的属性和实现细节,仅对外提供公共访问接口
2. 提高安全性,对外提供访问接口的目的是因为属性可控
实例:电脑主机
如属性的get和set方法,在开发过程中,一般成员变量都是私有的,并且一定会伴有get和set方法