文档章节

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构建MVVM应用程序—第一部分:入门篇

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

ditclear
2017/11/18
0
0
图书推荐:Kotlin从入门到进阶实战

《Kotlin从入门到进阶实战》从Kotlin 语言的基础语法讲起,逐步深入到Kotlin进阶实战,并在最后配合项目实战案例,重点介绍了使用Kotlin+Spring Boot进行服务端开发和使用Kotlin进行Android...

程序员诗人
09/14
0
0
使用Kotlin构建MVVM应用程序—第一部分:入门篇

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

ditclear
2017/11/18
0
0
使用Kotlin进行服务器端开发

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

Pape
2017/10/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Windows 10 设置 Java 环境变量

首先你需要在我的电脑中打开,找到环境变量属性。 找到环境变量属性 找到环境变量属性后单击将会看到下面的设置界面。 在这个界面中设置高级系统设置。 环境变量 在弹出的界面中选择设置环境...

honeymose
今天
2
0
用any-loader封装jQuery的XHR —— 随便写着玩系列

哎,都说没人用JQuery啦,叫你别写这个。 其实我也是好高骛远使用过npm上某个和某个很出名的XHR库,嗯,认识我的人都知道我喜欢喷JQ,以前天天喷,见面第一句,你还用JQ,赶紧丢了吧。但我也...

曾建凯
今天
7
0
聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
今天
4
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
5
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部