//抽象类 abstract class Human(var name:String) { abstract fun eat()
abstract fun pee() }
//男人 class Man(name: String) : Human(name) { override fun eat() { println("${name}大口的吃饭,暴力") }
override fun pee() { println("${name}站着尿尿---") }
} //女人 class Woman(name: String) :Human(name) { override fun pee() { println("${name}蹲着尿尿---") }
override fun eat() { println("${name}小口慢慢的吃饭,文雅") } } //测试 fun main(args: Array<String>) { var person1 = Man("金三胖") var person2 = Woman("波多野结衣") var person3 = Woman("貂蝉") var person4 = Man("吕布")
var humanList = listOf<Human>(person1,person2,person3,person4)
fun main(agrs:Array<String>){ println(scoreMatch(10)) }
七、空值判断:
加上问好代表参数可以为空
1 2 3 4 5 6 7 8 9 10 11 12
//接收一个参数,参数为非空的String类型 fun heat(str:String?):String{ return "热${str}" }
fun main(agrs:Array<String>){ var result1 = "油" println(heat(result1)) var result2 = null println(heat(result2)) }
八、函数表达式
1 2 3 4 5 6 7 8 9 10 11 12 13 14
fun main(args:Array<String>){ //函数 var result = add(3,4) println(result) //函数表达式 var i = {x:Int,y:Int -> x+y} var result2 = i(3,4) var temp = result2==(7) println("${temp}")
// 递归演示 // 阶乘 5的阶乘:5*4*3*2*1 fun main(args:Array<String>){ ///BigInteger是一个不可描述超大的数字 println("请输入数字:") var a = readLine() try{ var b:BigInteger = a!!.toBigInteger() //阶乘 println(fact(b)) }catch(e:Exception){ println("输入数字有误!!") } }
fun fact(a:BigInteger):BigInteger{ if(a==BigInteger.ONE) return BigInteger.ONE else return a*fact(a-BigInteger.ONE) }
尾递归 tailrec修饰方法,譬如超过电脑运算周期范围的计算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
fun main(args:Array<String>){ var a = readLine()!!.toInt() var num:Int = 0 var result:Int = 0 println(add(a,num,result)) }
//尾递归 tailrec修饰方法 tailrec fun add(nuk:Int,nn:Int,result:Int):Int{ var nns = nn+1 var results = result + nuk println("计算机第${nns}次运算,结果为:${results}") if(nuk==1) return results else return add(nuk-1,nns,results) }
十、List和Map
List演示:
1 2 3 4 5 6 7 8 9 10 11
fun main(args:Array<String>){ var lists = listOf("买鸡蛋","买可乐","买猪肉","买大米") for(a in lists){ println(a) } for((i,e) in lists.withIndex()) println("$i,$e") }
Map演示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import java.util.TreeMap
fun main(args:Array<String>){ //TreeMap 同一key的value不能重复存在 var map = TreeMap<String,String>() var list = listOf("好","好","学习","天","天","向上") map["好"] = "Good" map["学习"] = "Study" map["天"] = "Day" map["向上"] = "Up" for(a in list){ print("${map[a]} ") } }
十一、人机交互
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
fun main(args:Array<String>){ println("请输入第一个数字:") var c = readLine() println("请输入第二个数字:") var d = readLine() try{ var a = c!!.toInt() var b = d!!.toInt() println("${a} + ${b} = ${a + b}") }catch(e:Exception){ println("输入数据有误!,请重新输入") } }