简单示例:
所谓封装就是访问权限控制,这里的设置不允许调用者直接访问类的属性,使用private修饰,将属性藏起来
此时若创建对象,直接修改属性值,则会报错
想要对属性进行读写则需要在类中添加get/set方法
此时就可以进行属性的读写了
封装的体现:
属性的封装
方法的封装
构造函数的封装(单例模式)
将类的某些信息隐藏在类的内部,不让外部程序直接访问,而是提供操作数据的方法,这就是属性的封装性
封装的实现:
属性的封装:使用private修饰符修饰成员变量,然后根据需求定义getter或setter方法。
方法的封装:有些方法仅仅只是在类的内部使用,不希望外部程序调用它,通过private修饰即可。
构造函数的封装:使用private修饰构造器,不让外部程序创建类对象,在类内部实例化对象,并提供公共接口。形如单例模式。
开发建议:在定义类的时候,所有的属性都要用private封装,封装的属性如果需要被外部操作,提供对应的getter和setter方法。
举例代码
1. class Person{//属性封装,封装了age和name两个属性,提供了对应的getter和setter方法 private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 2. private void swap(int[]arr,int m, int n){ //方法的封装,只有内部方法才能调用 int temp=arr[m]; arr[m]=arr[n]; arr[n]=temp; } 3. public class JavaTest { public static void main(String[] args) { Person p1=Person.getPersonInstance(); } } class Person{ private Person(){} //构造器的封装 public static Person getPersonInstance(){ return new Person(); } }
封装的好处
只能通过规定方法访问数据
隐藏类数据的实现细节
方便修改实现
方便加入控制语句
可以修改属性的读写权限
本文作者为BUG之神,转载请注明。