Skip to content
目录概览

Java的封装和访问权限

什么是封装

封装是面向对象编程中的一个重要概念,指的是把数据和操作数据的方法绑定在一起,形成一个类,并且限制了外部代码访问内部数据的权限。

在Java中,封装是通过访问修饰符来实现的。

访问修饰符

Java中有四种访问修饰符,它们分别是:

  • default
  • public
  • protected
  • private

default

default是默认的访问修饰符,它不需要对应的关键字。如果一个属性或者方法没有被任何访问修饰符修饰,那么它就是 default 访问修饰符。default 修饰的属性和方法只能被同一包中的其他类访问,不能被不同包中的类访问。

public

public是最高级别的访问修饰符,可以被任何代码访问。一旦定义为 public,那么它就不再受限制了。

protected

protected是一个介于 public 和 default 之间的访问修饰符。protected 修饰的属性和方法可以被同一个包中的其他类访问,也可以被不同包中的子类访问。

private

private是最高级别的封装,它表示该属性或者方法只可以被本类中的其他方法访问,其他任何类都不能访问。

Java封装的实现

Java的封装是通过访问修饰符来实现的,将属性定义为私有的,使用公共的 get/set 方法去访问变量。

下面是一个简单的例子:

java
public class Student {
    private String name;
    private int age;
    private String gender;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getGender() {
        return gender;
    }

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

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

    public void setGender(String gender) {
        this.gender = gender;
    }
}

在这个例子中,我们定义了一个Student类,包含三个私有属性:name,age和gender。这些属性只能在本类中访问,不能被其他类直接访问。

为了能够访问这些属性的值,我们提供了三个公共的get方法和三个公共的set方法。这些方法可以被任何类调用,用于获取和设置属性的值。

当我们需要获取或者设置Student类的属性时,可以使用以下代码:

java
Student student = new Student();

student.setName("一航");
student.setAge(18);
student.setGender("");

System.out.println("名称: " + student.getName());
System.out.println("年龄: " + student.getAge());
System.out.println("性别: " + student.getGender());

在这个例子中,我们创建了一个Student对象,并且使用了set方法为它的属性赋值。然后使用get方法获取它的属性值,并输出到控制台。

总结

Java的封装和访问权限是面向对象编程中的重要概念,通过访问修饰符来实现。它可以帮助我们隐藏内部实现,保护数据,提高代码的安全性和可维护性。在实际开发中,我们需要灵活使用访问修饰符,根据需要将属性封装起来,同时提供公共的get和set方法来访问属性的值。