kotlin--类与函数
来源:互联网 发布:音效软件哪个最好 编辑:程序博客网 时间:2024/06/05 13:34
如何定义一个类?你只需要一个class关键字
class MainActivity{}
它有一个默认唯一的构造器, 大部分情况下你只需要这个默认的构造器,(可创建额外的构造器), 你只需要在类名后面加上它的参数, 如果这个类没有任何内容, 可以省去大括号:
class Person(name: String,surName:String)
构造函数体可以写在 init块中 :
class Person (name : String , surname:String ){init{ }}
‘类继承:’
默认的任何类都继承自Any(类似Java 中的 Object), 但是我们可以继承其他类, 所有的类默认都是不可以被继承的(final), 所以我们只能继承那些明确声明 open 或 abstract 的类:
open class Animal(name : String )class Person (name : String , surname: String ) : Animal(name)
当我们只有单个构造器时,我们需要从父类继承下来的构造器中指定需要的参数, 这是用来替换Java中的Super调用的.
函数
函数可以直接使用 fun 关键字就可以定义
fun onCreate(saveInstanceState : Bundle ?){}
如果你没有指定它的返回值, 它就会返回 Unit, 与Java 中的 void 相似, 但是 Unit 是一个真实的对象, 你也可以指定任何其他的返回类型:
fun add(x: int , y : int ){return x+y}
然而如果你的返回结果可以使用一个表达式计算出来, 可以这样写:
fun add (x:int ,y:int ): Int = x+y
构造方法和函数参数
Kotlin 中的参数与Java 不同, 先写参数, 再写参数类型:
fun add(x: Int, y: Int) : Int { return x + y}
我们可以指定一个默认值,使参数变得可选:
fun toast(message: String,length: Int = Toast.LENGTH.SHORT){ Toast.makeText(this,message,length).show()}
如上代码, 给第二个参数设置了一个默认值.这意味着在调用方法的时候第二个参数可以不传, 这样可以避免你需要重载的函数:
toast("Hello!")toast("Hello!",Toast.LENGTH.LONG)
再看如下例子:
fun niceToast(message : String tag:String = javaClass<MainActivity>.getSimpleName(), length:int = Toast.length.short){ Toast.makeText(this,["$className] $message",length).show();}
增加了第三个默认值是 类名的 tag 参数, 如果再java 中总数开销会以几何增长, 现在可以通过以下方式调用:
toast("hello")toast("hello","MyTag")toast("hello","MyTag",Toast.LENGTH.LONG,)
其他调用方式: 可以使用参数名来调用,这表示你可以通过在值前写参数名来传入你希望的参数:
toast(message = "hello",length = "Toast.LENGTH.LONG")
阅读全文
0 0
- kotlin--类与函数
- Kotlin开发Android笔记3:Kotlin中类与函数
- Kotlin开发Android笔记3:Kotlin中类与函数
- Kotlin 类 对象 函数
- Kotlin函数与Lambdas(一)--- 函数
- Kotlin 类与继承
- 3.kotlin 类和函数
- Kotlin 高阶函数 与 Lambda 表达式
- Kotlin语法基础,函数与闭包
- Kotlin 扩展函数详解与应用
- Kotlin 扩展函数 与 JS 的 prototype
- Kotlin Primer·函数与闭包
- Kotlin 函数与Lambdas(四)--- 协程
- Kotlin 函数
- Kotlin-函数
- Kotlin -- 函数
- Kotlin-函数
- Kotlin函数
- USACO-Section 1.3 Combination Lock[...]
- opencv3_java 生成输出对角矩阵 Mat.eye
- jade模板之一,HelloWorld
- 错误:No qualifying bean of type 'com.mongodb.MongoClient'
- AOP浅谈
- kotlin--类与函数
- java字符串表达式计算
- 怎样删除C++代码中的注释——有限状态机思想的使用
- 指针运算
- Mac 程序员的十种武器
- caffe——Blob,Layer,Net 及其对应配置文件的编写
- opencv3_java 图像的角点检测DetectConers goodFeaturesToTrack
- 我的GIT入门(2)
- pwnable.kr 之echo1