美文网首页Kotlin学习之路
Kotlin基本语法之(二)包、修饰符与运算符

Kotlin基本语法之(二)包、修饰符与运算符

作者: wanderingGuy | 来源:发表于2019-05-22 22:27 被阅读0次

    使用package关键字,与Java的包基本一致,稍微有几处区别:

    1. 文件路径和包路径可以不一致(java会报编译错误)。
    2. 属性和方法可以直接声明在包(又叫顶层声明)下,别的包中调用该方法需要导入包路径+方法名。
    3. 没有java中静态导入import static,统一使用import关键字。

    修饰符

    kotlin提供的修饰符与java类似,也有四种分别为:protected/private/internal/public。

    与java不同的是

    1. 缺省情况下情况下视为public。
    2. internal表示模块可见

    那什么是“模块”呢,比如在项目中一个Module就是一个模块。
    官方的定义为:一个模块是编译在一起的一套Kotlin文件。

    • 一个IntelliJIDEA模块;
    • 一个 Maven 项目;
    • 一个 Gradle 源集(例外是 test 源集可以访问 main 的 internal 声明);
    • 一次 <kotlinc> Ant 任务执行所编译的一套文件。

    下表对比了Kotlin和Java的修饰符,可以直观的看到他们的区别和联系。

    修饰符 Java Kotlin
    public 任意可见 同Java
    private 本类内部可见 同Java
    protected 本类或子类可见 同Java
    缺省 包和子包中可见 同public
    internal -- 同模块可见

    另外,internal关键字有一个bug,当将一个kotlin模块打成java包,并导入在一个非Kotlin编译环境下时,internal失效,与public作用域一样。

    运算符

    除常规的数学运算符与Java一致外,要关注一下位运算符。

    位运算 Java Kotlin
    & and
    | or
    取反 ~ inv
    异或 ^ xor
    左移 << shl
    右移 >> shr
    无符号右移 >>> ushr

    相关文章

      网友评论

        本文标题:Kotlin基本语法之(二)包、修饰符与运算符

        本文链接:https://www.haomeiwen.com/subject/eugpzqtx.html