Kotlin笔记 七(三) 包与访问控制符.md

导包

1、封装概念

封装:即将对象状态信息封装在对象内部,不允许外部程序直接访问对象内部信息,而是通过对象暴露的方法实现对内部状态的访问与操作

2、包

Kotlin编译器总是会为源文件中的包结构生成对应的文件目录,而Javac编译期需要-d选项才会生成文件目录;

2.1、导包

Kotlin支持两种方式:

精确导包:
import foo.bar//导入foo包中的Bar

和通配符导入

import foo.*	//导入foo包中的所有成员

Kotlin中的import相当于Java中的import和static import(静态导入)合体,它不仅可以导入类,还可以导入:

  1. 顶层函数和属性
  2. 对象声明中声明的函数和属性
  3. 枚举常量

当遇到不同包中相同类名,Java的做法是

其中有一个类放弃导包,使用类全名

Kotlin优雅的解决了这个问题:

利用取别名的方式,解决导入不同包中相同类名的类,如:

import Java.sql.Date  as SDate

3、访问控制符

private:只能在该类的内部或者文件的内部被访问

internal:在该类的内部或者同一个模块内被访问

protected:在该类的内部或者文件内部或者其子类中被访问

public:任意地方被访问

Kotlin如果没有显示指定访问符,默认是public

3.1、位于包内的顶层成员

位于包内的顶层成员(包括顶层类、接口、函数、属性),只能使用private、internal、public其中之一,不能使用protected修饰符;

private:只能在在当前文件中被访问

internal:只能在当前文件或者当前模块中被访问

public:任意地方被访问

如:

private fun foo(){}
internal fun test(){}
public var bar :Int=8
    private set
internal  var baz=9
    private set

注意:getter方法的访问权限总是和该属性保持一致

直接定义在包内的顶层函数、属性会转换成Kotlinx所生成的类(类名+Kt)中的静态方法和静态属性;

3.2、位于接口、类之内的成员

位于类、接口之内的成员(包括顶层类、接口、函数、属性),只能使用private、internal、protected、public其中之一

private:只能在该类中被访问
internal:只能在该类或者当前模块中被访问
protected;只能在该类或其子类中被访问
public:任意地方

局部声明(局部变量、局部方法、局部嵌套类)作用域只在该方法内有效,不能使用访问控制符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值