12.09

內(nèi)聯(lián)函數(shù)let with run apply also

//閉包形式返回
    //let定義一下作用域趟咆,判空處理
    haha.let {
        haha.run()
    }
    //類多個方法或?qū)傩栽遥乐诡惗鄬?护桦,多用于onBinderViewHolder中
    with(HaHa("vv",30)){
        println("$name$age")
    }
    //let+with屬性,返回最后一句話
    HaHa("vv",30).run {
        println("$name$age")
    }
    //返回this
    //let+with屬性侮穿,返回對象自身域醇,用于實(shí)例初始化或 view = View.inflate().apply{初始化}
    val haHa = HaHa("vv",30).apply {
        println("$name$age")
    }
    //also 與let一樣,不過返回的是對象本身
    val haHa2 = HaHa("vv",30).also {
        println("$it.name$it.age")
    }

靜態(tài)常量

companion object{
    val foo:String = "aa"
    const val foo2:String = "bb"
    @JvmField
    val foo3 = "cc"
}

頂級常量:const val FOO = "foo"

集合數(shù)組常用操作

image.png

循環(huán)跳出

image.png

類型強(qiáng)轉(zhuǎn)

image.png

類基礎(chǔ)

//構(gòu)造函數(shù)
//無(注釋袖扛,可見性修飾符)constructor可省略
class SuperClass @JvmOverloads private constructor(name:String, age:Int = 0){}
class SuperClass1(name:String){
//    var j = SuperClass("jj")//JvmOverloads自動生成2個構(gòu)造函數(shù)
}
//定義成員變量拦耐,演變1
class SuperClass2 (name:String,age:Int){
    private var name:String
    private var age:Int
    init {
        this.name = name
        this.age = age
    }
}
//演變2
class SuperClass3 (name:String,age:Int){
    private var name:String = name
    private var age:Int = age
}
//演變3
open class SuperClass4 (private var name: String, private var age: Int){
    constructor(name: String,age: Int,url:String):this(name,age){
    }
    constructor(name: String,age: Int,url:String,sex:Boolean):this(name,age,url){
    }
    //默認(rèn)類中所有是final的,想覆寫或繼承必須open
    open fun haHa(){
        this.name = "你好"http://this關(guān)鍵字用于訪問對象的其他成員
        this.age = 90
    }
    fun hh(){}
}

class ChildClass constructor(private var name: String,private var age: Int,private var url: String) : SuperClass4(name,age,url,true){
    override fun haHa() {
        super.haHa()
        super.hh()
        this.url = "http://www.baidu.com"
    }
}
//抽象類的abstract修飾符默認(rèn)是open的
abstract class A{
    abstract fun jj()
    fun ii(i:Int){}
}

class B(private var age:Int) : A(){
    override fun jj() {
        super.ii(age)
    }
}
//接口
interface C{
    fun c()
}
interface D{
    fun d()
}
class E(food:String):C,D{
    override fun c() {}
    override fun d() {}
}
//嵌套類溉愁,內(nèi)部類
class Outer{
    var name = "sdfa"
    var jj = Nested().exe()
    class Nested{
        fun exe(){
            //訪問不了外部類的成員
        }
    }

}
class Outer2{
    var name = "saf"
    inner class Inner{
        fun exe(){
            println(name)
        }
    }
}
fun uu(){
    Outer2().Inner().exe()
}
//枚舉,枚舉類實(shí)例可數(shù)处铛,密封類子類可數(shù)
enum class Week{
    星期一,星期二,星期三,星期四,星期五,星期六,星期日
}
enum class Week2(var arg1:String,var arg2:String){
    YI("22","ee"),
    ER("44","gg")
}
fun dd(){
    Week2.YI.arg1 = "555"
}
var jj  = Week2.YI.arg1

//密封類構(gòu)造函數(shù)是私有的,因此密封類的子類必須在內(nèi)部或同一文件內(nèi)
sealed class HHH{
    object AAA : HHH() {}
    class BBB: HHH(){}
}
class CCC:HHH(){
    fun hh(){}
}
//數(shù)據(jù)類,必須val或var修飾拐揭,主構(gòu)造至少一個參數(shù)
//此類編譯器可以自動生成equals撤蟆,hashcode等方法
data class Bean(val hhh: HHH){}
//單例
object Singleton{
    var name = "單例"
    fun hj(){

    }
}
fun call(){
    Singleton.name = "111"
    Singleton.hj()
}

//伴生對象,kotlin中的靜態(tài)變量,類加載時初始化堂污,和類生命周期一樣
class ddd{
    companion object 伴生對象名稱{//(也可以不寫名稱)
        fun ooo(){}
    }
}
fun ttt(){
    ddd.伴生對象名稱.ooo()

}
//委托代理模式 AA委托給JJJ
interface AA{
    fun aa()
}
class JJJ:AA{
    override fun aa() {

    }
}

//一
class P:AA by JJJ(){}
class PP(jjj: JJJ):AA by jjj

fun uuu(){
    //一
    var p:P = P()
    p.aa()
    //
    var jjj =JJJ()
    PP(jjj).aa()
}
//屬性委托,child委托給parent,也就是家肯,委托類監(jiān)聽被委托類
class Parent{
    var name:Int = 0
    //setValue() 和 getValue() 方法前必須用 operator 關(guān)鍵字修飾
    //
    //getValue()方法返回類型必須與委托屬性相同或是其子類
    //
    //如果委托屬性是 val 類型,被委托方法只需要實(shí)現(xiàn) getValue()盟猖, 如果是 var 類型讨衣,則需要實(shí)現(xiàn)
    //getValue() 和 setValue()
    operator fun getValue(child: Child, property: KProperty<*>): Int {
        println("getValue")
        return name
    }

    operator fun setValue(child: Child, property: KProperty<*>, i: Int) {
        println("setValue")

    }
}
class Child{
    var name:Int by Parent()
    fun ooo(){
        println("被委托類的方法")
    }
}
fun LLL(){
    val child:Child = Child()
    child.name=100

}
//延遲加載,變量被訪問時才會初始化,val ** by lazy
//執(zhí)行第一句話
//執(zhí)行中間一句話
//執(zhí)行最后一句//初始化完
//safsdfsf//開始執(zhí)行式镐,只會執(zhí)行最后一句
//safsdfsf
//safsdfsf
fun kkk(){
    val name by lazy {
        println("執(zhí)行第一句話")
        println("執(zhí)行中間一句話")
        println("執(zhí)行最后一句")
        "safsdfsf"
    }
    println(name)
    println(name)
    println(name)
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末反镇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子娘汞,更是在濱河造成了極大的恐慌歹茶,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惊豺,居然都是意外死亡燎孟,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門尸昧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揩页,“玉大人,你說我怎么就攤上這事烹俗”拢” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵衷蜓,是天一觀的道長累提。 經(jīng)常有香客問我,道長磁浇,這世上最難降的妖魔是什么斋陪? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮置吓,結(jié)果婚禮上无虚,老公的妹妹穿的比我還像新娘。我一直安慰自己衍锚,他們只是感情好友题,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著戴质,像睡著了一般度宦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上告匠,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天戈抄,我揣著相機(jī)與錄音,去河邊找鬼后专。 笑死划鸽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的戚哎。 我是一名探鬼主播裸诽,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼型凳!你這毒婦竟也來了丈冬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤甘畅,失蹤者是張志新(化名)和其女友劉穎殷蛇,沒想到半個月后实夹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粒梦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了荸实。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匀们。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖准给,靈堂內(nèi)的尸體忽然破棺而出泄朴,到底是詐尸還是另有隱情,我是刑警寧澤露氮,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布祖灰,位于F島的核電站,受9級特大地震影響畔规,放射性物質(zhì)發(fā)生泄漏局扶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一叁扫、第九天 我趴在偏房一處隱蔽的房頂上張望三妈。 院中可真熱鬧,春花似錦莫绣、人聲如沸畴蒲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽模燥。三九已至,卻和暖如春掩宜,著一層夾襖步出監(jiān)牢的瞬間蔫骂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工锭亏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纠吴,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓慧瘤,卻偏偏與公主長得像戴已,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锅减,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

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