📜  Java-封装(1)

📅  最后修改于: 2023-12-03 15:01:34.867000             🧑  作者: Mango

Java-封装

封装是Java面向对象编程中的一种基本特性,也是面向对象编程的三大特性之一,另外两种为继承和多态。封装能够提高代码的安全性和可维护性,防止数据被意外地改变。

什么是封装

封装是指将类中的属性和方法进行访问限制,对于其他类只能通过特定的方式才能访问或修改类的状态。Java中的封装是通过访问修饰符实现的。

类的访问修饰符

Java中的访问修饰符共有四种:public、protected、default和private。

  • public:任何类都可以进行访问。
  • protected:同一包内的其他类可以访问,但是其他包中的类只有继承了该类的子类才可以访问。
  • default:只能被同一包的其他类访问。
  • private:只能被同一个类内部访问。

除此之外,Java中还有一种特殊的访问修饰符——final,用于修饰类、变量和方法,表示它们的值或实现不能被更改。

封装的优点

封装带来了以下几个优点:

  1. 安全性:封装可以防止数据被外部类随意修改,可以控制外部类对于类的访问权限,增加程序的安全性。
  2. 可维护性:封装大大提高了代码的可维护性,隐藏了内部实现细节,更方便地修改实现细节,降低了修改代码的复杂度。
  3. 代码复用:封装可以使得外部类无法直接操作内部属性,但是通过类提供的接口去操作,这样一来,外部类和内部类的代码隔离开来,有助于代码复用和维护。
  4. 可扩展性:封装可以使得程序的扩展更加容易,因为扩展不需要了解类内部的实现细节,只需要调用类提供的接口即可。
封装的实现

Java中使用访问修饰符来实现封装,对于私有属性和方法,只能通过类提供的公共接口进行访问。

public class Student{

    private String name;
    private int age;

    public String getName(){
        return name;
    }

    public void setName(String name){
        this.name = name;
    }

    public int getAge(){
        return age;
    }

    public void setAge(int age){
        this.age = age;
    }

}

在上面的例子中,属性nameage都是私有属性,外部类无法直接访问。通过设置publicgetNamesetName方法和publicgetAgesetAge方法来允许外部类访问属性nameage,这就是Java中封装的实现方法。

总结

封装是Java面向对象编程中一项非常基本的特性,能够提高代码的安全性、可维护性、代码复用性和可扩展性。通过访问修饰符的设置,可以对类中的属性和方法进行访问限制,达到封装的效果。