Kotlin學(xué)習(xí)(四)——包、修飾符

一糙捺、包

1.包的定義

我們都知道Java中,包是用關(guān)鍵字package定義笙隙,同樣的在Kotlin中洪灯,也是用package關(guān)鍵字定義

例如:

/*
*
*Demo類的全名是 com.hello.kotlin.Demo,這里跟java中的書寫沒有任何區(qū)別
*
*/
package com.hello.kotlin
class Demo{

}
Kotlin和Java中包定義的區(qū)別

#######Java:包名的和路徑必須保持一致,如上面Demo類所在包名為:com.hello.kotlin.Demo,那么項目工程中與之對應(yīng)的包所在路徑也必須是:

com
---hello
--------kotlin

這點我們應(yīng)該是沒有任何質(zhì)疑的竟痰,但在Kotlin中卻并沒有這樣的限制

Kotlin:允許包名和路徑不同签钩,也就是說Demo類的報名為:com.hello.kotlin.Demo,項目中與之所對應(yīng)的文件路徑可以不必保持一致的:

下面的路徑在Kotlin中將被允許

cn
---kotlin
---------hello

2.默認導(dǎo)包

我們知道Java中導(dǎo)包都需要我們手動或使用編譯器進行配置了自動導(dǎo)包才能完成的一個操作坏快,但Kotlin中則不同铅檩,有很多包會默認導(dǎo)入到每一個kotlin文件中,比如下面這些:

kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.* (自 1.1 起)
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*

當(dāng)然莽鸿,根據(jù)所在的不同平臺昧旨,也會存在其平臺特有的包被默認導(dǎo)入到每一個kotlin文件中拾给,如:

JVM
java.lang.*
kotlin.jvm.*
JavaScript
kotlin.js.*

3.導(dǎo)入

如果我們使用的類,不在默認導(dǎo)入中時兔沃,就需要我們進行手動導(dǎo)包了蒋得,當(dāng)然Kotlin同樣也支持使用編譯器實現(xiàn)快捷導(dǎo)包,在AS上的使用和java并沒任何區(qū)別

導(dǎo)入指定類,例如我們需要導(dǎo)入上述Demo類的包
import com.hello.kotlin.Demo
如果我們需要使用到com.hello.kotlin包中其他的類乒疏,最好是希望把該包所有類都導(dǎo)入進來供我們使用额衙,那么像下面這樣就可以實現(xiàn)了
import com.hello.kotlin.*//導(dǎo)入com.hello.kotlin下面所有的類,子包等
需要注意的是與Java有點區(qū)別怕吴,Kotlin中沒有import static的語法入偷,所有的類,字段等都是用import語法導(dǎo)入

二械哟、修飾符

1.類,成員修飾符

除了與java共有的public殿雪、private暇咆、protected、final的外丙曙,kotlin還有其特有的修飾符爸业,open、internal

public——能見到類聲明的任何客戶端都可見其 public 成員亏镰。
private——意味著只在這個類內(nèi)部(包含其所有成員)可見
protected—— 和 private一樣 + 在子類中可見
internal——能見到類聲明的 本模塊內(nèi) 的任何客戶端都可見其 internal 成員
open——只有被open修飾的類才可以被繼承扯旷,同樣的也只有被open修飾的方法才可以被重寫
final——被final修飾的類,不可被繼承索抓,final修飾的方法不可被重寫钧忽。默認修飾符

有個和java較大區(qū)別需要注意 :對于Java中外部類不能訪問內(nèi)部類的 private 成員,Kotlin 中是不允許外部類不能訪問內(nèi)部類 private 成員<br />
如果你覆蓋一個 protected 成員并且沒有顯式指定其可見性逼肯,該成員還會是 protected 可見性

open class Outer {
private val a = 1protected open val b = 2internal val c = 3val d = 4  // 默認 publicprotected class Nested {
    public val e: Int = 5
}
}

class Subclass : Outer() {
// a 不可見// b耸黑、c、d 可見// Nested 和 e 可見override val b = 5   // “b”為 protected
}

class Unrelated(o: Outer) {
// o.a篮幢、o.b 不可見// o.c 和 o.d 可見(相同模塊)// Outer.Nested 不可見大刊,Nested::e 也不可見
}

2.構(gòu)造函數(shù)

要指定一個類的的主構(gòu)造函數(shù)的可見性,使用以下語法(注意你需要添加一個 顯式 constructor 關(guān)鍵字):

class C private constructor(a: Int) { …… }

這里的構(gòu)造函數(shù)是私有的三椿。默認情況下缺菌,所有構(gòu)造函數(shù)都是 public,這實際上 等于類可見的地方它就可見(即 一個 internal 類的構(gòu)造函數(shù)只能 在相同模塊內(nèi)可見).

模塊

可見性修飾符 internal 意味著該成員只在相同模塊內(nèi)可見搜锰。更具體地說伴郁, 一個模塊是編譯在一起的一套 Kotlin 文件:

一個 IntelliJ IDEA 模塊;
一個 Maven 或者 Gradle 項目纽乱;
一次 <kotlinc> Ant 任務(wù)執(zhí)行所編譯的一套文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛾绎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌租冠,老刑警劉巖鹏倘,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異顽爹,居然都是意外死亡纤泵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門镜粤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捏题,“玉大人,你說我怎么就攤上這事肉渴」” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵同规,是天一觀的道長循狰。 經(jīng)常有香客問我,道長券勺,這世上最難降的妖魔是什么绪钥? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮关炼,結(jié)果婚禮上程腹,老公的妹妹穿的比我還像新娘。我一直安慰自己儒拂,他們只是感情好寸潦,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著社痛,像睡著了一般甸祭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上褥影,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天池户,我揣著相機與錄音,去河邊找鬼凡怎。 笑死校焦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的统倒。 我是一名探鬼主播寨典,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼房匆!你這毒婦竟也來了耸成?” 一聲冷哼從身側(cè)響起报亩,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎井氢,沒想到半個月后弦追,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡花竞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年劲件,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片约急。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡零远,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出厌蔽,到底是詐尸還是另有隱情牵辣,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布奴饮,位于F島的核電站服猪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拐云。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一近她、第九天 我趴在偏房一處隱蔽的房頂上張望叉瘩。 院中可真熱鬧,春花似錦粘捎、人聲如沸薇缅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泳桦。三九已至,卻和暖如春娩缰,著一層夾襖步出監(jiān)牢的瞬間灸撰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工拼坎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浮毯,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓泰鸡,卻偏偏與公主長得像债蓝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子盛龄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 前言 人生苦多饰迹,快來 Kotlin 芳誓,快速學(xué)習(xí)Kotlin! 什么是Kotlin啊鸭? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,161評論 9 118
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,732評論 25 707
  • 夏夜锹淌,吃過晚飯的幾個老娘們在門前的大榆樹下乘涼嘮嗑。 號稱“喳喳嘴”的拴住媳婦莉掂,神秘兮兮把聲音壓低葛圃,嘴巴湊近其他人...
    惠思考的牛閱讀 246評論 0 1
  • 本書揭示了兩個不同但相關(guān)的概念:設(shè)計和理解。前兩周對于優(yōu)秀的教學(xué)設(shè)計有了一定的理解憎妙,在更深入地了解模版之...
    Gaoyayya閱讀 298評論 0 0
  • 《青花九章》 一 以跪拜的方式 匍匐于蒲團 還來不及擦去時間的蒙塵 一剎那就揉碎了豪情 二 也許會有一雙手 把一個...
    冰眉鐵面閱讀 290評論 0 3