1. 程式人生 > 程式設計 >Kotlin實現在類裡面建立main函式

Kotlin實現在類裡面建立main函式

1、建立在class塊外面:

class Test{

}
/** 我是main入口函式 **/
fun main(args: Array<String>) {
 var test=Test();
}

這樣是一種方式,但是細心的童鞋可能會發現一個問題,目錄裡面的檔案圖示是灰色的,而且這種寫法看上去怪怪的,有強迫症的可能會接受不了;

Kotlin實現在類裡面建立main函式

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實現在類裡面建立main函式

補充知識: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函式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。