java面向对象-封装

封装性在Java当中的体现

  1. 方法就是一种封装
    封装就是将一些信息隐藏起来,对外界不可见,方便调用。
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;
    }
}
  1. 关键字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返回。

猜你喜欢

转载自www.cnblogs.com/lishi-jie/p/11697447.html