Kotlin(一)

2020-08-05  本文已影响0人  Destiny_ZRJ

一.常量与变量

val(value 的简写)用来声明不可变的变量,类似java中的final,不可重复赋值
val <标识符> : <类型> = <初始值>
var(variable的简写)用来声明可变的变量,可被重新赋值
var <标识符> : <类型> = <初始值>

val a : String = "123"
注:也可直接写成 val a = "123"  这里的a会被自动推导成字符串变量,这是kotlin的类型推导机制
var a : String = "123"
把val 修改成var后,即可修改a的值

二.函数(方法)

函数是用来运行代码的载体
基本用法:
fun 方法名(参数) : 返回值类型{方法体}
fun是定义函数的关键字,无论定义什么函数都需要用fun声明

1.有返回值
   fun domain(param1 : Int,param2 : Int) : Int{
        return max(param1,param2)
   }
   简化写法:
   fun domain(param1 : Int,param2 : Int) : Int = max(param1,param2)
2.无返回值
   fun domain(param1 : Int) : Unit{
         println("$param1")
   }
   注:Unit相当于java中的void,也可以不写
   fun domain(param1 : Int){
         println("$param1")
   }

三.程序的逻辑控制

1.if语句

kotlin中的if语句跟java中的if语句用法基本一样

  写法可不断精简
  fun domain(param1 : Int,param2 : Int) : Int{
        var a = 0
        if (param1>param2){
            a = param1
        }else{
            a = param2
        }
        return a
    }

   fun domain(param1: Int, param2: Int): Int {
        val a = if (param1 > param2) {
                param1
            } else {
                param2
            }
        return a
    }

  fun domain(param1: Int, param2: Int): Int {
        return  if (param1 > param2) {
                param1
            } else {
                param2
            }
    }

  fun domain(param1: Int, param2: Int): Int = if (param1 > param2) {
        param1
    } else {
        param2
    }

  fun domain(param1: Int, param2: Int): Int = if (param1 > param2)
        param1
    else
        param2
    
2.when条件语句

kotlin中的when语句跟java中的switch语句很相似,但却比switch强大很多

例子:有返回参数传入一个分数,返回描述
   fun ScoreDescn(score:Int):String{
        var descn:String;
        when(score){
            10 -> descn = "优"
            9 -> descn = "良"
            8 -> descn = "中"
            7 -> descn = "可"
            else -> descn = "差"
        }
        return descn
    }
    
   运行
   fun main(){
        val a = 10
        ScoreDescn(a)
    }

返回 "优"

无返回参数
   fun ScoreDescn(score:Int){
        when(score){
            10 -> "优"
            9 ->  "良"
            8 ->  "中"
            7 ->  "可"
            else ->  "差"
        }
    }
3.循环语句

for循环 kotlin中把java中的for-i循环直接舍弃,加强了java中的for-each循环,变成了for-in循环

0到10遍历  
..是创建两端闭区间的关键字  数学表达式[0,10]
  for(i in 0..10){
       println(i)
   }
until是左闭右开区间的关键字  数学表达式[0,10)
  for(i in 0 until 10){
      println(i)
   }

四.类

创建一个类
class Car {
}
然后定义一个变量“速度“,并在里面加上两个动作,跑和停止两个函数
class Car {
    var velocity = 0
    fun run(){
        velocity = 10
       println("这辆车的速度达到了"+velocity)
    }
    fun stop(){
        velocity = 0
        println("这辆车的速度达到了"+velocity)
    }
}
然后进行实例化,kotlin中取消了new关键字
fun main(){
        val car = Car()
        car.velocity = 10
        car.run()
        car.velocity = 0
        car.stop()
    }

继承与构造函数

在kotlin中所有任何一个非抽象类默认都是不可以被继承的,相当于java中加了final关键字,如果需要被继承要在类的前面加上open关键字

open class Car {
  .......
}
class bus : Car(){

}

kotlin中将构造函数分成了主构造函数次构造函数
主构造函数的特点是没有函数体,直接定义在类名后面即可


class Bus(val size : Int) : Car(){

}

val bus = Bus(10)

kotlin提供了一个init结构体,所有主构造函数中的逻辑写在里面

class Bus(val size : Int) : Car(){
  init {
      println(size)
  }
}

任何一个类可以有多个次构造函数,所有次构造函数都必须调用主构造函数(包括间接调用),次构造函数是通过constructor关键字定义的

class Bus(val size : Int,height : Int) : Car(height){

    constructor(height: Int):this(10,100){

    }
    constructor():this(0){
        
    }
}
上一篇下一篇

猜你喜欢

热点阅读