一.面向对象
1.面向对象的和面向过程的思想
- 面向过程的程序设计方式:遇到一件事时,思考“我该怎么做”,然后一步步实现的过程
- 面向对象的程序设计方式:遇到一件事时,思考“我该让谁来做”,然后那个“谁”就是对象,他要怎么做这件事是他自己的事,反正最后一群对象合力能把事就好就行了
2.面向对象的好处
面向对象思维方式是一种更符合人们思考习惯的思想
面向过程思维方式中更多的体现的是执行者(自己做事情),面向对象中更多的体现是指挥者(指挥对象做事情)。
面向对象思维方式将复杂的问题简单化。
二.类与对象
1.定义类的格式
public class 类名 {
//可编写0至n个属性
数据类型 变量名1;
数据类型 变量名2;
//可编写0至n个方法
修饰符 返回值类型 方法名(参数){
执行语句;
}
}
- 类中的属性称为成员变量
- 类中的方法称为成员方法
2.面向对象的内存图
3.类和对象的关系
类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体
4.成员变量和局部变量的区别
对比内容 | 成员变量 | 局部变量 |
---|---|---|
定义位置 | 定义在类中的变量是成员变量 | 定义在方法中或者{}语句里面的变量是局部变量 |
内存位置 | 成员变量存储在堆内存的对象中 | 局部变量存储在栈内存的方法中 |
生命周期 | 成员变量随着对象的出现而出现在堆中,随着对象的消失(JVM释放)而从堆中消失 | 局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失 |
初始化默认值 | 成员变量因为在堆内存中,有默认的初始化值 | 局部变量没有默认值,不赋值不能使用 |
作用域 | 整个类 | 方法中 |
5.方法参数是基本数据类型和引用数据类型
三.封装
1.面向对象的三大特征
- 封装
- 继承
- 多态
2.封装表现
- 方法就是最基本的封装体
- 类其实也是一个封装体
3.封装的好处
- 提高代码的复用性
- 隐藏实现细节,对外提供可访问的方式
- 提高安全性
4.private关键字
- 可以用private修饰成员变量和成员方法
- 被private修饰的内容不能在其他类访问
5.get和set方法
- 一般对成员属性的访问动作:赋值(设置 set),取值(获取 get),因此对私有的变量访问的方式可以提供对应的 setXxx或者getXxx的方法
- 通常描述事物,属性都私有化,并提供getXxx和setXxx方法进行访问
6.this关键字—区分成员变量和局部变量的同名
当类中存在成员变量和局部变量同名的时候为了区分,就需要使用this关键字
this代表的是对象,哪个对象调用的,this就表示哪个对象
this什么时候存在?当创建对象的时候,this就存在
this内存图