【案例一:】android
描述Car汽车对象:测试
package cn.kotlin.kotlin_base01 /** * 描述Car汽车对象 * * 参数一: 车名, 参数二: 车的价值 */ class Car (var carName:String, var carMoney: Double) { /** * 获得车的信息 */ fun getCarInfo() : String { return "这台车叫${carName},价值${carMoney}元人民币" } }
默认是不能赋值为null的:spa
变量默认也不能赋值为null的: code
以上案例体现了:Kotlin对控制处理很严格,默认就不能写null,不然编译都不经过对象
Kotlin但也提供了 能够赋值null的方式,那就是给 变量加? ,例如:var name : String ? = null 加入? 意思是:容许传nullblog
【案例二】内存
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}") }
执行结果:get
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)) }
执行结果:博客
val 是常量
var 是变量
被val修饰的,其余地方不能修改,不然编译不经过:
package cn.kotlin.kotlin_base01 /** * 常量 */ fun main(args: Array<String>) { // 定义个人博客地址是固定的,不许修改了[常量] val cnblogs: String = "https://www.cnblogs.com/android-deli/" println(cnblogs) }
执行结果: