Kotlin包

包是用來管理類和函數,相同類可放置在不同的包下面,可防止命名衝突問題,非常的方便

在Kotlin中所有類和函數都包含在包裏面。如果沒有指明包,都是無名的默認包

以下是默認導入的

        kotlin.*

kotlin.annotation.*

kotlin.collections.*

kotlin.comparisons.* (自 1.1 起)

kotlin.io.*

kotlin.ranges.*

kotlin.sequences.*

kotlin.text.*

  jvm平臺會導入以下默認包

 java.lang.*

kotlin.jvm.*

  js:

kotlin.js.*

Kotlin的main方法中有這樣一個參數類型Array

fun main(args: Array<String>) {
}

這個Array是在包名爲Kotlin的包中,所以我們看到在kotlin文件中不需要導入它

就可以直接使用,會默認導入

wKiom1msFCzTn-1TAABWX0_Cb-w014.png


使用import關鍵字導入包


新建一個包名字爲com.mcx.basic,在包下面新建一個Kotlin文件Package.kt

然後新建一個包名字爲com.mcx.basic.pkg,在這個包下面新建一個類PackageTest,內容如下

package com.mcx.basic.pkg

class PackageTest{
    var a: Int = 1
}

在Package.kt中編寫以下代碼

package com.mcx.basic

import com.mcx.basic.pkg.PackageTest  //導入包

fun main(args: Array<String>) {
    //訪問com.mcx.basic.pkg包下面的PackageTest
    PackageTest().a
}

爲了使用PackageTest類,需要使用import關鍵字導該類,然後就可以直接通過

類名直接訪問


as關鍵字消除歧義


如果兩個類名相同,但是在不同的包下面,如有要同時使用這兩個類導入已經導入一個類後

另一個類只能使用類全限定名,這樣看起來並不是很舒服,如果多個地方需要使用的話會變

得很麻煩

新建一個包com.mcx.basic.anotherpkg,然後新建一個類同樣爲PackageTest,內容與com.mcx.basic.pkg.PackageTest一致

package com.mcx.basic.anotherpkg

class PackageTest{
    var a: Int = 1
}

Package.kt

package com.mcx.basic

import com.mcx.basic.pkg.PackageTest

fun main(args: Array<String>) {
    //訪問com.mcx.basic.pkg包下面的PackageTest
    PackageTest().a

    com.mcx.basic.anotherpkg.PackageTest().a
    
    com.mcx.basic.anotherpkg.PackageTest().a  //此處模擬多次使用PackageTest類
}

使用as關鍵字

import com.mcx.basic.pkg.PackageTest
//使用as關鍵字消除歧義
import com.mcx.basic.anotherpkg.PackageTest as AnotherPackageTest

fun main(args: Array<String>) {
    //訪問com.mcx.basic.pkg包下面的PackageTest
    PackageTest().a

    AnotherPackageTest().a   //實際訪問的是com.mcx.basic.anotherpkg包下的PackageTest 
}

as關鍵字相當於給com.mcx.basic.anotherpkg.PackageTest取了一個別名,這個時候使用起來非常方便

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章