什么是封装?
在你打王者荣耀的时候,在打吃鸡的时候,你知道在你的操作下游戏服务器是怎么判断你射击到敌人的吗?
我们一般不知道手机是怎么实现这些功能的,但怎么实现对我们玩家不重要,这会就很类似面向对象思想封装的定义了
封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互
(这里的接口就类似于游戏里的操作按键)
在Java中,主要通过类和访问权限来实现封装:类可以将数据以及封装数据的方法结合在一起
访问权限用来控制方法或者字段能否直接在类外使用。
Java中提供了四种访问限定符:
1.public:
表示公开的,公共的。在不同类,不同包下都可以访问。
notice:一个Java文件中只可以有一个public修饰的类,并且类名需要和文件名相同。
2.protected:
表示受保护的,他的主要作用是保护子类,子类可以用它修饰的成员,其他的不可以。
(在面向对象之继承会细说子类与父类间的瓜葛)
protectde可以修饰属性,方法,但不能修饰外部类,可以修饰内部类
3.default:
default(包权限)在定义变量,方法以及类时,没有写访问修饰限定符,则代表默认的修饰符default (在接口默认是public)
default修饰的属性,方法,类,只能被本类或者同一个包中的其他类访问到,针对本包访问而设计。
任何处于本包的属性,方法,类,接口等,都可以互相访问
4.private:
表达的意思是私有的,被private修饰的属性,方法,类只能被改类的对象访问,其他的子类不能访问。(private可以修饰内部类,不可以修饰外部类)
总得来说:
- public:一个人的外貌特征,谁都可以看到。
- default:对于自己家族(同一个包中)不是什么密码,对家族以外的人来说就是隐私了。
- private:只有自己知道,其他人不知道。
通过以上四种访问修饰限定符可以把玩家不需要知道的细节隐藏起来,即
封装为套壳屏蔽细节
而界面的显示,就得前端下功夫咯。