## 面向对象的封装性 ##
#### 1、介绍 ####
> a)封装性在Java中的体现
> 1.方法就是一种封装
> 2.关键字private也是一种封装
> b)使用private定义变量时要注意,变量只能在本类中访问,在其他类中不能访问,不过可以间接访问private变量,就是定义Setter / Getter方法,可以提高代码安全性
> 示例代码↓
//a06_面向对象封装性.java
public class a06_面向对象封装性 {
public static void main(String[] args) {
a06_面向对象封装性01 stu = new a06_面向对象封装性01();
stu.name = "jack";
// stu.age = 18 //private关键字使其不能访问
stu.off01();
stu.setAge(-22);
System.out.println("修改后:" + stu.getAge());
}
}
//a06_面向对象封装性01.java
public class a06_面向对象封装性01 {
String name;
private int age = 20;
public void off01(){
System.out.println(name);
System.out.println(age);
}
// 这个方法专门用于设置age数据
public void setAge(int num){
if (num < 100 && num > 0){
age = num;
}else {
System.out.println("数据不合理!");
}
}
// 这个方法专门用于获取age数据
public int getAge(){
return age;
}
}
![在这里插入图片描述][20200726155155222.png]
#### 2、练习使用private关键字 ####
> 对于基本类型当中的Boolean值,getter方法一定要写成isXxx的形式,getXxx规则不变
#### 3、this关键字 ####
> 当方法局部变量和类的成员变量重名时候,根据就近原则优先使用局部变量
> 如果需要访问本类当中的成员变量,需要使用格式`this.成员变量名`
> “通过谁调用的方法,谁就是变量名”
相关代码:
//a07_this关键字.java
public class a07_this关键字 {
public static void main(String[] args) {
a07_this关键字01 stu = new a07_this关键字01();
stu.name = "lucy";
stu.stu01("jack");
}
}
//a07_this关键字01.java
public class a07_this关键字01 {
String name;
public void stu01(String name){
System.out.println("成员变量名:" + this.name);
System.out.println("方法参数名:" + name);
}
}
![在这里插入图片描述][20200726164105892.png]
[20200726155155222.png]: /images/1613552183290.png
[20200726164105892.png]: /images/1613552145544.png