IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Kotlin学习 -> 正文阅读

[移动开发]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
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:27:58  更:2021-08-05 17:28:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 9:49:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码