Kotlin實現在類裡面建立main函式
阿新 • • 發佈:2020-03-17
1、建立在class塊外面:
class Test{ } /** 我是main入口函式 **/ fun main(args: Array<String>) { var test=Test(); }
這樣是一種方式,但是細心的童鞋可能會發現一個問題,目錄裡面的檔案圖示是灰色的,而且這種寫法看上去怪怪的,有強迫症的可能會接受不了;
2、建立在class裡面:
class Test{ companion object { /** 我是main入口函式 **/ @JvmStatic fun main(args: Array<String>) { var test=Test(); } } }
這樣就可以把main入口函式建立在class裡面了,我們來分解一下為什麼要這麼寫;
首先:
companion object { //我是靜態塊 /** 這裡面定義的靜態變數跟靜態方法,類似java的:static **/ }
上面的方法就是kotlin定義靜態變數跟靜態方法的方式,我們知道java的main函式是一個靜態方法:
public static void main(String[] args){
}
那在kotlin裡面我們換個思路,既然main是靜態方法,那麼把它放在kotlin的 companion object { }裡面試試,果然,成功過了,而且這樣寫看上去也不怎麼變扭,目錄圖示也變成藍色的了,可喜可賀!
補充知識:Kotlin的類繼承-子類有建構函式
//如果一個類要被繼承,可以用open關鍵字進行修飾 /** * Kotlin中的類可以有一個主構造器,以及一個或多個構造器,主構造器是 類頭部的一部分,位於類名稱之後 * class Person constructor(firstName: String) {} 如果主構造器沒有任何註解,也沒有任何可見度修飾符,那麼constructor關鍵字可以省略。 class Person(firstName: String) { } */ open class Personage(val name:String,val age:Int){ } //如果子類有主建構函式,則基類必須在主建構函式中進行初始化 class Student(name:String,age:Int,var no:String,var score:Int) :Personage(name,age){ } fun main(args:Array<String>){ val s= Student("Robbin",12,"323",22) //字串模板 //$表示一個變數名或者變數值 //$varName表示變數值 //${varName.fun()}表示變數的方法返回值 println("學生姓名: ${s.name}") }
如果一個類要被繼承,可以用open關鍵字進行修飾
Kotlin中的類可以有一個主構造器,以及一個或多個構造器,主構造器是
類頭部的一部分,位於類名稱之後
以上這篇Kotlin實現在類裡面建立main函式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。