Kotlin(一)

一.常量與變量

val(value 的簡(jiǎn)寫(xiě))用來(lái)聲明不可變的變量,類似java中的final,不可重復(fù)賦值
val <標(biāo)識(shí)符> : <類型> = <初始值>
var(variable的簡(jiǎn)寫(xiě))用來(lái)聲明可變的變量,可被重新賦值
var <標(biāo)識(shí)符> : <類型> = <初始值>

val a : String = "123"
注:也可直接寫(xiě)成 val a = "123"  這里的a會(huì)被自動(dòng)推導(dǎo)成字符串變量,這是kotlin的類型推導(dǎo)機(jī)制
var a : String = "123"
把val 修改成var后,即可修改a的值

二.函數(shù)(方法)

函數(shù)是用來(lái)運(yùn)行代碼的載體
基本用法:
fun 方法名(參數(shù)) : 返回值類型{方法體}
fun是定義函數(shù)的關(guān)鍵字,無(wú)論定義什么函數(shù)都需要用fun聲明

1.有返回值
   fun domain(param1 : Int,param2 : Int) : Int{
        return max(param1,param2)
   }
   簡(jiǎn)化寫(xiě)法:
   fun domain(param1 : Int,param2 : Int) : Int = max(param1,param2)
2.無(wú)返回值
   fun domain(param1 : Int) : Unit{
         println("$param1")
   }
   注:Unit相當(dāng)于java中的void,也可以不寫(xiě)
   fun domain(param1 : Int){
         println("$param1")
   }

三.程序的邏輯控制

1.if語(yǔ)句

kotlin中的if語(yǔ)句跟java中的if語(yǔ)句用法基本一樣

  寫(xiě)法可不斷精簡(jiǎn)
  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條件語(yǔ)句

kotlin中的when語(yǔ)句跟java中的switch語(yǔ)句很相似,但卻比switch強(qiáng)大很多

例子:有返回參數(shù)傳入一個(gè)分?jǐn)?shù),返回描述
   fun ScoreDescn(score:Int):String{
        var descn:String;
        when(score){
            10 -> descn = "優(yōu)"
            9 -> descn = "良"
            8 -> descn = "中"
            7 -> descn = "可"
            else -> descn = "差"
        }
        return descn
    }
    
   運(yùn)行
   fun main(){
        val a = 10
        ScoreDescn(a)
    }

返回 "優(yōu)"

無(wú)返回參數(shù)
   fun ScoreDescn(score:Int){
        when(score){
            10 -> "優(yōu)"
            9 ->  "良"
            8 ->  "中"
            7 ->  "可"
            else ->  "差"
        }
    }
3.循環(huán)語(yǔ)句

for循環(huán) kotlin中把java中的for-i循環(huán)直接舍棄,加強(qiáng)了java中的for-each循環(huán),變成了for-in循環(huán)

0到10遍歷  
..是創(chuàng)建兩端閉區(qū)間的關(guān)鍵字  數(shù)學(xué)表達(dá)式[0,10]
  for(i in 0..10){
       println(i)
   }
until是左閉右開(kāi)區(qū)間的關(guān)鍵字  數(shù)學(xué)表達(dá)式[0,10)
  for(i in 0 until 10){
      println(i)
   }

四.類

創(chuàng)建一個(gè)類
class Car {
}
然后定義一個(gè)變量“速度“,并在里面加上兩個(gè)動(dòng)作,跑和停止兩個(gè)函數(shù)
class Car {
    var velocity = 0
    fun run(){
        velocity = 10
       println("這輛車的速度達(dá)到了"+velocity)
    }
    fun stop(){
        velocity = 0
        println("這輛車的速度達(dá)到了"+velocity)
    }
}
然后進(jìn)行實(shí)例化,kotlin中取消了new關(guān)鍵字
fun main(){
        val car = Car()
        car.velocity = 10
        car.run()
        car.velocity = 0
        car.stop()
    }

繼承與構(gòu)造函數(shù)

在kotlin中所有任何一個(gè)非抽象類默認(rèn)都是不可以被繼承的,相當(dāng)于java中加了final關(guān)鍵字,如果需要被繼承要在類的前面加上open關(guān)鍵字

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

}

kotlin中將構(gòu)造函數(shù)分成了主構(gòu)造函數(shù)次構(gòu)造函數(shù)
主構(gòu)造函數(shù)的特點(diǎn)是沒(méi)有函數(shù)體,直接定義在類名后面即可


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

}

val bus = Bus(10)

kotlin提供了一個(gè)init結(jié)構(gòu)體,所有主構(gòu)造函數(shù)中的邏輯寫(xiě)在里面

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

任何一個(gè)類可以有多個(gè)次構(gòu)造函數(shù),所有次構(gòu)造函數(shù)都必須調(diào)用主構(gòu)造函數(shù)(包括間接調(diào)用),次構(gòu)造函數(shù)是通過(guò)constructor關(guān)鍵字定義的

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

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

    }
    constructor():this(0){
        
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。