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 快速上手

hello ,world

最简单的一段

fun main(){
    println("Hello, World!")
}

对比下 Java 的 hello,world ,简直不要太爽

public class Hello{
	public static void main(String[] args){
		System.out.println("Hello, World!");
	}
}

有点 Java 体系下的 Python 那味道了

println 和Java System.out.println 相同

变量

关键词:

  1. val 声明常量
  2. var 声明变量

现在不需要在定义变量前确定数据类型了,还有点不适应

fun main(){
    val a = 1
    var b = 2
    println("" + a + " " + b)
}

特别注意: 如果一个 prinln 语句里面需要输出多个变量,需要像上面这样做,在前面手动添加双引号表示一个输出的开头

当然,kotlin 中也可以显示地声明数据类型,如果像上面这样,没有声明数据类型,数据类型则会被自动推导出,大部分情况下是够用的,像 Python 一样,部分情况需要自己声明的还是需要去声明

**有一个与 Java 中的不同点:**数据类型的名字虽然一样,但是开头必须大写,因为底层实现不一样,kotlin 使用的是类封装的数据类型,像 string 类那样,这个需要注意

例如:Java 中的 int ,kotlin 中则是 Int,以及 double 与 Double

常用运算

逻辑运算和其他语言差不多

函数

格式:

fun Function(a1: Int, a2: Double): Int{
    return 0
}
  1. fun 关键字
  2. 紧跟着的是函数名
  3. 后面的括号里面,形参名字:数据类型,形参名字和数据类型使用冒号一一对应
  4. 最后是返回值

与 Python 的不同:

  • 形参列表中需要指定形参的数据类型

语法糖:

什么是语法糖?
可以理解为一些小彩蛋

fun Function(a1: Int, a2: Double) = 表达式

当 函数里面的内容较少的时候,可以这么用,因为表达式的结果肯定是一个确定的数据类型,所以,返回值的类型都不用写上去了

逻辑控制

if 语句们

包括,if ,else, else if
用法跟 C 语言一样

注意点:

  1. if 的表达式可以有返回值
  2. 花括号里面的东西可以只有一个数字
  3. 还可以直接在函数的 return 里面写
fun a():Int{
    return if ( 2 > 3){
        1
    }else{
        2
    }
}

像下面这么写,也是没有问题的

如果 b 的数值大于 c 则将 b 的数值作为返回值,否则是 c ,直接省去了 return

fun a():Int{
    return if ( b > c ){
        b
    }else{
        c
    }
}

switch

kotlin 中使用 when ,而没有 switch

when 的括号中,可以传入任意类型的参数

fun b(number: Int){
    when (number){
        1 -> "a"
        2 -> "b"
    }
}

格式:
when (表达式){
表达式_1n -> 表达式_2n
}

for 循环

for (循环变量 in 起点 until 终点 step 步长)

for (i in 1 until 10 step 2){
        
    }

使用 until 最终会循环到 终点 - 1 的位置,就像 i < n 那样

如果步长为 1 还可以这么写

for (i in 1..10){
        
    }

如果在里面添加 println( i ) 可以看到输出的结果为 1 到 10

类和对象

类的定义与实例化

最简单的如下

class Test_class {
    
}

如果需要被继承,需要在 class 前面加上 open

open class Test_class {
    
}

继承某个类呢?

class Test_class : 被继承的类的名称(){
    
}

实例化的过程和 Java 中一样

类名 对象名 = new 类名(构造函数的参数列表)

构造函数:

kotlin 里面有主构造函数,还有次构造函数,是不是听起来和其他语言有很大差别,有点诡异,别多想,先往下看

下面使用的是主构造函数

class Test_class(val a: Int, val b: Int) {
    init {
        println(a)
        println(b)
    }
}

init 表示的是构造函数的函数体,相当于 Python 中的__init__

问题来了:如果我需要根据传入参数的个数,进行不同的初始化,怎么办?

使用,次构造函数

而且,需要对函数参数的个数进行重新设计

??? 为什么

先看一段 C++ 的构造函数

Test_class(int a)
Test_class(int a, int b)
Test_class(int a, int b,int c)

在 C++ 中,可以利用函数的重载,对传入参数个数的不同的情况,针对性地进行初始化

在 kotlin 中,有这么一个原则:次构造函数被调用前,主构造函数必须被调用

是不是马上就想到 kotlin 中,构造函数的参数怎么设计了呢?

  1. 主构造函数的参数个数最小化
  2. 次构造函数进行拓展

所以,主构造函数设计一个参数 a 即可,对 b,c 这些参数,再针对性地进行设计其他参数的次构造函数

也就是:宁少勿多

对了,次构造函数是这么用的:

class Test_class(val a: Int, val b: Int) {
	// 主构造函数函数体
    init {
        println(a)
        println(b)
    }
    // 次构造函数
    constructor(参数列表){
    
    }
}

接口

跟 Java 里面的一样,函数不能有函数体,整个东西是高度抽象的

interface a{
    函数名()
}

访问范围控制符

和 Java 中的一样,Java 中有一个 default 而 kotlin 中,默认(没显示地写出来的时候)的是 public

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-13 23:35:31  更:2022-04-13 23:39:21 
 
开发: 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年11日历 -2024/11/24 20:46:13-

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