Kotlin学习笔记(二)-类和对象
来源:互联网 发布:2015年江苏省旅游数据 编辑:程序博客网 时间:2024/06/05 08:07
今天更新第二弹。
kotlin的类使用关键词“class”与JAVA一样,分为类名,类头,类体,其中的类头与类体是可选的。
例如:
class Person
kotlin的类中,可以有一个primary constructor,一个或多个secondary constructors,secondary constructor必须调用primary constructor。primary constructor写在类头。
例如:
class Person constructor(name:String){}
如果不使用注解或标志符,则可以简写成:
class Person (name:String){}
如果使用注解或标志符,则不可以简写:
class Person public @inject constructor(name:String){}
类声明默认为final,如果需要被继承,重写,则在class前加open;
若需要类初始化的代码则使用init{},在init中可以初始化一些属性,如:
open class Person(name:String){ lateinit var id:Int init{ id = 1 //dosomething }}
**lateinit关键字表示变量不能为空,但是用到时再初始化。
在定义二级构造函数时,必须直接或间接调用一级构造函数,使用this关键字。
class Person(val name: String) { constructor (name: String, paret: Person) : this(name) { parent.children.add(this) }}
创建类实例:
val me:Person("name")
继承:若父类有一级构造函数,子类必须在一级构造函数中立即初始化。
class Student(name:String):Person(name){}
如果父类没有一级构造函数,则使用super关键字。
constructor(name:String):super(name){}
重写:在需要重写的函数名前加 override 关键字。
需要注意的是,在kotlin中类的成员变量自动加入setter,getter方法。
属性可以拥有委托模型,简单说就是可以通过委托随时知某个属性的变化,以及被访问的时机。
属性赋值可以延迟到首次调用的时候,这个在加快类的初始化时将非常有用。比如有的变量我们不希望或者无法在对象构造的时候去赋值(可能缺少某些必要信息),此时我们便可以使用延时初始化。
- Kotlin学习笔记(二)-类和对象
- Kotlin------类和对象(二)
- Kotlin类和对象 (二)--- 接口
- kotlin学习笔记(二)
- kotlin学习笔记(二)
- Kotlin学习笔记(二)
- kotlin学习笔记(二)
- Kotlin学习笔记——类和对象
- Kotlin学习笔记——类和对象
- Kotlin学习笔记——类和对象
- Kotlin学习笔记(二)---从零学习Kotlin
- Kotlin入门____类和对象(二)
- Kotlin使用(二)类和对象
- Kotlin学习笔记(二):Kotlin与Java对比
- Kotlin学习笔记(1)-类,接口,对象
- Kotlin学习笔记(八)对象
- Kotlin学习笔记(二)循环,跳转
- Kotlin学习笔记(二)基本数据类型
- 数据结构之双向循环链表
- ElasticSearch使用入门-增删查改
- 嵌入式视频方案学习第六篇——视频输入
- Java 事物的概念以及延伸
- 初识Hibernate及简单的手动创建配置文件
- Kotlin学习笔记(二)-类和对象
- AndroidStudio快捷键大全
- 单向循环链表
- 双向循环链表简单的插入、删除、修改以及查找功能的实现
- Learn1_彩色三角形
- PAT-A-1090. Highest Price in Supply Chain (25)
- python中list与tuple转化及三种小数取整方式
- Kafka入门-windows安装测试
- Leetcode(12)