文档章节

Kotlin入门指南(2) - 类实现

tthwang
 tthwang
发布于 2017/05/25 11:22
字数 410
阅读 5
收藏 1

类实现

class Greeter(val name : String) {
    fun greet() {
        println("Hello, ${name}")
    }
}

fun main(args: Array<String>) {
    Greeter("Kotlin").greet()
}

类继承

默认任何类都是基础继承自Any(与java中的Object类似),但是我们可以继承其它类。所有的类默认都是不可继承的(final),所以我们只能继承那些明确声明open或者abstract的类:

open class Animal(name: String)
class Person(name: String, surname: String) : Animal(name)

当我们只有单个构造器时,我们需要在从父类继承下来的构造器中指定需要的参数。这是用来替换Java中的super调用的。

 

函数

函数(我们Java中的方法)可以使用fun关键字就可以定义:

fun onCreate(savedInstanceState: Bundle?) {
}

如果你没有指定它的返回值,它就会返回Unit,与Java中的void类似,但是Unit是一个真正的对象。你当然也可以指定任何其它的返回类型:

fun add(x: Int, y: Int) : Int {
    return x + y
}

然而如果返回的结果可以使用一个表达式计算出来,你可以不使用括号而是使用等号:

fun add(x: Int,y: Int) : Int = x + y

 

实现一个简单的函数,判断两个int哪个大

fun max(a: Int, b: Int) = if (a > b) a else b

简单类型转换不在话下

println(max("10".toInt(), "12".toInt()))

对比于Java的Integer.valueOf("10");  java实在是太臃肿了

 

构造方法和函数参数

Kotlin中的参数与Java中有些不同。如你所见,我们先写参数的名字再写它的类型:

fun add(x: Int, y: Int) : Int {
    return x + y
}
add(x = 1, y = 2)

© 著作权归作者所有

共有 人打赏支持
tthwang
粉丝 1
博文 4
码字总数 963
作品 0
广州
12月中旬值得一读的10本技术新书(Go Web编程、Linux、TensorFlow等)!文末有福利!

12月12日,阿里云云栖社区机构号 联合人邮异步社区为大家带来十本技术书籍(Go Web编程、Linux、TensorFlow等)。以下为书籍详情,文末还有福利哦! 书籍名称:《Go Web编程》 内容简介 本书...

阿里云云栖社区
2017/12/12
0
0
使用Kotlin进行服务器端开发

简介 Kotlin非常适合开发服务器端应用程序,允许编写简明明了的代码,同时保持与现有基于Java的技术栈的完全兼容性和平滑的学习曲线: 表现力:Kotlin的创新语言功能,如支持类型安全的构建器...

Pape
2017/10/24
0
0
使用Kotlin构建MVVM应用程序—第一部分:入门篇

目录 使用Kotlin构建MVVM应用程序—第一部分:入门篇 使用Kotlin构建MVVM应用程序—第二部分:Retrofit及RxJava 使用Kotlin构建MVVM应用程序—第三部分:Room(敬请期待) 写在前面 使用DataB...

ditclear
2017/11/18
0
0
使用Kotlin构建MVVM应用程序—第一部分:入门篇

简书地址:www.jianshu.com/p/80926d9e6… 目录 使用Kotlin构建MVVM应用程序—第一部分:入门篇 使用Kotlin构建MVVM应用程序—第二部分:Retrofit及RxJava 使用Kotlin构建MVVM应用程序—第三...

ditclear
2017/11/18
0
0
欢迎来撩 | 掘金翻译计划

介绍 掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖人工智能、Android、iOS、React、前端、后端、产品、设计 等领域,读者为热爱新技术的新...

LeviDing
2017/10/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

在Debian 9系统上安装Mysql数据库的方法教程

前言 看到题目大家应都会想,在 Debian 9 上安装 Mysql?那不是很简单的事儿吗?直接 sudo apt install mysql-server 不就行了吗? 没想到遇到了几个之前没遇到的问题,耽误了不少时间。 原来...

临江仙卜算子
46分钟前
4
1
从web实时通信讲H5 WebSocket

通常我们打开一个浏览器访问网页时,都会向页面所在的服务器发送一个HTTP请求,然后web服务器确认请求并向浏览器做出响应。简单的说,就是一个请求对应的一个响应。然而这种方法对许多的应用...

Code辉
今天
3
0
Sharding-Sphere自动化执行引擎

Q: 什么叫"自动化执行引擎"? A: 一条SQL的生命周期是:从客户端发起、经过Sharding-Sphere处理、再到底层数据库执行消化。而在Sharding-Sphere里过程则是:SQL解析-->SQL优化-->SQL路由-->...

xiaomin0322
今天
2
0
单模块中ReentrantLock的使用

背景 在单模块应用中,对同一个请求,需要进行同步。注意ReentrantLock的使用场景: 同一个线程中 同一个请求 RestController @RestControllerpublic class Controller {private final Re...

亚林瓜子
今天
2
0
Linux 4.1内核热补丁成功实践

好久不见的干货重现江湖!今日的内容是基于UCloud运维同学反馈的个别宿主机上存在进程CPU峰值使用率异常现象问题进行的相关阐述。本文详细介绍了该问题的完整分析思路和用热补丁的方式成功解...

UCloudTech
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部