Kotlin

本文介绍了Kotlin作为Android开发的一级编程语言,由JetBrains公司推出并开源,支持多种Java尚未实现的特性。在Android Studio 3.0及更高版本中,Kotlin已得到完美支持。Kotlin的特点包括空安全、数据类型的转换、变量声明、函数声明、区间使用以及类的声明与实例化等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kotlin

1.介绍

Android开发的一级编程语言(Google官方认证) 由JetBrains公司在2010年推出 & 开源,与Java语言互通 & 具备多种Java尚不支持的新特性 Android Studio3.0后的版本支持Kotlin。

2.Android Studio3.0后的版本已经完美支持Kotlin,只需安装Kotlin插件即可在这里插入图片描述在这里插入图片描述

注:区别于Java,在Kotlin中字符(char)不属于数值类型,是一个独立的数据类型。

3.转换数据类型
toByte():Byte
toShort():Short
toInt():Int
toLong():Long
toFloat(): Float
toDouble():Double
toChar():Char
4. 声明与初始化变量,var为变量,val为常量
//定义常量
    val a = 222
    //定义变量
    var b=8

String类型

val variableName="variablename";
fun main() {
	val upperCaseName=variableName.toUpperCase();
    print(upperCaseName); 
}
输出结果:VARIABLENAME
5.Helloworld
    fun main(args:Array<String>){
	print("hello word");
}

fun:声明方法
main:方法名称
参数书写方式:名称 :变量类型
也可以直接指定数据类型:

 var a : int=2
 val b : String ="迪迪"

还可以赋值

 //定义变量
    var dd = 88
 //重新给变量赋值
    dd = 177
6、函数声明

编写规则

fun 函数名(参数名:参数类型):返回值类型{
  //函数体
}
返回值类型可以不写

无参无返回值

fun nHave(){

}

无参有返回值

fun oHave():String{
	return "abc";
}

有参无返回值

fun oHave( a:Int,b:String){
	
}

有参有返回值

fun dHave(a:Int):String{
	return "迪迪"
}

//调方法

   fun mai(a: Int, b: Int): Int {
        return a + b
    }
     //打印调方法   方法里赋值
    println(mai(38, 100))

表达式

fun maxOf(a:Int,b:Int):Int{
if (a>b){
    return a
}else{
    return b
}
}
    fun maxOf(a: Int, b: Int) = if (a > b) a else b

    fun sum(a: Int, b: Int) = a * b
 var max=a
    if (a<b)max=b
    var  maxs:Int
    if (a>b){
        max=a
    }else{
        max=b
    }
    //表达式
    val  maxa=if (a>b)a else b

返回无意义的值

   fun nofun(a: Int, b: Int): Unit {
        println("sum of$a and $b is ${a + b}")
    }

返回int值

   fun resfun(a: Int, b: Int): Int {
        println("sum of$a and $b is ${a + b}")
        return a + b
    }
查看数据类型最大值最小值
   val adob: Double = Double.MAX_VALUE
    val aboub: Double = Double.MIN_VALUE
    println(aboub)
    println(adob)

    val i: Int = Int.MAX_VALUE
    val i2: Int = Int.MIN_VALUE
    println(i)
    println(i2)

    val lo: Long = Long.MAX_VALUE
    val lmn: Long = Long.MIN_VALUE
    println(lo)
    println(lmn)

    val by: Byte = Byte.MAX_VALUE
    val byt: Byte = Byte.MIN_VALUE
    println(by)
    println(byt)

    val s: Short = Short.MAX_VALUE
    val st: Short = Short.MIN_VALUE
    println(s)
    println(st)

    val f: Float = Float.MAX_VALUE
    val ft: Float = Float.MIN_VALUE
    println(f)
    println(ft)
美元符拼接
  val d = "poity"
   var am = 8
   println("${d + am}")//$美元符是拼接  结果为:posity8
7、空值处理

当在编译期赋值为 null 时,会造成编译不通过,编译期进行提示

a: Int?

类型转换 Int?和int是两种类型
int?:包含null值,更多类型
int只是数据数字类型

  fun getStringLength(Obj:Any):Int?{//用了空安全   保证了不为空,或者当空返回null值
        if (Obj is String){
            return Obj.length//int转为string类型   可以调string的length方法
        }
        return null//返回的是int?值
    }
空安全:在Java中,NullPointerException异常十分常见,而Kotlin的优点则是可以尽可能避免执行代码时出现的空指针异常/**
 *  1. 可空类型与非空类型
 *  在Kotlin中,有两种情况最可能导致出现NullPointerException
 **/

// 情况1:显式调用 throw NullPointerException()
// 情况2:使用!! 操作符
// 说明:!!操作符将任何值转换为非空类型,若该值为空则抛出异常
var a = null
a!!
// 抛出KotlinNullPointerException

// 情况3:数据类型不能为null
// 在 Kotlin 中,类型系统区分一个引用可以容纳 null (可空引用) 和 不能容纳(非空引用)
// 如:String类型变量不能容纳null
// 若要允许为空,可声明一个变量为可空字符串:在字符串类型后面加一个问号?
对于String,则是写作:String?
var b: String? = "b"
b = null


/**
 *  2. 安全调用操作符
 *  作用:表示如果若不为null才继续调用
 **/
 b?.length
 // 表示:若b不为null,才调用b.length

 // 注:安全调用符还可以链式调用
 a?.b?.c?.d
 // 假设a不为null,才继续往下调用,以此类推
 // 若该链式调用中任何一个属性为null,整个表达式都会返回null。
 // 若只对非空值执行某个操作,可与let一起使用
a?.b?.let { println(it) }
8.区间
//区间  2个点
for (x in 1..12) {
    println(x)//结果打印1-12的数123456789101112
}

结果为加等于

 var x = 88
    x += 2
    println(x)//88+2=90
范围使用

主要用于表示范围,主要包括:in、downTo、step、until


/**
 *  1. in
 *  作用:在...范围内
 **/
// 表示:若i在1-5范围内,则执行下面代码
// 注:闭区间,[1,5]
if (i in 1..5) {
    println("i 在 1-5 内")
}

// 表示:若i不在1-5范围内,则执行下面代码
// !in表示不在...范围内
if (i !in 1..5) {
    println("i 不在 1-5 内")
}

/**
 *  2. until
 *  作用:表示开区间
 **/
// 输出1234
for (i in 1 until 5) {
 println(i)
}

/**
 *  3. downTo
 *  作用:倒序判断
 **/
 for (i in 5 downTo 1) {
 	println(i)
 }

/**
 *  4. step
 *  作用:调整步长
 **/
// 设置步长为2,顺序输出1、3、5
for (i in 1..5 step 2) println(i) 

// 设置步长为2,倒序输出5、3、1
for (i in 1 downTo 5 step 2) println(i) 
10、list 与 map 了解
创建 List
 var names= listOf("小明","小红","小韩","小呆")

创建map

  var map: HashMap<Int, String> = HashMap()
    map[1] = "小明"
    map[2] = "小红"
    map[3] = "小迪"
    map[4] = "小于"

    println(map[1])

    for (item in map) {
        print("$item ,")
    }
}
20.类使用

类 有参赋值

class Animal(name:String,age:Int) {}

 var animas=Animals("cat",1)
class Dog{
       var age=2
       var name="拉布拉多"

main方法里程序入口调用

  	   Dog().age
       Dog().name
类的声明 & 实例化
// 格式
class 类名(参数名1:参数类型,参数名2:参数类型...{}

// 示例
class User(userName: String, age: Int){}

// Kotlin支持默认参数,即在调用函数时可不指定参数,则使用默认函数
class User(userName: String = "hjc", age: Int = 26){
}
// 在实例化类时不传入参数,userName默认 = hjc,age默认 = 26
var user = User()
// 在设置默认值后,若不想用默认值可在创建实例时传入参数
var user = User("ABC" , 123)
// 命名参数:若一个默认参数在一个无默认值的参数前,那么该默认值只能通过使用命名参数调用该函数来使用
class User(userName: String = "hjc", age: Int)
var  user = User(age = 26)

// Kotlin没有new关键字,所以直接创建类的实例:
User()

用open关键字标识该类允许被继承

open class Food 

// 类Fruits继承类Food
class Fruits : Food()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值