封装性

发布时间 2023-08-02 15:07:20作者: 你闯进我的星球

高内聚,低耦合

高内聚:类的内部数据操作细节自己完成,不允许外部干涉

低耦合:仅对外暴露少量的方法用于使用

封装性

隐藏对象内部的复杂性,只对外暴露一个简单的接口(API),便于外界调用,从而提高系统的可扩展性、可维护性

体现:

  • 将类的属性私有化,并提供公共的方法来获取和设置该属性的值。
class Test{
    public static void main(){
        Math a = new Math();
        a.num = 10;//报错,num私有化,num只有Math类内才能被直接访问
        a.setNum(9);//通过公开的方法实现对num的访问,并可借构造方法对num的取值进行限制
        int n=a.getNum();
    }
    
}

class Math{
    private int num;
    //规定num的取值范围:0<num<100
    public void setNum(int i){
        if(i>0&&i<100){
            num=i;
        }
        else{
            System.out.println("输入范围错误!");
        }
    }
    public int getNum(){
        return num;
    }
}
  • 将类中的方法私有化,外界只能访问公开的方法,实现对私有化方法的隐藏

    比如有一个实现两个元素交换的方法,还有其他的一系列排序方法,将元素交换方法私有化,外界只能看到排序方法,而不能看到排序方法中使用到的二元素交换方法。

  • 单例模式

权限修饰符

public、缺省、protected、public

修饰符 类内部 同一个包 不同包的子类 同一个工程
static 可以
(缺省) 可以 可以
protected 可以 可以 可以
public 可以 可以 可以 可以

四种权限修饰符可以修饰类及类的内部结构(方法、属性、构造器、内部类)

类(非内部类)只能用缺省/public修饰