第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Kotlin學習:運算符重載

標簽:
Android Kotlin

Kotlin的运算符都是靠特定名称的方法支撑的,因此只要重载这些名称的方法,我们就可以为任意类添加这些运算符。
重载运算符的方法需要用operator修饰符进行标记。
1、重载单目前缀运算符
单目前缀运算符有"+","-","!"
单目前缀运算符及对应的方法

fun main(args: Array<String>) {
    val data: Data = Data(3, 4)
    //输出:+data : x = 4, y = 5
    println("+data : ${+data}")
    //输出:-data : x = 2, y = 3
    println("-data : ${-data}")
    //输出:!data : x = -3, y = -4
    println("!data : ${!data}")
}

class Data(val x: Int, val y: Int) {
    operator fun unaryPlus(): Data {
        return Data(x + 1, y + 1)
    }

    operator fun unaryMinus(): Data {
        return Data(x - 1, y - 1)
    }

    operator fun not(): Data {
        return Data(-x, -y)
    }

    override fun toString(): String {
        return "x = ${x}, y = ${y}"
    }
}

2、自加和自减运算符
自加:++,自减:–
自加和自减运算符及对应的方法

fun main(args: Array<String>) {
    var data: Data = Data(3, 4)
    //输出:+data : x = 4, y = 5
    println("data++ : ${data++}")
    //输出:-data : x = 2, y = 3
    println("data-- : ${data--}")
}

class Data(var x: Int, var y: Int) {
    operator fun inc(): Data {
        return Data(x++, y++)
    }

    operator fun dec(): Data {
        return Data(x--, y--)
    }

    override fun toString(): String {
        return "x = ${x}, y = ${y}"
    }
}

3、双目算术运算符
双目算术运算符及对应的方法
例子同以上,重载其对应方法即可
4、in和!in运算符
in和!in运算符及其对应的方法
例子同以上,重载其对应方法即可
5、索引访问运算符
索引访问运算符及对应的方法

fun main(args: Array<String>) {
    var str = "fkjava.org"
    //根据get方法来获取指定索引处的字符,输j
    println(str.get(2))
    //使用索引访问运算符来获取指定索引处的字符,输出j
    println(str[2])
    var list = ArrayList<String>()
    list.add("Java")
    list.add("Kotlin")
    list.add("Go")
    //使用索引访问运算符来获取指定索引处的字符,输出Kotlin
    println(list[1])
    list[2] = "Swift"
    //使用索引访问运算符来修改指定索引处的字符,输出[Java,Kotlin,Swift]
    println(list)
}

6、调用运算符
调用运算符及对应的方法

fun main(args: Array<String>) {
    val str = "java.lang.String"
    val mtd = Class.forName(str).getMethod("length")
    //使用传统方法,使用Method对象的invoke方法,输出4
    println(mtd.invoke("Java"))
    //使用调用运算符,输出4
    println(mtd("Java"))
}
點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
移動開發(fā)工程師
手記
粉絲
7
獲贊與收藏
31

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消