• Kotlin基础入门 - 从Java快速过度Kotlin


    虽然之前用了Kotlin一段时间,但是回头看竟然没有做这方面的笔记,索性系统记录一下

    基础过度

    自语:Kotlin语法糖真是秀儿,话说,并不是Java不如Kotlin,而是Google在推属于android自己的语言

    本篇主要记录一些 Kotlin 基础使用方法,方便各位 快速从Java转战到Kotlin,为了简单明了我会综合Java、Kt的不同使用一并记录,有兴趣的也可以自己去 Google 的 Kotlin文档 学习 ~

    如何声明变量?

    Java
     String data = "宋老三";
    
    • 1
    Kotlin

    在Kotlin声明变量时,通常有俩种方式

    • var 赋值可被修改
    • val 仅支持初始化赋值,可参考Java final关键字

    Kotlin 常规版

    var dataVar: String = "宋老三"
    val dataVal: String = "宋老三"
    
    • 1
    • 2

    Kotlin 简化版(Kt 自带类型推断特性,可根据赋值数据自行推断变量类型)

    var dataVar = "宋老三"
    val dataVal = "宋老三"
    
    • 1
    • 2

    如何声明方法、函数?

    函数又称为方法,是具有特定功能的一段独立程序。

    我们在Java中经常将函数说成方法,在Kotlin中称为函数更多一些,关于函数主要使用fun函数进行声明,以下一般为函数组成结构

    函数声明  函数名称([参数名称:参数类型,参数名称:参数类型]):返回值类型{ 
        执行语句 
        … 
        return 返回值 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 函数声明:Kotlin中的函数声明使用关键字 fun
    • 函数名称:每一个函数都有函数名称,方便在函数调用时使用。
    • 参数类型:用于限定调用函数时传入参数的数据类型
    • 参数名称:是一个变量,用于接收调用函数时传入的数据
    • 返回值类型:用于限定函数返回值的数据类型
    • 返回值:被return语句返回的值,该值会返回给调用者
    无参无返回值

    Java

     public void test() {} 
    
    • 1

    Kotlin

     fun test() {
        println("这是一个无参无返回值的函数") 
     }
    
    • 1
    • 2
    • 3

    返回 Unit类型,可不写

     fun test(): Unit { 
        println("这是一个无参无返回值的函数") 
     }
    
    • 1
    • 2
    • 3
    无参有返回值

    Kotlin

     fun test(): String { 
        return " 这是一个无参有返回值的函数" 
     }
    
    • 1
    • 2
    • 3
    有参无返回值

    Java

     public void test(int num1) {} 
    
    • 1

    Kotlin

     fun test(num1: Int) {
         println("这是一个无参无返回值的函数") 
     }
    
    • 1
    • 2
    • 3
    有参有返回值

    Java

     public int test(int num1, int num2) {
        return num1 + num2;
     }
    
    • 1
    • 2
    • 3

    Kotlin

    注意:档方法需要return返回值时,在方法后声明返回类型

     fun test(num1: Int, num2: Int): Int {
        return num1 + num2
     }
    
    • 1
    • 2
    • 3
    单表达式函数

    语法糖 - 当返回值仅为一行时可以直接使用 = 返回

    fun test(num1: Int, num2: Int): Int = num1 + num2
    
    • 1

    如何创建对象?

    Java

    创建类(包含set方法、get方法、构造方法)

    public class Dream {
        public String what;
        public String time;
    
        public Dream() {
            super();
        }
     
        public Dream(String what, String time) {
            this.what = what;
            this.time = time;
        }
    
        public String getWhat() {
            return what;
        }
    
        public void setWhat(String what) {
            this.what = what;
        }
    
        public String getTime() {
            return time;
        }
    
        public void setTime(String time) {
            this.time = time;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    创建对象

    Dream info = new Dream("Life","2022");
    
    • 1
    Kotlin

    创建类(包含set方法、get方法、有参构造方法

    open class Dream {
        //父类无参的次构造器
        constructor() {
            println("无参构造器")
        }
    
        //父类无参的次构造器
        constructor(what: String, time: String) {
            println("无参构造器")
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    简化写法,不过没有无参构造

    open class Dream(var what: String, var time: String) {}
    
    • 1

    创建对象

    var dream: Dream = Dream("Life", "2022")
    //类型推导
    var dream = Dream("Life","2022")
    
    • 1
    • 2
    • 3

    如何类继承?

    Java
    public class Son extends Dream{}
    
    • 1
    Kotlin
    class Son : Dream(){}
    
    • 1

    如何实现接口?

    Java

    创建接口

    public interface DreamListener {
        public void gogo();
    }
    
    • 1
    • 2
    • 3

    接口实现

    实现方式 → implements +接口

    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    
    public class MainActivity extends AppCompatActivity implements DreamListener {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        @Override
        public void gogo() {
            
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    Kotlin

    创建接口

    interface DreamListener {
        fun gogo()
    }
    
    • 1
    • 2
    • 3

    接口实现

    实现方式 → :+接口

    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    
    class MainActivity : AppCompatActivity(), DreamListener {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
        }
    
        override fun gogo() {
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    为什么arcmap结果一直运行不成功,输出的栅格也是空的
    torch.utils.data
    Nginx配置
    FFMPEG 视频类过滤器学习整理
    Bert基础(十六)--Bert实战:中文文本分类任务-- transformers库实现
    解析Flutter应用在iOS环境中的性能优化技巧
    子域名收集&Google搜索引擎语法
    docker安装redis
    关于通用相机库
    TypeScript后端http请求
  • 原文地址:https://blog.csdn.net/qq_20451879/article/details/122549454