面向对象-封装

发布时间 2023-06-17 11:30:59作者: 黑逍逍

面向对象的封装是一种面向对象编程的核心概念,它指的是将数据和对数据的操作封装在一个类中,通过类的访问权限控制,隐藏内部实现细节,提供公共接口供其他对象访问。

封装的目的是实现数据的安全性和灵活性。通过将数据和操作数据的方法封装在一起,可以隐藏实现细节,防止外部直接访问和修改对象的内部状态,确保数据的一致性和完整性。同时,封装还可以提供更加清晰的接口,方便其他对象使用,降低了对象之间的耦合度,增加了代码的可维护性和可扩展性。

在封装中,通常使用访问修饰符(如private、protected、public)来控制类的成员的访问权限。私有的成员只能在类的内部访问,公共的成员可以被其他类访问。通常,对于私有的成员变量,可以使用公共的setter和getter方法来控制对其的访问和修改,以保证对数据的控制和验证。

 

public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String newName) {
        name = newName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int newAge) {
        if (newAge >= 0) {
            age = newAge;
        } else {
            System.out.println("年龄不能为负数");
        }
    }
}

  

public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("John");
        person.setAge(25);

        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
    }
}

  

我们创建了一个Person对象,并使用setNamesetAge方法设置其属性值。然后通过getNamegetAge方法获取属性值,并输出到控制台。

封装使得nameage的访问受到限制,只能通过定义的公共接口进行访问,保证了数据的安全性和一致性。同时,setter方法中对年龄进行了验证,确保年龄不会被设置为负数。这样,在外部使用Person类时,只需要关注如何设置和获取属性值,而不需要关心具体的实现细节。