【案例一:】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) }
執行結果: