java八股文-day02(一天一个知识点)

73 阅读3分钟

介绍:封装(Encapsulation)是面向对象编程(OOP)的四大基本原则之一,其他三个是继承、多态和抽象。封装的核心思想是将对象的属性和行为(方法)隐藏起来只对外提供有限的访问接口,从而提高代码的安全性可维护性可重用性

1. 封装的基本概念

  • 隐藏实现细节:将对象的内部状态(属性)和行为(方法)隐藏起来,外部只能通过特定的接口访问。

  • 提供公共接口:通过公共方法(getter和setter)来访问和修改对象的属性,而不是直接操作属性。

  • 提高安全性:通过封装,可以控制对对象属性的访问,防止外部代码随意修改对象的内部状态。

2. 封装的实现

在Java中,封装通常通过以下方式实现:

  • 使用访问修饰符privateprotectedpublicdefault(包级私有)。

  • 提供getter和setter方法:用于访问和修改私有属性。idea快捷建(AIt+Insert)

    public class Person { // 私有属性 private String name; private int age;

    // 公共的getter方法
    public String getName() {
        return name;
    }
    
    // 公共的setter方法
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        if (age > 0) {  // 可以在setter方法中添加逻辑验证
            this.age = age;
        } else {
            System.out.println("年龄不能为负数");
        }
    }
    

    }

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

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

    }

3. 访问修饰符

  • private:只能在当前类中访问。

  • protected:可以在当前类、同一个包中的类以及子类中访问。

  • public:可以在任何地方访问。

  • default(默认,不写修饰符):只能在同一个包中访问。

4. 封装的优点

  • 安全性:通过隐藏内部实现细节,防止外部代码直接修改对象的内部状态。

  • 灵活性:可以在不改变外部接口的情况下修改内部实现。

  • 可维护性:代码更易于理解和维护,因为外部代码只能通过有限的接口与对象交互。

  • 代码复用:封装后的类可以在不同的项目中复用。

5. 封装的注意事项

  • 不要过度封装:过度封装可能导致代码复杂化,增加不必要的getter和setter方法。

  • 合理使用访问修饰符:根据实际需求选择合适的访问修饰符,避免过度暴露内部细节。

6. 封装与继承的关系

封装和继承是OOP中的两个重要概念,它们可以结合使用。通过封装,可以隐藏父类的实现细节,子类只能通过父类提供的公共接口访问父类的属性和方法。

7. 封装与多态的关系

封装和多态也是相辅相成的。封装隐藏了对象的内部状态,而多态则允许不同的对象对同一消息做出不同的响应。通过封装,可以确保对象的状态不会被外部代码随意修改,从而保证多态行为的正确性。

8. 总结

封装是Java编程中非常重要的概念,它帮助开发者构建更加安全、灵活和可维护的代码。通过合理使用访问修饰符和getter/setter方法,可以有效地隐藏对象的内部实现细节,提供清晰的接口供外部使用。