Kotlin基础 5
来源:互联网 发布:022型导弹艇知乎 编辑:程序博客网 时间:2024/06/03 13:41
面向对象的基本概念.
1. 本质上就是解决如何用程序描述世界的问题. 2. 讨论如何把实际存在的东西映射成程序的类和对象 3. 一种程序设计的思路、思想、方法
Kotlin中的 继承与接口实现
interface A{ fun A()}interface B{ fun B()}open class Chind{ fun function(){ println("function") }}open class Cww{ fun log(){ println("log") }}class C: Chind(), A,B{ //继承Child 实现 a/b override fun A() { } override fun B() { }}
Kotlin中的 常量与变量
var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和Java中声明变量的方式一样。
val是一个只读变量,这种声明变量的方式相当于java中的final变量。一个val创建的时候必须初始化,因为以后不能被改变。
val name:String = "张三" name = "李四" //编译不通过,不可变类型 final
var name:String = "张三" name = "李四" //编译通过,可变类型
编译期常量(java的 static final )
const val TEXT: String = "Hello"
Kotlin中的 所有类的父类 Any
在Kotlin中所以的类都有一个默认的父类Any,这个类似于Java中的Object。
object 关键字
ps:简单来说,就是普通的java单例, 简单的单例
1. 值有一个实例的的类 2. 不能自定义构造方法 3. 可以实现接口,继承父类
//声明一个单例类object Person{ fun getName():String{ return "啦啦啦" }}fun main(args: Array<String>) { println(Person.getName())}
Kotlin中的 静态方法
fun main(args: Array<String>) { Latitude.toDouble(3.0)}class Latitude{//class Latitude private constructor(){ 如果是工具类,私有构造方法 companion object{ fun toDouble(double: Double){ println("啦啦啦啦啦 取到值 $double") } }}
Kotlin中的 扩展函数
fun main(args: Array<String>) { //输出结果 abcabcabcabcabc println("abc".multiply(5))}//定义String的扩展函数fun String.multiply(max:Int):String{ var stringBuilder = StringBuilder() for (i in 0 until max){ //定义循环0..max 区间 stringBuilder.append(this) } return stringBuilder.toString()}
fun main(args: Array<String>) { //输出结果 abcabcabcabcabc println("abc" * 5) //扩展成员 println()}//定义String的扩展函数 -> 并重载操作符operator fun String.times(max:Int):String{ var stringBuilder = StringBuilder() for (i in 0 until max){ //定义循环0..max 区间 stringBuilder.append(this) } return stringBuilder.toString()}//定义String扩展成员val String.a : String get() = "abc"
Kotlin中的 属性代理
class Delegates{ val hello by lazy{ "hellWorld" } val hello2 by X() var hello3 by X()}//模拟 lazy的过程class X{ private var value:String? = null operator fun getValue(thisRef: Any?, property: KProperty<*>): String{ println("getValue:$thisRef -> ${property.name} ") return value?:"" } operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) { println("setValue:$thisRef -> ${property.name} = $value") this.value = value }}fun main(args: Array<String>) { val delegates = Delegates() println(delegates.hello) println(delegates.hello2) delegates.hello3 = "啦啦啦" println(delegates.hello3)}
阅读全文
0 0
- Kotlin基础 5
- Kotlin基础
- kotlin基础
- kotlin基础
- Kotlin基础
- kotlin基础
- kotlin基础
- kotlin基础
- Kotlin 基础
- Kotlin基础
- kotlin基础
- Kotlin-基础
- Kotlin基础
- Kotlin基础
- Kotlin基础语法
- Kotlin 基础语法学习
- Kotlin基础语法
- kotlin基础语言知识
- 操作系统ucore lab7实验报告
- matplotlib(直方图,条形图,饼图,散点图)基础知识
- JZOJ3765. 【BJOI2014】想法
- 卷积码(Convolutional Code)
- 经典算法面试题 | 最少操作数使数组元素相等 I & II 大合集
- Kotlin基础 5
- Basler Pylon 5 和Halcon 10 在 Qt 5.9.0 Creator 4.3.1配置笔记
- Mybatis一对一及一对多级联
- A. Sonya and Queries
- 设计模式(二)template method
- Satisfactory Pairs HackerRank
- Tensorflow入门-实现神经网络
- Time Manager 时间管理器
- BZOJ 1051-受欢迎的牛(强连通)