05Kotlin基础进阶

Posted 清风百草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05Kotlin基础进阶相关的知识,希望对你有一定的参考价值。

(1)一个人只要自己不放弃自己,整个世界也不会放弃你.
(2)天生我才必有大用
(3)不能忍受学习之苦就一定要忍受生活之苦,这是多么痛苦而深刻的领悟.
(4)做难事必有所得
(5)精神乃真正的刀锋
(6)战胜对手有两次,第一次在内心中.
(7)好好活就是做有意义的事情.
(8)亡羊补牢,为时未晚
(9)科技领域,没有捷径与投机取巧。
(10)有实力,一年365天都是应聘的旺季,没实力,天天都是应聘的淡季。
(11)基础不牢,地动天摇
(12)写博客初心:成长自己,辅助他人。当某一天离开人世,希望博客中的思想还能帮人指引方向.
(13)编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~

Kotlin基础进阶

文章目录

1.Kotlin基础知识

1.1kotlin使用java的回调

    Handler(Looper.getMainLooper(),object : Handler.Callback
        override fun handleMessage(msg: Message): Boolean 
            return true
        

    )

1.2Kotlin的lamboda表达式

    Handler(Looper.getMainLooper(),Handler.Callback 
        true
    )

1.3使用线程

    Thread
        Log.e("","main:")
    .start()

2.Java中调用Kotlin函数

(1)注意Kotlin函数隔离,即禁止Java调用Kotlin函数的写法

2.1Kotlin函数

/**
 * @author XiongJie
 * @version appVer
 * @Package com.gdc.kotlin.sample06.kt.s01
 * @file
 * @Description:
 * @date 2021-6-4 12:51
 * @since appVer
 */
fun show(name : String)
    print("name:$name")


fun showAge(age : Int)
    print("age:$age")


fun add(n1:Int,n2:Int)
    println("result:$n1+n2")


//禁止Java调用Kotlin函数
fun `showTest`()
    println("showTest")


fun `   `(sex:Char)
    println("sex:$sex")


//这是用数字对代码进行保护
fun `44552`(s:Char)
    println("s:$s")


//Kotlin可以随意调用Kotlin函数
fun main()
    `showTest`()
    `   `('M')
    `44552`('s')

2.2Java调用

public class Client 

    public void test()
        //1.Java调用Kotlin
        KTStudentKt.show("derry");
        KTStudentKt.showAge(22);
        KTStudentKt.add(3,8);
        //2.调用Kotlin禁止调用的方法
        //`showTest()`
    


3.解析构造函数

/**
 * @author XiongJie
 * @version appVer
 * @Package com.gdc.kotlin.sample07
 * @file
 * @Description: 数据bean
 * @date 2021-6-4 13:12
 * @since appVer
 */
data class User(val id:Int,val name:String,val sex:Char)

/**
 * 1.构造函数赋值与解析
 */
fun main()
    //1.1对象创建
    val u = User(1,"张三",'M')

    //1.2解析构造函数数据,执行完u.copy()就会有值,相当于new了一个全参对象
    val(v1,v2,v3) = u.copy()

    //1.3输出
    println("V1:$v1,V2:$v2,V2:$v3")

class Student(var id:Int,var name:String,var sex:Char) 

    //1.component不能写错,函数返回值为Int 
    //2.手写构造函数解析(简称解构),数据bean不用写,会自动生成以下代码
    operator fun component1():Int = id
    operator fun component2():String = name
    operator fun component3():Char = sex
    operator fun component4():String = "李明"


/*
  1.解析Student构造函数数据
 */

fun main()
    //1.1对象创建
    val stu = Student(11,"李审",'M')

    //1.2构造函数赋值
    val (v1,v2,v3,v4) = stu;

    //1.3输出
    println("V1:$v1,V2:$v2,V2:$v3,v4:$v4")

4.扩展函数

/**
 * @author XiongJie
 * @version appVer
 * @Package com.gdc.kotlin.sample08
 * @file
 * @Description:空类
 * 1.可以在类外添加扩展函数
 * @date 2021-6-4 13:41
 * @since appVer
 */
class Student 


fun main() 
    //1.创建对象
    val stu = Student();

    //2.扩展函数调用
    stu.add(1,3)
    stu.show()

    //3.Kotlin自身提供的扩展函数调用
    val file = File("d:/test.txt")
    file.readText()
    file.show()


/**
 * 1.给Student类增加扩展函数
 */
fun Student.add(n1:Int,n2:Int)
    println("result:$n1+n2")


fun Student.show()
    println("Student show")


//1.给Java的File增加扩展函数
fun File.show()
    println("给Java的File增加扩展函数")


//2.覆盖了File类的readText方法,优先调用的是覆盖后的扩展函数
fun File.readText()
    

4.1java调用Kotlin扩展函数

public class Test 

    public void test()
        File file = new File("test.txt");
        //1.java无法直接调用Kotlin的扩展函数
        //file.readText();

        //2.Java调用Kotlin的扩展函数
        String ret = FilesKt.readText(file, Charsets.UTF_8);
    



4.2函数作为另一个函数的形参

fun main() 

    /**
     * 1.表示函数部分
     * 1.1调用函数
     */
    show(true)
        println(it)
    


/**
 * 1.loginMethod:(Boolean)->Unit等价函数
 */
fun loginMethod(b:Boolean) : Unit



/**
 * 1.函数可以作为另一个函数的形参
 * 1.1.loginMethod不接受参数并且不返回值
 * loginMethod:(Boolean)->Unit
 * (1)loginMethod:方法名
 * (2)(Boolean)方法的括号及参数类型
 * (3)->方法体
 * (4)Unit== void返回值
 */
fun show(isLogin:Boolean,loginMethod:(Boolean)->Unit)
    if(isLogin)
        println("登录成功")
        //调用函数
        loginMethod(true)
    else
        println("登录失败")
        //调用函数
        loginMethod(false)
    

5.打赏鼓励

感谢您的细心阅读,您的鼓励是我写作的不竭动力!!!

5.1微信打赏

5.2支付宝打赏

以上是关于05Kotlin基础进阶的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin基础从入门到进阶系列讲解(进阶篇)Jetpack,(更新中)

Kotlin基础从入门到进阶系列讲解(进阶篇)Jetpack,(更新中)

初创公司20问:问初心问实力,也问未来

Kotlin基础从入门到进阶系列讲解(进阶篇)Android之Activity的生命周期

Kotlin基础从入门到进阶系列讲解(基础篇)Fragment的基本使用

Kotlin基础从入门到进阶系列讲解(基础篇)Fragment的基本使用