摘要:
一,说明: by lazy 是一种懒加载模式,也就是说变量的值并不是在声明的时候赋值的,而是在真正用到这个变量的时候,才会加载它,也就是为它赋值。并且第一次赋值后会记录好这个值,以后的访问,都会直接返回这个值。by lazy 模式只会执行一次赋值操作,也就是首次用到变量的时候,变量一旦被赋值后,就不 阅读全文
posted @ 2025-06-22 12:50
刘宏缔的架构森林
阅读(95)
评论(0)
推荐(0)
摘要:
一,代码: 说明: abstract 关键字用于在Kotlin中声明抽象类。无法实例化抽象类(不能创建抽象类的对象)。但可以从它们中继承子类 非抽象属性 age和非抽象方法: 如果您需要在子类中覆盖这些成员,则应使用 open 关键字标记它们。抽象方法 : 它没有任何实现,必须在其子类中重写。 注意 阅读全文
posted @ 2025-06-22 12:50
刘宏缔的架构森林
阅读(20)
评论(0)
推荐(0)
摘要:
一,代码: 类: package com.example.okdemo1.model //方式一:使用var、val自动声明初始化 class Demo1(var id: Int, var name: String) { //实在需要也可以再写init{}代码块做一些逻辑 init{ println 阅读全文
posted @ 2025-06-22 12:50
刘宏缔的架构森林
阅读(26)
评论(0)
推荐(0)
摘要:
一,引入lifecycle相关库 1,在项目根目录下的build.gradle中配置脚本,增加: buildscript{ ext { lifecycle = "2.5.1" } } 编辑app下的build.gradle,增加: // lifecycle相关 api "androidx.lifec 阅读全文
posted @ 2025-06-22 12:50
刘宏缔的架构森林
阅读(50)
评论(0)
推荐(0)
摘要:
一,lateinit的作用 1、特性 修饰可变变量:仅用于 var 声明。 手动初始化:开发者需在适当位置(如生命周期回调)显式初始化。 非空类型:只能用于非空类型(如 String、View),不支持基本数据类型(如 Int、Boolean)。 异常风险:访问未初始化的变量会抛出 Uninitia 阅读全文
posted @ 2025-06-22 12:50
刘宏缔的架构森林
阅读(67)
评论(0)
推荐(0)
摘要:
一,代码例子: package com.example.okdemo1.activity import android.os.Bundle import android.widget.Button import androidx.activity.enableEdgeToEdge import an 阅读全文
posted @ 2025-06-22 12:50
刘宏缔的架构森林
阅读(45)
评论(0)
推荐(0)
摘要:
一,两者的区别 主构造函数在类名后面使用constructor关键字声明,并且不能做任何操作,初始化可以在init代码块中进行在构造函数不具有注释符或者默认的可见性修饰符时,constructor关键字可以省略。 辅助构造函数需要使用constructor关键字声明,并且直接或者通过别的辅助函数调用 阅读全文
posted @ 2025-06-22 12:50
刘宏缔的架构森林
阅读(23)
评论(0)
推荐(0)
摘要:
一,data类和普通类的区别 1, 主构造函数必须至少有一个参数,且参数标记为 val 或 var 数据类的主构造函数必须至少有一个参数,并且这些参数必须使用 val 或 var 声明。普通类则没有这样的要求。 2,数据类自动生成了以下方法: toString():生成格式化的字符串表示,如:Use 阅读全文
posted @ 2025-06-22 12:50
刘宏缔的架构森林
阅读(49)
评论(0)
推荐(0)
摘要:
一,代码: package com.example.okdemo1.activity import android.os.Bundle import android.util.Log import android.view.MenuItem import android.widget.Button 阅读全文
posted @ 2025-06-22 12:50
刘宏缔的架构森林
阅读(9)
评论(0)
推荐(0)
浙公网安备 33010602011771号