什么是封装?为什么需要封装?
我们开车,不需要知道车内部的结构发动机是怎么工作的原理。我们只需要掌握点火和驾驶技能即可。
在程序设计中,我们通常追求高内聚,低耦合
高内聚:类的内部数据操作细节自己完成,不允许外界干涉
低耦合:仅对外提供方法使用
封装就是隐藏对象内部的复杂性,只对外提供简单的接口,便于外界调用。如果不采用封装,使用者对类内部定义的属性的直接操作会导致数据的错误、混乱和安全问题。
如何进行封装和隐藏?
Java中通过将数据声明为私有的,再提供公共的方法实现对属性的操作
class Animalss{ private int legs;//将属性legs定义为private,只能被Animal类内部访问 //提供定义属性和提供属性的接口方法 public int getLegs() { return legs; } public void setLegs(int legs) { this.legs = legs; } }
权限修饰符的使用环境:
private: 类内部
default:类内部、同一个包
protected:类内部、同一个包、不同包的子类
public:类内部、同一个包、不同包的子类、同一个工程
对于class的权限修饰只可以用public和default
public类可以在任意地方被访问
default类只可以被同一个包内部的类访问