包装:保护内部状态
包装是一种隐藏数据内部状态的机制,只允许通过明确定义的界面进行访问和修改。包装有助于通过为私人成员提供访问控制来改进代码安全、可靠性和可维护性。
访问控制级别
Java 提供四个访问控制级别:
- public:可在任何地方访问。
- protected:只能从同一包或子类中访问。
- default/package-private:只能从同一包中访问。
- private:只能从同一类中访问。
getter 和 setter 方法
getter 和 setter 该方法用于访问和修改私人成员的公共方法。它们允许外部世界在维护包装的同时,以控制的方式与类内部状态进行交互。
好处:
- 提高安全性:防止未经授权的访问和修改。
- 提高可靠性:确保内部状态按预期处理。
- 提高可维护性:在不影响外部组件的情况下,使代码更容易更新和重构。
继承:代码重用和可扩展性
继承是一种允许新类(子类)继承和扩展现有类(父类)属性和方法的机制。促进代码重用,减少重复,支持动态行为。
子类和父类
- 子类:继承父类,扩大其功能。
- 父类:提供子类继承的基本功能。
继承类型
- 单继承:子类只能继承一个父类。
- 多级继承:子类可以继承多个父类,形成父类继承链。
- 多重继承:Java 它不支持传统意义上的多重继承,但可以通过接口模拟多重继承的效果。
好处:
- 重用代码:避免重复编写通用代码,节省时间和精力。
- 可扩展性:通过创建子类,可以轻松扩展和定制现有功能。
- 动态行为:使用多态,可以处理父子类型对象的一致性。
包装与继承的协同作用
包装与继承一起工作,提供强大的组合,提高代码质量:
- 只有授权代码才能访问封装保护继承的内部状态。
- 继承允许子类继承受保护的成员,扩大父类在安全和受控环境中的功能。
- 通过仔细使用访问控制级别,确保数据完整性,防止意外修改和滥用。
结论
包装和继承是 Java 中必不可少 OOP 该原则提供了安全性、可靠性、可维护性、代码重用和可扩展性等一系列好处。充分理解和应用这些原则对于编写强大、高效、易于维护的软件至关重要。
