1. 程式人生 > >Kotlin學習筆記:靜態方法

Kotlin學習筆記:靜態方法

1、靜態類
所有方法都為靜態方法,如工具類、常量池、等,直接把;類名前的class替換成object。

    object DataProviderManager {
    fun registerDataProvider(provider: DataProvider) {
        // ……
    }

    val allDataProviders: Collection<DataProvider>
        get() = // ……
}

在Kotlin裡,通過Object宣告的物件實際為單例模式的物件,它總是在 object 關鍵字後跟一個名稱。 就像變數宣告一樣,物件宣告不是一個表示式,不能用在賦值語句的右邊。可以理解為,通過Object關鍵字宣告一個單例物件

要引用該物件,我們直接使用其名稱即可:

DataProviderManager.registerDataProvider(……)

2.靜態方法
在Kotlin裡靜態方法可以通過“伴生物件”的方式實現,具體操作為:
在類的內部用companion object { }包裹所需的靜態函式

class MyClass {
    companion object Factory {
        fun create(): MyClass = MyClass()
    }
}

該伴生物件的成員可通過只使用類名作為限定符來呼叫:

val instance = MyClass.create()

可以省略伴生物件的名稱,在這種情況下將使用名稱 Companion:

class MyClass {
    companion object {
    }
}

val x = MyClass.Companion

相關推薦

Kotlin學習筆記靜態方法

1、靜態類 所有方法都為靜態方法,如工具類、常量池、等,直接把;類名前的class替換成object。 object DataProviderManager { fun registerDataProvider(provider: D

kotlin學習筆記object關鍵字介紹與java中的靜態變數與靜態方法的實現以及@JvmField和@JvmStatic的使用

在java中,靜態變數和靜態方法是我們經常需要用到的東西,但是我們在kotlin中,並不能找到static關鍵字。其實目前在kotlin中,也的確是static概念的,那麼我們該如何在kotlin中實現靜態變數和靜態方法呢?這時就要用到kotlin中的obje

Vue2.x源碼學習筆記-Vue靜態方法靜態屬性整理

temp next 技術 spa delet 結構 又是 靜態 https Vue靜態方法和靜態屬性,其實直接在瀏覽器中可以查看到的,如下 圈起來的是其靜態屬性,但是有的屬性對象中的屬性的值又是函數。未圈起來的則是函數。 其實它來自如下各個目錄下的js文件 // src

Kotlin學習筆記為什麼要學習kotlinkotlin的整合

Google在2017年的I/O大會上已經宣佈kotlin正式成為Android的一級開發語言。 為什麼要學習Kotlin Google釋出申明,目前已經有35%的Android專業開發人員使用kotlin(爆發式增長) Google與Oracle源於

學習筆記蒙特卡羅方法(待完善)

蒙特卡羅方法,是一種隨機演算法,通過它可以得到一個近似解。 書中本章主要講了,取樣,重要取樣,Gibbs取樣,MCMC 馬爾可夫鏈蒙特卡羅方法, 全面介紹了蒙特卡羅方面的相關知識。 —————————————————————————————————— 該筆記,由於時間關係,待有時

Kotlin學習筆記NotImplementedError: An operation is not implemented

// 自定義的一個介面 interface OnTestCallback{ fun onTest() } // 用快捷方法生成介面內的方法 setOnTestCallback(object :OnTestCallback{ ov

kotlin學習筆記延遲載入的簡單介紹lateinit和lazy

在使用kotlin開發中,因為各種原因,我們會經常需要使用到延遲載入的功能,目前kotlin的延遲載入主要有兩種:lateinit和lazy lateinit 的使用 lateinit是kotlin中的

JavaScript學習筆記數組的sort()和reverse()方法

content 參數 n) strong true 知識 efi 調整 數字 在實際的業務當中,很多時候要對定義好的數組重新排序。在JavaScript中自帶了兩個方法,可以對數組進行排序操作。這兩個方法就是sort()和reve

effectiveJava學習筆記方法(二)

慎用過載 在Java中,同一個類中的多個方法可以有相同的方法名稱,但是有不同的引數列表,這就稱為方法過載(method overloading)。 引數列表又叫引數簽名,包括引數的型別、引數的個數、引數的順序,只要有一個不同就叫做引數列表不同。 如下面的例子: public clas

effectiveJava學習筆記方法(一)

檢查引數的有效性 1、一般在方法執行之前先檢查引數的有效性,如果引數值無效,那麼很快它就會失敗,並且清楚的丟擲合適的異常。 如果這個方法沒有檢查引數的異常,那麼可能在方法處理中出現令人費解的異常。更糟糕的有可能是,方法可以正常返回,但是卻使得某個物件處於被破壞的狀態. 2、對於公有方法,

java學習筆記方法與陣列

方法: 方法的定義與使用: java中方法就是函式,將實現某些功能的程式碼封裝到方法中。 /* 概念:就是完成某個功能的程式碼,函式就是方法 格式: 修飾符 返回值型別 方法名(引數型別 引數名1,引數型別 引數名2....){ 方法體語句: return 返回值:

Java技術學習筆記過濾器鏈的實現方法、配置和案例分析

今天給大家分享的是Java技術學習筆記:過濾器鏈的實現方法、配置和案例分析。 過濾器能夠對網站中的各種內容進行過濾(頁面、Servlet、圖片、檔案),可以在網站內容請求和響應時進行一些操作,完成一些通用的功能。 過濾器鏈 在專案中可以建立多個過濾器,網站內容可能會經過多個過濾器,多個過濾器就形成了過濾

JAVA學習筆記 static(靜態變數 靜態方法)

一。程式碼 (1)public class statictest {public static void main(String args[]){ statictest tm=new statictest(); tm.printSxt(); int c=tm.add(30,40,50)+1000;

敏捷開發學習筆記需求優先順序方法(需求做還是不做)

轉自:https://mp.weixin.qq.com/s?__biz=MzIwMDMyNTE4Ng==&mid=401739882&idx=1&sn=531e9ea49456e55a8437cd8b995c5237&mpshare=1&

【LaTex】學習筆記入門使用方法

     本部落格的LaTex學習以MiKTex+TeXStudio為編輯器。      關於LaTex環境的搭建和相關軟體的安裝,我主要是用了以下軟體: proTeXt:http://tug.org

opencv學習筆記一些函式、類的使用方法

sprintf函式功能 把格式化的資料寫入某個字串緩衝區。 1.標頭檔案 stdio.h 2.原型 int sprintf( char *buffer, const char *format, [ argument] … ); 引數列表 buff

Kotlin學習筆記之一Kotlin基礎

1.函式: /** * 關鍵詞fun 申明是函式 * 引數形式:引數名:型別 * Kotlin中陣列是一個類 * 這是一個不帶返回值的函式 */ fun main(args: Array<String>){ println("

Guava學習筆記複寫的Object常用方法

  在Java中Object類是所有類的父類,其中有幾個需要override的方法比如equals,hashCode和toString等方法。每次寫這幾個方法都要做很多重複性的判斷, 很多類庫提供了覆寫這幾個方法的工具類, Guava也提供了類似的方式。下面我們來看看Guava中這幾個方法簡單使用。   e

Android知識體系梳理筆記Kotlin學習筆記類和繼承以及Anko(全)的基本使用

前言 對於kotlin,我是邊寫專案邊學的方式來學習的,這些都是在做專案的時候遇到的問題及擴充套件學習的時候記錄的,雖然有些內容不會涉及,但是我認為這種邊寫程式碼邊學習的方式特別有助於記憶,畢竟紙上得來終覺淺! 類和繼承 Kotlin較Java在繼承和實現

學習筆記幾種注入方法

//member template class Integer{ public: template <int N> void multiple(); private: int i_; }; template <> void Int