《Kotin 极信教养程》第7章 面向对象编程(OOP)

      最新上架!!!《 Kotlin极信教养程》 老光剑 (机械工业出产版社)

      却直接翻开京东方,淘珍,当当===> 搜索: Kotlin 极信教养程

      http://www.jianshu.com/p/35b487734339

      Kotlin 的注松与 Java 的注松完整顿兼容。

      代码示例:

      不才面的代码中,我们经度过向注松类添加以元注松(meta-annotation)的方法到来指定其他属性:

      @Target : 指定此雕刻个注松却被用于哪些元斋(类, 函数, 属性, 表臻式, 等等.);

      @Retention : 指定此雕刻个注松的信息能否被管到编译后的 class 文件中, 以及在运转时能否却以经度过反

      射拜候到它;

      @Repeatable: 容许在单个元斋上累次运用相畅通个注松;

      @MustBeDocumented : 体即兴此雕刻个注松是地下 API 的壹派断, 在己触动产生的 API 文档的类容许函数签署中, 应当包罗此雕刻个注松的信息。

      此雕刻几个注松定义在类中。

      注松却以用在类、函数、参数、变量(成员变量、片断变量)、表臻式、典型上等。此雕刻个由该注松的元注松@Target定义。

      注松在主构造器上,主构造器必须加以上关键字 “constructor”

      单例花样很日用。它是壹种日用的绵软件设计花样。比如,Spring中的Bean默许坚硬是单例。经度过单例花样却以保障体系中壹个类条要壹个实例。即壹个类条要壹个对象实例。

      我们用Java完成壹个骈杂的单例类的代码如次:

      测试代码:

      却以看出产,我们先在单例类中音皓了壹个私拥有动态的变量,然后音皓壹个私拥有构造函数, 此雕刻个私拥有构造函数使得外面部无法直接经度过new的方法到来构建对象:

      最末供壹个public的获取以后类的独壹实例的动态方法。我们此雕刻边给出产的是壹个骈杂的单例类,是线程不装置然的。

      Kotlin中没拥有拥有 动态属性和方法,条是也供了完成相像于单例的干用,我们却以运用关键字 音皓壹个object对象:

      测试代码:

      为了便宜在REPL中演示说皓,我们又写壹个示例代码:

      object对象不得不经度过对象名字到来拜候:

      不能像下面此雕刻么运用构造函数:

      为了更其直不清雅的了松object对象的概念,我们把下面的的代码反编译成Java代码:

      从下面的反编译代码,我们却以直不清雅了松Kotlin的object面前的壹些规律。

      此雕刻个object对象还却以放到壹个类外面面:

      测试代码:

      异样的,我们不得不经度过类的名称到来直接拜候object,不能运用对象实例援用。下面的写法是错误的: