基础语法
1.main alt+/ 生成
fun main(args: Array<String>) {
println("1q2");
f1("公园");
}
2.函数
//注意Int开头大写,不是int
fun f1(placeName:String):Int{
var diary = "今天晴空万里,我们一起去${placeName}旅行!";
println(diary);
return 1;
}
//求和函数,等于=相当于return
fun add(a:Int,b:Int):Int = a+b;
3.switch改为when,还支持String类型
when(score){
"45"-> "5";
"40" -> "4";
else -> "else";
}
4.for循环
var nums = 1..30
println(nums.count());
for(a in nums){
println(a);
}
for(a in nums step 2){
println(a);
}
- ?表示允许为null
!!表示非空时才执行
var str1 = readLine(); //输入的是字符串,可能是null
var str2 = readLine();
var a:Int = str1!!.toInt(); //非null时才执行,避免了空指针异常NullPointerException
var b:Int = str2!!.toInt();
println("${a}+${b} = ${a+b}");
6.大整数相乘
var n: BigInteger = BigInteger("100");
var i:BigInteger = BigInteger.ONE;
var sum:BigInteger = BigInteger.ONE;
while(i < n){ //注意kotlin代码没有for( ; ; ) 循环
sum *= i
i++
}
println(sum);
面向对象
抽象类和接口
相同点:
都不可以实例化
都可以继承
都包含抽象方法
派生类必须要实现抽象方法
不同点:
接口只能包含抽象方法,不含有属性、构造函数等等
抽象类不仅有抽象的方法,也有其他的方法,属性可有可无
接口所有成员都是public,没有private
接口可以继承多个
抽象类
//抽象类
abstract class People(){
abstract fun eat()
}
//继承,必须要加()括号
class Man(var age:Int): People() {
override fun eat(){
println("我喜欢吃肉");
}
}
//测试函数
fun main(args: Array<String>) {
var a = Man(35);
a.eat()
println(a.age);
}
接口
//接口 ,没有abstract
interface Wash{
fun washDishs()
}