kotlin学习笔记——类、函数、接口
来源:互联网 发布:新人一元购的软件 编辑:程序博客网 时间:2024/06/05 09:47
Kotlin学习笔记系列:http://blog.csdn.net/column/details/16696.html
1、类
类是空的可以省略大括号, 如:
class A(name: String)
注意:kotlin与java的一个不同点,代码句结尾不必加“;”号
2、类继承
默认是final的,所以只能继承那些明确声明open或abstract的类。
3、函数
一切kotlin函数都会返回一个值,如果没有指定默认返回一个Unit类
可以省略结尾分号
当返回值用一个表达式即可计算出来,可以使用等号代替大括号,如:
fun add(x: Int, y: Int) Int = x + y
4、默认参数
为参数指定一个默认值,这样这个参数就成了可选,如:
fun toast(msg: String, length: Int = Toast.LENGTH_LONG){
...
}
使用时就可以不传length这个参数,如:
toast("test toast")
5、通过参数名传参
假设函数:
fun toast(msg: String, tag: String = "default", length: Int = Toast.LENGTH_LONG)
可以这样使用:
toast(msg = "hello", length = 1000)
这样可以忽略中间某个默认参数
6、实例化
实例化省略new关键字,如
var layoutManager = LinearLayoutManager(this)
7、伴随对象companion object
在kotlin中使用companion object来定义一些静态属性、常量和静态函数,这个对象被这个类所有对象共享,类似java中的静态变量和方法, 如:
class Circle(var r: Float){ companion object{ var pi = 3.14f } fun getLength(): Float{ return 2 * pi * r }}
8、接口
kotlin的接口与java接口不同之处在于kotlin的借口可以包含代码,如:
interface TestInterface { var i : Int fun test(){ i = 3 } fun interfaceMethod()}可以看到在接口中可以定义变量和函数,而实现接口的子类可以直接使用变量和函数,如:
class TestInterfaceClass(override var i: Int) : TestInterface{ override fun interfaceMethod() { test() i = 4 }}
9、别名
在java中,如果有两个相同名称的类,在同一个类中使用时,其中一个类需要使用完整包名。
在kotlin中,可以指定一个别名来避免使用完整包名,如:
import com.test.common.Productimport com.test.model.Product as ProdectModel这样在代码中只要使用ProductModel就可以了,如:
var productA = Product()var productB = ProdectModel()
但是注意,有了别名的类就不能在该类中使用原有的类名了。
10、修饰符
在kotlin中默认的修饰符是public,节约了很多时间和字符。
kotlin中的修饰符有private\protected\internal\public
其中internal是整个module可见的,当然它依赖于所在领域的可见性(比如private类下的internal函数)。这里的module就是android studio中的module概念,是指可以单独编译、运行、测试的独立功能性模块。
所有构造器默认都是public的,但是可以用下面的语法来修改可见性:
class C private contructor(a: Int){ ... }
11、内部类
在kotlin中内部类如果是普通类,则无法访问外部类成员(类似java中的static静态内部类),如
class ModelA{ val a = 1 class ModelB{ val b = a }}
上面的val b = a代码就会报错无法编译。
如果想在内部类访问外部类成员,需要用inner修饰,如
class ModelA{ val a = 1 inner class ModelB{ val b = a }}
这样就可以正常编译运行。
阅读全文
0 0
- kotlin学习笔记——类、函数、接口
- kotlin学习笔记——内联函数
- kotlin学习笔记——接口与委托
- Kotlin学习笔记(1)-类,接口,对象
- kotlin学习笔记——泛型及reified函数
- Kotlin学习笔记——Kotlin中的null安全
- kotlin学习笔记001——kotlin简介
- Kotlin学习笔记——标准库kotlin
- Kotlin学习笔记——标准库kotlin.system
- Kotlin学习笔记——标准库kotlin.io
- Kotlin学习笔记——标准库kotlin.collections
- Kotlin学习笔记——安装配置kotlin
- kotlin学习笔记——Kotlin Android Extensions
- Kotlin笔记(三)——函数
- Kotlin学习记录(二)—— Kotlin的变量、属性、类、构造函数、继承、方法
- Kotlin学习笔记——类和对象
- Kotlin学习笔记——类和对象
- Kotlin学习笔记——内部类和嵌套类
- YAMAHA机械手的使用注意事项
- FreeMark登录界面
- 报错之JsonNode转换list实体类时Unrecognized field "TotalAmount" (Class com.ztc.SQZuChe.domain.SQZCOrderDtail)
- 跟着测试大哥认识LoadRunner
- 解决grails上传图片大小过大报错问题
- kotlin学习笔记——类、函数、接口
- jQuery的一些简单知识点(二)
- List 集合分页实现
- ip,tcp,udp的邮局理论
- 实现TextView的垂直滚动,更新文字时自动滚动到最后一行
- 最简单的VUE pc端项目打包
- 欢迎使用CSDN-markdown编辑器
- 创意撰写优化技巧&&通配符
- TensorFlow 实现简单的卷积网络