封装性在Java当中的体现
- 方法就是一种封装
封装就是将一些信息隐藏起来,对外界不可见,方便调用。
public class Demo03ArrayLength {
public static void main(String[] args) {
int [] arrayB = {1,2,5,5,74,65,23,12,45,98};
int max = getMax(arrayB);
System.out.println(max);
}
// 封装一个方法,传入一个数组,返回最大值。
public static int getMax(int[] arrayB){
int max = arrayB[0];
for (int i = 1; i < arrayB.length; i++) {
if (max < arrayB[i]){
max = arrayB[i];
}
}
return max;
}
}
- 关键字private也是一种封装
private的作用:提高代码的安全性。
在定义一个成员变量的时候,有些超出变量的不符合实际的值需要被过滤掉。
例如:年龄被设置为负数,这个时候需要设置一道防护墙进行防护,让成员变量无法直接被访问。
public class Person {
String name;
int age;
public void method(){
System.out.println("姓名:" + name + "年龄为: " + age);
}
}
public class PersonDemo {
public static void main(String[] args) {
Person people = new Person();
people.name = "李四" ;
people.age = -20;
//不合理的数值设置
people.method(); //姓名:李四年龄为: -20
}
}
为了防止这种不合理的数值设置,声明private关键字,进行间接设置年龄,从未可以达到在方法中进行判断。
public class Person {
String name;
private int age;
// 使用setXXX进行设置,但是不能有返回值
public void setAge(int num){
// 进行判断过滤掉不合理数值
if (num < 0 || num > 100){
System.out.println("数值设置不合理");
}else {
age = num;
}
}
// 使用getXXX进行读取,不能有参数,必须有返回值
public int getAge(){
return age;
}
public void method(){
System.out.println("姓名:" + name + "年龄为: " + age);
}
}
特别声明:
对于布尔型类型,进行private声明的时候,setXXX规则不变,getter的时候要用isXXX而不能使用getXXX返回。