第五天总结
面向对象的思想
- 面向对象思想特点
1:可以将复杂的事情简单化
2:将我们从执行者变成了指挥者
角色发生了转换 - 面向对象特征
封装(encapsulation)
继承(inheritance)
多态(polymorphism).
类与对象及其应用
- 类:是一组相关的属性和行为的集合
- 对象:是该类事物的具体体现
- 定义类其实就是定义类的成员(成员变量和成员方法)
1:成员变量 和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
2:成员方法 和以前定义方法是一样的,只不过把static去掉
成员变量和局部变量的区别
- 在类中的位置不同
成员变量:在类中方法外面
局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中) - 在内存中的位置不同,可以看看Java程序内存的简单分析
成员变量:在堆中(方法区中的静态区)
局部变量:在栈中 - 生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用或者代码块的执行而存在,随着方法的调用完毕或者代码块的执行完毕而消失 - 初始值
成员变量:有默认初始值
局部变量:没有默认初始值,使用之前需要赋值,否则编译器会报错(The local variable xxx may not have been initialized)
匿名对象
- 什么是匿名对象
就是没有名字的对象 - 匿名对象应用场景
1:调用方法,仅仅只调用一次的时候。
2:匿名对象可以作为实际参数传递
封装(private)
- 封装概述
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。 - 封装好处
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性。 - 封装原则
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
this关键字
- this关键字特点
是当前类的对象引用。
简单说,它就代表当前类的一个对象。谁调用这个方法,那么该方法的内部的this就代表谁 - this的应用场景
解决局部变量隐藏成员变量
构造方法
- 构造方法概述和作用
创建对象,给对象中的成员进行初始化 - 构造方法格式特点
1:方法名与类名相同
2:没有返回值类型,连void都没有
3:没有具体的返回值 - 构造方法注意事项
a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法。
b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
对象的创建步骤
1.以此为例 Student s = new Student();
步骤:
(1):加载Student.class文件进内存
(2):在栈内存为s开辟空间
(3):在堆内存为学生对象开辟空间
(4):对学生对象的成员变量进行默认初始化
(5):对学生对象的成员变量进行显示初始化
(6):通过构造方法对学生对象的成员变量赋值
(7):学生对象初始化完毕,把对象地址赋值给s变量