声明一个带非默认构造方法或者属性

2018-07-07  本文已影响0人  Ryan_Hoo

1.1、初始化类:主构造方法和初始化语句块

class User(val  nickname : String)  主构造方法

1)表明构造方法的参数。          2)使用这些参数初始化的属性。

class  TwitterUser(nickname:String):User(nickname){...}

继承父类同样要初始化父类的构造方法。

class  Secretive private constructor{}  private的构造方法不能实例化

1.2、构造方法:用不同的方式来初始化父类

open class View{

       constructor(ctx:Context){...}

       constructor(ctx:Context , attr:AttributeSet){...}

}

class MyButton:View{

        constructor(ctx:Context):super(ctx){...}  //也可用this(ctx,null)委托给两个参数的构造方法

        constructor(ctx:Context,attr:AttributeSet):super(ctx,attr){...}

}

1.3、实现接口中的声明属性

Kotlin中接口可以包含抽象属性声明

interface User { val nickname : String }

1.4、通过getter或setter访问支持字段

class User(val name :String){

         var  address:String= " unspecified ";

                 set(value:String){

                      println(" address was changed ")

                      filed = value ;

                 }

}

特殊的标识符filed来访问支持字段的值,它只能在属性访问器中使用。

1.5、修改访问器的可见性

class  lengthCounter{

        var  counter:int = 0 ;

                private  set ;

        fun addWord(word : String) {  counter += word.length }

}

不想counter被用户更改,将setter构造私有 。

上一篇 下一篇

猜你喜欢

热点阅读