classHello(// 主构造函数, 直接在主构造函数中定义属性varname:String,// 该值是临时变量, 为 age 属性赋值_age:Int){// 类中的属性varage=_agevartype="老鼠"vargender:String init{println("init 初始化块开始执行")gender="男"}constructor(_age:Int):this("Tom",_age){println("次构造函数开始执行...
classStudentconstructor(name:String,age:Int){init{println("主构造函数参数 : name : ${name} , age : ${age} ;")}//等号右边的 name 是构造函数参数值varname:String=name+" L"//等号右边的 age 是构造函数参数值varage:Int=age+1init{println("成员变量 : name : ${this.name} , age : ${...
classCustomer(val customerName:String="") 实例 classRunoobconstructor(name:String){// 类名为 Runoob// 大括号内是类体构成varurl:String="http://www.runoob.com"varcountry:String="CN"varsiteName=name init{println("初始化网站名: ${name}")}// 次构造函数constructor(name:String,alexa:Int):this...
init初始化块里的属性赋值和函数调用 次构造函数里的属性赋值和函数调用 延迟初始化 lateinit关键字用来延迟初始化 isInitialized可以检查是否初始化完成 classclasstest{varname="Java"lateinitvarcode:Stringfunready(){code="hahah"}fungo(){if(::code.isInitialized){println(code)}}} ...
class Person constructor(firstName: String) {init {println("FirstName is $firstName")}} 在小括号内的构造函数参数,会自动生成类的成员属性,可以通过主构造器来定义属性并初始化属性值 数据类data class 对于一些只保存数据的类(贫血模型 笑),我们可以在class的定义前加上data关键字 ...
init初始化代码块 由于主构造函数不能包含其他代码,kotlin提供了init代码块用作类的初始化。init 代码块可以有多个,执行顺序即为在类中的出现顺序(这个有点坑,一不小心各种bug)。 //init代码块classInitBlock(name:String){funtest(){}//属性初始化 按照在类中的出现顺序 它先于init代码块valfirstProperty="Fir...
*/classTest(num: Int){ ... } 1.2、构造函数中的初始化代码块 构造函数中不能出现其他的代码,只能包含初始化代码。包含在初始化代码块中。 关键字:init{...} 值得注意的是,init{...}中能使用构造函数中的参数 例: funmain(args:Array<String>){// 类的实例化,会在下面讲解到,这里只是作为例子讲解打...
对于函数式编程,通常要写大量的PoJo用以在函数之间传递数据,这些对象最大的特点就是仅是数据,且不可变(Immutable),通常的实现方式就是把成员变量全用final修饰(只读read only)。在Kotlin中,可以非常方便的定义这要的类型,即data class。 data class User(val name: String, val age: Int) ...
class Hello( // 主构造函数, 直接在主构造函数中定义属性 var name: String, // 该值是临时变量, 为 age 属性赋值 _age: Int ){ // 类中的属性 var age = _age var type = "老鼠" var gender: String init { println("init 初始化块开始执行") ...
class Test constructor(num : Int){ ... } 等价于 /* 因为是默认的可见性修饰符且不存在任何的注释符 故而主构造函数constructor关键字可以省略 */ class Test(num: Int){ ... } 1.2、构造函数中的初始化代码块 构造函数中不能出现其他的代码,只能包含初始化代码。包含在初始化代码块中。 关键字:init{...