二java的封装详解

BUG之神 16

简单示例:

所谓封装就是访问权限控制,这里的设置不允许调用者直接访问类的属性,使用private修饰,将属性藏起来

二java的封装详解

此时若创建对象,直接修改属性值,则会报错

二java的封装详解

想要对属性进行读写则需要在类中添加get/set方法

二java的封装详解

此时就可以进行属性的读写了

二java的封装详解

封装的体现:

属性的封装

方法的封装

构造函数的封装(单例模式)

将类的某些信息隐藏在类的内部,不让外部程序直接访问,而是提供操作数据的方法,这就是属性的封装性

封装的实现:

属性的封装:使用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();

 }

}

 

 

封装的好处

只能通过规定方法访问数据

隐藏类数据的实现细节

方便修改实现

方便加入控制语句

可以修改属性的读写权限

 

 

分享