二、面向对象
1、类以及接口
1、 属性没有默认值必须赋值。成员是默认全局可见。
2、可带有属性和默认方法的接口
我们在给接口添加新的方法的时候,之前继承过该接口的类则不需要实现新添加的方法接口中的属性其实是使用方法来实现的,所以不能给默认值,如果要给默认值可以通过方法来实现interface Car{
val speed:Int get()=100} 在实现该接口的类中必须得对属性进行初始化。
2、构造函数
1、解决了java里的构造方法过多的问题
class Bird(val weight: Double = 0.00 , val age: Int = 0 , val color: String = "blue")//可以省略{} 一行搞定val bird1 = Bird(color = "black")val bird2 = Bird(weight = 1000.00 , color = "black")
2、init语法块,它属于构造函数的一部分,构造函数只能给参数赋值,要想在初始化的时候进行其他的初始操作就需要用到init块,
当没有var或者val 的时候构造方法的参数可以再init块里直接