Kotlin實(shí)現(xiàn)在類里面創(chuàng)建main函數(shù)
1、創(chuàng)建在class塊外面:
class Test{ } /** 我是main入口函數(shù) **/ fun main(args: Array<String>) { var test=Test(); }
這樣是一種方式,但是細(xì)心的童鞋可能會(huì)發(fā)現(xiàn)一個(gè)問題,目錄里面的文件圖標(biāo)是灰色的,而且這種寫法看上去怪怪的,有強(qiáng)迫癥的可能會(huì)接受不了;
2、創(chuàng)建在class里面:
class Test{ companion object { /** 我是main入口函數(shù) **/ @JvmStatic fun main(args: Array<String>) { var test=Test(); } } }
這樣就可以把main入口函數(shù)創(chuàng)建在class里面了,我們來分解一下為什么要這么寫;
首先:
companion object { //我是靜態(tài)塊 /** 這里面定義的靜態(tài)變量跟靜態(tài)方法,類似java的:static **/ }
上面的方法就是kotlin定義靜態(tài)變量跟靜態(tài)方法的方式,我們知道java的main函數(shù)是一個(gè)靜態(tài)方法:
public static void main(String[] args){
}
那在kotlin里面我們換個(gè)思路,既然main是靜態(tài)方法,那么把它放在kotlin的 companion object { }里面試試,果然,成功過了,而且這樣寫看上去也不怎么變扭,目錄圖標(biāo)也變成藍(lán)色的了,可喜可賀!
補(bǔ)充知識(shí):Kotlin的類繼承-子類有構(gòu)造函數(shù)
//如果一個(gè)類要被繼承,可以用open關(guān)鍵字進(jìn)行修飾 /** * Kotlin中的類可以有一個(gè)主構(gòu)造器,以及一個(gè)或多個(gè)構(gòu)造器,主構(gòu)造器是 類頭部的一部分,位于類名稱之后 * class Person constructor(firstName: String) {} 如果主構(gòu)造器沒有任何注解,也沒有任何可見度修飾符,那么constructor關(guān)鍵字可以省略。 class Person(firstName: String) { } */ open class Personage(val name:String,val age:Int){ } //如果子類有主構(gòu)造函數(shù),則基類必須在主構(gòu)造函數(shù)中進(jìn)行初始化 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) //字符串模板 //$表示一個(gè)變量名或者變量值 //$varName表示變量值 //${varName.fun()}表示變量的方法返回值 println("學(xué)生姓名: ${s.name}") }
如果一個(gè)類要被繼承,可以用open關(guān)鍵字進(jìn)行修飾
Kotlin中的類可以有一個(gè)主構(gòu)造器,以及一個(gè)或多個(gè)構(gòu)造器,主構(gòu)造器是
類頭部的一部分,位于類名稱之后
以上這篇Kotlin實(shí)現(xiàn)在類里面創(chuàng)建main函數(shù)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Android studio 3+版本apk安裝失敗問題
這篇文章主要介紹了詳解Android studio 3+版本apk安裝失敗問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Android webview 遇到android.os.FileUriExposedException錯(cuò)誤解決辦法
這篇文章主要介紹了Android webview 遇到android.os.FileUriExposedException錯(cuò)誤解決辦法的相關(guān)資料,希望通過本文能幫助到大家,讓大家遇到這樣的問題解決,需要的朋友可以參考下2017-10-10Android矢量圖之VectorDrawable類自由填充色彩
這篇文章主要介紹了Android矢量圖之VectorDrawable類自由填充色彩的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-05-05使用Fragment+ViewPager實(shí)現(xiàn)底部導(dǎo)航欄
這篇文章主要為大家詳細(xì)介紹了使用Fragment+ViewPager實(shí)現(xiàn)底部導(dǎo)航欄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Android4.0平板開發(fā)之隱藏底部任務(wù)欄的方法
這篇文章主要介紹了Android4.0平板開發(fā)之隱藏底部任務(wù)欄的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android隱藏于顯示底部任務(wù)欄的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11基于Android實(shí)現(xiàn)跳轉(zhuǎn)到WiFi開關(guān)設(shè)置頁的詳細(xì)步驟
在Android應(yīng)用開發(fā)中,有時(shí)候需要引導(dǎo)用戶到特定的系統(tǒng)設(shè)置頁面,例如Wi-Fi開關(guān)設(shè)置頁,可以通過隱式Intent來實(shí)現(xiàn)這一功能,以下是詳細(xì)的步驟以及相關(guān)的Kotlin代碼示例,需要的朋友可以參考下2024-09-09Android簡單實(shí)用的可拖拽GridView組件分享
在我們?nèi)粘i_發(fā)中,使用?GridView?這種網(wǎng)格視圖的場合還是不少的,本篇我們來介紹一個(gè)支持拖拽的?GridView?組件,可以輕松搞定網(wǎng)格視圖的拖拽排序,需要的可以參考一下2023-06-06Android 中Popwindow彈出菜單的兩種方法實(shí)例
這篇文章主要介紹了Android 中Popwindow彈出菜單的兩種方法實(shí)例的相關(guān)資料,這里提供了兩種實(shí)現(xiàn)的方法,并附有實(shí)例代碼,需要的朋友可以參考下2017-03-03Android中DialogFragment自定義背景與寬高的方法
DialogFragment 彈出框默認(rèn)是在屏幕的中央,左右還有留白,那么如何自定義背景和寬高呢?下面這篇文章就來給大家介紹了關(guān)于Android中DialogFragment自定義背景與寬高的方法,需要的朋友可以參考下。2017-08-08