第五章_Java中面向对象的三大特征之封装
封装
1. 什么是封装?
封装就是"合理隐藏,合理暴露";
基本实现:一般把成员变量(属性)隐藏起来,
提供方法进行合理的暴露访问
2. 如何进行封装
1.需要使用private 关键字修饰属性
–private:私有
–隐藏的含义、修饰的成员只能在类中被直接访问,否则报错
2.需要提供成套的公开的get 和 set 方法暴露成员变量的取值和赋值
–get: get + 成员变量 首字母大写的方法 返回该成员变量的值
–set: set + 成员变量 首字母大写的方法 对成员变量赋值
3. private关键字
概述 : private是一个修饰符,可以用来修饰成员(成员变量,成员方法)
特点 : 被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用, 提供相应的操作
提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰
注意事项
当成员变量与局部变量重名时,使用就近原则
当成员变量和局部变量重名的时候,使用this区分
代码演示:创建一个private修饰成员变量的学生类
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void play(){
System.out.println("会打篮球!");
}
}
public class Test_Student {
public static void main(String[] args) {
Student student = new Student();
student.setName("鸡哥");
student.setAge(20);
System.out.println(student.getName()+"..."+student.getAge());
student.play();
}
}
执行效果:
4. this关键字
概述 :
this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)
- 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
- 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量
作用:
this关键字的作用:(区分成员变量和局部变量)
1.可以调用本类的成员(变量,方法)
2.代表所在类的对象引用
方法被哪个对象调用,this就代表的哪个对象
内存原理:
总结:
-
this 在Java中代表当前地址的引用
-
this 在方法中,谁调用这个方法,就代表谁
-
this 在方法中可以区分变量的访问,区分同名的变量是成员变量还是局部变量,从而实现了局部变量的见名知意,又不会和成员变量冲突
5. 封装的规范
一般成员变量隐藏,
成员方法暴露,并提供get ,set 技术暴露成员变量
6. 封装的作用
通过方法来控制成员变量的操作,提高代码的安全性
把代码用方法进行封装,提高代码的组件化和复用性。
总结:
封装:
1.把代码放到方法中,方法放到类中
2.封装原则:
将类的某些信息隐藏在类的内部,不允许外部程序直接访问
如:成员变量使用private修饰,
同时提供get set 方法
3.封装的好处:
通过方法来控制成员变量的操作,提高代码的安全性
把代码用方法进行封装,提高代码的复用性