首页 > 其他分享 >Android-kotlin-空值处理&字符串比较&常量

Android-kotlin-空值处理&字符串比较&常量

时间:2023-06-19 15:04:26浏览次数:40  
标签:String kotlin 空值 Car var Android null string2


空值处理:

【案例一:】

1.Kotlin对控制处理很严格,默认就不能写null,否则编译都不通过:

描述Car汽车对象:

package cn.kotlin.kotlin_base01

/**
 * 描述Car汽车对象
 *
 * 参数一: 车名, 参数二: 车的价值
 */
class Car (var carName:String, var carMoney: Double) {

    /**
     * 得到车的信息
     */
    fun getCarInfo() : String {
        return "这台车叫${carName},价值${carMoney}元人民币"
    }

}

main测试方法:

默认是不能赋值为null的:

Android-kotlin-空值处理&字符串比较&常量_Java


变量默认也不能赋值为null的:

Android-kotlin-空值处理&字符串比较&常量_Kotlin_02


以上案例体现了:Kotlin对控制处理很严格,默认就不能写null,否则编译都不通过

Kotlin但也提供了 可以赋值null的方式,那就是给 变量加? ,例如:var name : String ? = null 加入? 意思是:允许传null

【案例二】

package cn.kotlin.kotlin_base01

/**
 * 描述Car汽车对象
 *
 * 参数一: 车名, 参数二: 车的价值
 * 加入? 意思是:允许传null
 */
class Car (var carName:String ?, var carMoney: Double) {

    /**
     * 得到车的信息
     */
    fun getCarInfo() : String {
        return "这台车叫${carName},价值${carMoney}元人民币"
    }

}

main测试方法:

package cn.kotlin.kotlin_base01

fun main(args: Array<String>) {

    // 实例化保时捷对象
    var car1 : Car = Car("保时捷AXT系", 1000000.00)
    println(car1.getCarInfo())

    // 实例化对象
    var car2 : Car = Car(null, 65354.00)
    println(car2.getCarInfo())

    // 定义String类型的变量 加入? 意思是:允许传null
    var str : String ? = null
    println("str:${str}")
}

执行结果:

Android-kotlin-空值处理&字符串比较&常量_Kotlin_03



字符串比较:
string1.equals(string2) 等同于string1 == string2, 所以在Kotlin中的==是比较值本身, 而Java是[Java中 == 比较的是内存地址]

package cn.kotlin.kotlin_base01

/**
 * 字符串比较
 */
fun main(args: Array<String>) {

    var string1 : String = "ABC"

    var string2 : String = "ABC"

    // 打印true,因为在Kotlin中 == 比较的是值本身,  [Java中 == 比较的是内存地址]
    println(string1 == string2)

    // 打印true,因为 equals 比较的也是值本身
    // 所以string1.equals(string2) 等同于string1 == string2
    println(string1.equals(string2))

}

执行结果:

Android-kotlin-空值处理&字符串比较&常量_android_04



常量:
val 是常量

var 是变量

被val修饰的,其他地方不能修改,否则编译不通过:

Android-kotlin-空值处理&字符串比较&常量_Java_05

package cn.kotlin.kotlin_base01

/**
 * 常量
 */
fun main(args: Array<String>) {

    // 定义我的博客地址是固定的,不准修改了[常量]


    println(c)
}

执行结果:

Android-kotlin-空值处理&字符串比较&常量_Java_06


标签:String,kotlin,空值,Car,var,Android,null,string2
From: https://blog.51cto.com/u_16163510/6513773

相关文章

  • Android-kotlin学习笔记(一)配置/入门
    1.配置Kotlin开发插件,点击File菜单,选择Settings,选择Plugins,会显示扩展的插件;2.然后选择Browserepositories…,搜索栏目中搜索Kotlin即可,点击Install就行,大小50多M,速度很快的然后安装完成后,重启AndroidStudio3.在项目的build.gradle中配置Kotlin版本:ext.kotlin_version='1.2.......
  • Android-Kotlin-GET/SET 方法的使用
    上篇博客我们讲了kotlin的继承,今天接着往下讲解kotlin的get/set方法的使用。Student.ktpackagecn.kotlin.kotlin_oop04openclassPerson{openvarpersonName:String="我是父类的名字"}classStudent:Person(){/***name用private私有修饰,外界其他地方......
  • 【随笔二】Android-kotlin-实现简单计算器功能
    上一篇博客Android-kotlin-配置/入门配置好了AndroidStudioKotlin的环境;今天做一个简单的demo实战—实现一个简单的计算器功能1.选择包名,然后右键:2.选择Class类型,会有class:3.创建CounterClass:packagecn.kotlin.kotlin_oop02/***加减乘除计算的calss*varnumber1:Double......
  • Android-kotlin 抽象类与多态的表现
    上篇博文讲了kotlin语言中get/set方法的使用,今天来讲一下kotlin中的抽象类与多态的表现选择包名,然后右键:选择Class类型,会有class:选择File类型,不会自动有class:目录结构:定义描述抽象类Person人类:packagecn.kotlin.kotlin_oop05/***抽象类用abstract修饰*描述:人类的抽象......
  • 鹅厂资深Android开发带你了解面试重点Framework,掌握更加核心的技术
    前言今天,想跟大家聊聊,Framework开发的那些事。系统应用开发,现在来说,已经开始脱离系统,单独拿出来开发,系统定制接口,已提供给应用调用,用来增强功能。原生的桌面,拨号,设置,已经没法做出差异化优势,因此都费尽心机,来进行应用深度开发。对于之前维护系统应用模块的人来讲,修修补补,真的没有什......
  • ANDROID-KOTLIN-代理和委托
    代理和委托,在生活中的案例有很多:例如:小明工作很忙,需要办理银行卡,此时他委托给>>小李去给自己办理银行卡,小李来到办理中心把自己的身份证/小李的身份证,给办理人员,说是小明委托我,给他办理银行卡的在Kotlin的代理委托是使用by关键字来处理定义描述寻找的接口,规范寻找的功能的标准:pack......
  • 2022年Android大厂面试题(面经)总结(小红书、快手、爱奇艺、微信、抖音.....)
    小红书Android一面Java篇静态变量和实例变量的区别静态变量有static关键字修饰静态变量不属于某个实例对象,而是属于类,也叫类变量,只要程序加载了类的字节码,不用创建任何实例对象就会被分配空间,就可以被使用,也就是说,你创建了多个对象,他们共用了一个静态变量,而实例对象是属于自己的独......
  • Android AccessibilityService 事件分发原理
    在了解了无障碍服务基础使用之后,我们来探究一下AccessibilityService的事件接收方法回调的时机和它深层次的实现逻辑。AccessibilityService监听事件的调用逻辑AccessibilityService有很多用来接收外部调用事件变化的方法,这些方法封装在内部接口Callbacks中:publicinterface......
  • Android面试「25K—30K」的坑位,面试官喜欢问些什么?
    前言掉帧监控,函数插桩,慢函数检测,ANR监控,启动监控……这些让Android开发者们头皮发麻的内容,如今可都成为了大厂中面试必问题目:用什么机制去监控,在哪里函数插桩,反射调用用哪个类哪个方法和哪个属性?这些问题恐怕是会难倒一大批向高阶进军的开发者。目前大公司的app开发都要基于模块化......
  • 2022 Android开发面对“铜三铁四”,如何稳住工作、顺利求职?
    前言大厂似乎变成了一座围城,里面的人想要逃离,外面的人前仆后继为了一份offer焦虑奔走。说回主题啊,腾讯裁员的消息基本年年都有,但唯独这一次迟迟不见官方出来辟谣……这是不是已经默认了,但也情有可原,毕竟腾讯这个大的集团,其中有一些尸位素餐和管理人员不作为的情况也在所难免。“......