【05】Kotlin基础进阶

(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支付宝打赏

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值