| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Kotlin(九)类、属性、构造函数 -> 正文阅读 |
|
[移动开发]Kotlin(九)类、属性、构造函数 |
1.类的属性 filed ? ?1)在kotlin中定义属性,必须赋初始值,要不编译器检查不通过。这个和java不同 ? ?2)kotlin会针对于定义的每个属性都封装了一个field,用于存储数据。 ? ?3)针对于非private的var(可变)属性,kotlin默认会生成一组getter和setter方法,通过反编生成的byteCode代码可以看到定义的setter和getter方法。 ? ?4 )针对于非private的val(不可变)属性,kotlin只生成了getter方法,没有setter方法,因为定义为val的属性,是不允许修改的。 ? 5)我们也可以在属性后面,复写getter和setter方法,自己定义要实现的内容。 ? 6)针对于private关键字修饰的属性,kotlin不对外提供setter和getter方法。尽管我们能够复写这两个方法。外界还是不能够访问。这点和Java有很大的不同。
2.构造函数 1)定义在class 类名 后面的构造函数,是类的主构造函数。这个和java不一样,可以直接定义在类上 2)在主构造函数中,可以使用临时变量给类属性赋值,为了方便识别,在kotlin中,临时变量通常会以下划线开头_属性名。如_name:String 3)在主构造函数中,可以同时定义临时变量和类属性,要加上var或val修饰符。如var age:Int 4)在属性参数后直接设置默认值。创建对象时,默认参数可以不传。如var subject:String="Kotlin" 5通过?constructor() : this可以定义次构造函数 6)通过init{}定义初始化块,对所传参数进行有效性检查。初始化块会在构造类实例时执行。
3.执行顺序 ? 对应属性,可以通过主构造函数、类属性、初始化代码块、和次级构造函数,来进行初始化。 那么他们的执行顺序就是上面这个顺序。这个执行顺序要牢记,很关键,有可能会踩到坑。 4.延迟初始化 ?通过 lateinit这个关键字,实现延迟初始化。属性可以在声明时,不必赋初始值。但是在使用前必须赋值。可以通过?::hobby.isInitialized 这个来判断是否初始化完成。
5.惰性初始化。 ? 通过by lazy可以实现惰性初始化。属性声明时不必赋值,使用这个属性时,会自动初始化。
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 4:46:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |