概述:
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在java中通过关键字private,protected和public实现封装
好处:
- 隐藏实现细节,提供公共的访问方式
- 提高了代码的复用性
- 提高安全性
封装原则:
- 将不需要对外提供的内容都隐藏起来。
- 把属性隐藏,提供公共方法对其访问
private关键字
是一个权限修饰符。
可以修饰成员(成员变量和成员方法)
被private修饰的成员只在本类中才能访问。
private最常见的应用:
把成员变量用private修饰
提供对应的getXxx()/setXxx()方法
一个标准的案例的使用
This关键字
This:代表所在类的对象引用,方法被哪个对象调用,this就代表哪个个对象。
局部变量隐藏成员变量的时候使用this
构造方法
构造方法的作用就是给对象的数据进行初始化。
构造方法的格式:方法名与类名相同,没有返回值类型,连void都没有,没有具体的返回值。
如果不提供构造方法,系统会给出默认构造方法,如果你提供了构造方法,系统将不再提供,构造方法也是可以重载的
类的成员方法
方法具体划分:
根据返回值
- 有明确返回值方法
- 返回void类型的方法
根据形式参数
- 无参方法
- 带参方法
一个基本类的标准代码写法
类:
- 成员变量
- 构造方法:无参构造方法、带参构造方法
- 成员方法:getXxx()、setXxx()
给成员变量赋值的方式:
- 无参构造方法+setXxx()
- 带参构造方法
类的初始化过程
Student s = new Student();
在内存中:
- 加载Student.class文件进内存
- 在栈内存为s开辟空间
- 在堆内存为student对象开辟空间
- 对student对象的成员变量进行默认初始化
- 对student对象的成员变量进行显示初始化
- 通过构造方法对student对象的成员变量赋值
- Student对象初始化完毕,把对象地址赋值给s变量