Kotlin学习

基础语法
  • 方法的定义
    • 有返回值
        fun test (a : Int , b : String) : Int {
            return 0
        }
    
    • 无返回值,Unit可省,vararg 可变参数 ,Int?可空,如图所示,第二个调用处未打印
    fun test(vararg v: Int?): Unit {
        v.forEach {
            Log.d(TAG, "test: $it")
        }
    }
    
    //测试
    test(1, 2, 3)
    
    test()
    
    打印:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A339u6DN-1628072579509)(https://i.bmp.ovh/imgs/2021/08/3ba83de863382345.png)]
  • 在 Kotlin 中,三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小。
  • 位操作符
   /**
    * 位操作符
    */
   private fun test1(a: Int) {
       //左移位  ,   shl   下相当于java的 <<
       Log.d(TAG, "test1: ${a.shl(1)}") // a * 2的1次方
       Log.d(TAG, "test1: ${a.shl(2)}") // a * 2的2次方
       Log.d(TAG, "test1: ${a.shl(3)}") // a * 2的3次方

       //右移位 ,   shl   下相当于java的 >>
       Log.d(TAG, "test1: ${a.shr(1)}") // a / 2的1次方
       Log.d(TAG, "test1: ${a.shr(2)}") // a / 2的2次方
       Log.d(TAG, "test1: ${a.shr(3)}") // a / 2的3次方
   }
   
   //测试
   test1(8) 

打印如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I0Jsra4y-1628072579511)(https://i.bmp.ovh/imgs/2021/08/f42da5a33af59432.png)]

类和对象
  • 嵌套类和内部类
class KtTest constructor(name: String) : AppCompatActivity() {

    private var name: String = name
    
    /**
     * 嵌套类
     */
    class TestClass {
        //嵌套类不能访问外部类的方法/属性
        val testClass = "TestClass"
    }
    /**
     * 测试嵌套类
     */
    fun testClass() {
        //访问嵌套类的方法/属性,须嵌套类中的方法/属性是public的
        Log.d(TAG, "testClass: ${KtTest.TestClass().testClass}")
    }
    
    /**
     * 内部类
     */
    inner class testInnerClass {
        val name1 = name
        fun test() {
            Log.d(TAG, "test: 内部类访问外部类成员变量:$name1")
        }
    }

    /**
     * 测试内部类
     */
    fun testInnerClassFun() {
        KtTest("").testInnerClass().test()
    }
}
  • 密封类
//使用关键字sealed定义即可,但是没在项目中遇见过,看菜鸟教程说使用密封类的好处就是在使用when的使用不用else了,因为when表达式就已经把所有情况覆盖了。就这?
sealed class Expr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值