ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Kotlin 面向对象 - init 块

Kotlin 面向对象 - init 块 Kotlin init 块1、基本介绍init 块是初始化块用于在主构造函数执行后执行一些额外的初始化逻辑2、演示基本使用classPerson(valname:String){init{println(初始化中姓名$name)}}valpPerson(张三)# 输出结果 初始化中姓名张三可以有多个 init 块它们会按从上到下的顺序依次执行classPerson(valname:String){init{println(第一个 init 块)}init{println(第二个 init 块姓名$name)}}valpPerson(张三)# 输出结果 第一个 init 块 第二个 init 块姓名张三init 块常用于验证构造函数参数classUser(valemail:String,valage:Int){init{require(email.isNotEmpty()){邮箱不能为空}require(age18){年龄必须大于等于 18}}init{println(创建用户:$email, 年龄:$age)}}valuserUser(jackexample.com,10)# 输出结果 Exception in thread main java.lang.IllegalArgumentException: 年龄必须大于等于 18与次构造函数的关系主构造函数 → init 块 → 次构造函数执行classStudent(valname:String){init{println(init 块执行)}constructor(name:String,grade:Int):this(name){println(次构造函数执行年级$grade)}}valsStudent(Bob,3)# 输出结果 init 块执行 次构造函数执行年级3
返回列表