1、特点
封装是面向对象的核心思想,两层含义:一是一个整体(把对象的属性和行为看成一个整体,即封装在一个对象种),二是信息隐藏,对外隐藏,但可以通过某种方式进行调用。
2、访问权限
(1)private:当前类访问级别,属于私有访问权限。
(2)default:本包访问权限,一个类中的属性或方法没有任何访问权限声明。
(3)protected:本包及不同包的子类访问。
(4)public:所有类种被访问,属于公共访问权限。
3、如何封装
如果不使用封装,直接调用属性或者方法,会导致出现多种可能,比如说我们在一个类中定义了一个属性 :年龄。它是对外暴露的,那么它的值可以是负数,零或者更大,为了避免这种情况,我们采取了封装。
封装的就是使用上诉的访问权限对属性和方法进行修饰,用private关键字将其私有化。private修饰的只能在本类中可以被使用,要是想要在别的类中调用,就需要用到set和get方法来设置和获取属性值。
定义一个Student类,用private修饰id和gender,对应写出它们的get/set方法 ,每个属性都会有对应的get/set方法。
public class Student {private int id;private char gender;public int getId() {return id;}public void setId(int id) {this.id = id;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}
}
这时候如果我们在别的类直接调用Student类的属性,会报错。
用了private修饰,是无法调用的,我们可以通过set/get来设置获取。
public class Test {public static void main(String[] args) {Student student = new Student();student.setId(1);student.setGender('男');int id = student.getId();char gender = student.getGender();System.out.println(id);System.out.println(gender);}
}
运行结果
1
男