kotlin 基本语法(四)

来源:互联网 发布:欧莱雅抗衰老知乎 编辑:程序博客网 时间:2024/05/16 12:06

     kotlin的类和java中的类有有些不同之处。

     1、kotlin中一般类的声明

      当没有构造函数时,可以声明如下,

class  name    //类的声明class  name{}
      kotlin中类的构造函数可以有多个,当有多个时,必须继承primary constructor,如,

class name(var name1:Type,var name2:Type)class name(var name1:Type,var name2:Type){           //function}
     当在构造函数中对变量用var、val进行声明时,表明该变量为该类的属性,若未进行此声明,则只能够在属性赋值和初始化块中使用。

class  name(value:Type){           var s:Type=value          init{                  s=value         }          fun st():Type{                 return s   //wrong         }}
       2、类的继承

     在kotlin中类是单向继承的,且子类要在类名前加open才能表明此类是可以被继承的,如,

open class parent{        //do you want}class son:parent(){       //do you want}
     3、接口类interface

     interface接口中的类可以是抽象的,也可以是不是,如,

interface name0{        fun f1()        fun f2(){            println("f2")      }}class  name1:name0{      override fun f1(){            println("f1")       }}
      但是,抽象函数中的类必须是抽象的,如,

abstract class name0{          fun f1()}class name1:name0{        override fun f1(){               println("f1")        }}
      4、泛类的使用
class name0<K,T...>(var v1:K,var v2:T...){             // do you want}
        当其中添加component时,有

class name0<K,T>(var v1:K,var v2:T){           operator fun component1():K{                          return v1          }           operator fun component2():T{                          return v2          }}//使用方法val st=name0<Int,String>(1,"sure")var (x,y)=st
         数据类 data class

data class name1(var name0:Int,var name1:Int)

原创粉丝点击