封装是面向对象的三大特征之一(另外两个特征是继承和多态)。
封装是面向对象编程语言对客观世界的模拟。对一个类或对象实现良好的封装,可以实现以下目的:
- 隐藏类的实现细节;
- 让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问。
- 可进行数据检查,从而有利于保证对象信息的完整性。
- 便于修改,提高代码的可维护性。
为了实现良好的封装,需要从两个方面考虑:
- 将对象的属性和实现细节隐藏起来,不允许外部直接访问。
- 把方法暴露出来,让方法来控制对这些属性进行安全的访问和操作。
封装实际上有两方面的含义:把该隐藏的隐藏起来,把该暴露的暴露出来。
封装需要通过使用包和访问权限修饰符来实现。
一、包和导包
如果希望把函数、类放在指定的包结构下,应该在Kotlin源程序的第一个非注释行放置如下格式的代码:
package packagename
位于包中的类,在文件系统中也必须有与包名层次相同的目录结构。
Kotlin的包需要两个方面的保证:
- 在源程序中使用package语句指定包名;
- 必须将class文件放在对应的路径下。
Kotlin的import语法和Java类似,支持精确导入和通配符导入。
精确导入:
import test.Bar