Kotlin学习笔记——类、接口、扩展方法、空类型

定义类和构造方法

class SimpleClass(var x: Int, val y: String){
   }

//创建类不需要new关键字
val simpleClass = SimpleClass(9, "Hello")

构造方法放在类名的后面,如果x和y前面加了varval, x和y会分别在类中定义一个属性以及对应的getter和setter方法,不需要额外写,否则必须手动写getter和setter实现。类前面不需要修饰符public private等,跟java不一样,默认是public的。

像下面这样:

class Person(age: Int, name: String) {
   
    var age: Int = age //property
        get() {
   
            return field
        }
        set(value) {
   
            println("setAge: $value")
            field = value
        }
    var name: String = name
        get() {
   
            return field // backing field
        }
        set(value) {
   
            field = value
        }
}

kotlin中,get和set方法可以显示写出来,但是一般默认不需要显示写出来,所以可以直接这样简写:

class Person(age: Int, name: String) {
   
   var age: Int = age
   var name: String = name
}

这样也会默认生成get和set方法,除非你需要自定义get和set方法中的逻辑,那时就需要显示写出来了。

  • 定义成员变量必须提供初始值:
    var a : Int = 0
    var b : String = ""
    val c : Long = 0L

这与java也不同,java中定义变量不指定值有默认值,如int是0

  • 如果定义了初始值,变量默认具备get和set方法,可以直接引用变量读取值和赋值
 val simpleClass = SimpleClass(9, "Hello")
 println(simpleClass.a)
 simpleClass.a = 122
 println(simpleClass.a)
  • 定义变量时如果不提供默认值,则必须定义get和set方法, 快捷键可以提示
    var sss: Int
        get() {
   
            return 100
        }
        set(value) {
   }

    //常量属性
    val z : Long
        get() {
   
            return simpleProperty * 2L
        }

接口定义

interface SimpleInf {
   
    //与java不同,接口里面可以定义待实现的常量属性,由子类实现
    val simpleProperty: Int // property

    fun simpleMethod()
}

与java不同的是,接口里面由子类实现的常量属性,java的接口类中变量值只能是初始化固定的。

  • 实现接口:
class SimpleClass(var x: Int, val y
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

川峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值