1、异常处理
try {
} catch (e: Exception) {
}
2、递归
阶乘
fun fact(num: BigInteger): BigInteger {
if (num == BigInteger.ONE) {
return BigInteger.ONE
} else {
return num * fact(num - BigInteger.ONE)
}
}
尾递归
tailrec
3、类的实例化
class Rect(var height: Int, var width: Int) {
fun addC() {
}
}
fun main(args: Array<String>) {
var rect01 = Rect(20, 10)
rect01.height
rect01.width
rect01.addC()
}
4、继承open
open class Father {
var chactor : String = "性格内向"
open fun action (){
println("公共场合喜欢大声喧哗")
}
}
class Son : Father(){
override fun action(){
println("公共场合有礼貌")
}
}
5、抽象类
abstract class Human(var name: String) {
abstract fun eat()
}
class Man(name: String) : Human(name) {
override fun eat() {
}
}
var person = Man("xiaoming")
person.eat()
6、接口
interface Woman {
}
7、委托和代理
interface Human {
fun baby()
}
class Woman : Human{
override fun baby() {
}
}
class Man: Human by Woman(){
override fun baby() {
Woman().baby()
}
}
8、单例模式
object Woman : Human{
override fun baby() {
}
}
9、枚举
enum class Week {
星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日
}
fun main(args: Array<String>) {
Week.星期一.ordinal//第几个元素,从零开始
}
10、sealed class
sealed class Son {
fun sayHello(){
}
//子类类型有限
class xm() : Son()
class xg() : Son()
}
fun main(args: Array<String>) {
var s1 :Son = Son.xg()
var s2 :Son = Son.xm()
var list = listOf<Son>(s1,s2)
}
11、闭包