Kotlin 学习(一)——对象的声明与创建

1、val和var 的区别

var表示变量即和Java中变量的定义相同,val表示常量相当于Java中的final,下面举个例子:
var number = 5
number = 10
这里定义变量number = 5 ,然后又改变 number = 10;现在将修饰符改为val

这时将number改为10时就会报错"val cannot be reassigned",翻译为 val不能重新分配,相当于final的定义

2、变量的声明

var number : Int? 
number = 5
var number : Int? = 5
字符串的声明:
        
var str :String ?  = "AAA"
var s : String ? = null
对象的声明:
首先定义一个类User,具体类的定义在之后文章中会讲解,暂时只是说明对象的创建
 data class User(val name: String, val id : Int) {

   private fun getUser() : User{
       return User(name,id)
    }
}
现在我们来创建一个User的对象
 var user : User? = User("Name",100)
和上面的字符串的定义一样,有没有人想过User后面的?代表的意义?下面我们创建一个User的对象负值为空

这时发现无论是将之前创建的user负值为null,还是重新创建一个空对象,都会报错“Null can not be a value of a non-null type User” ,字面意思:null不能负值给非null型的对象,好像意思是非null的不可以负值为null,那如何设置为可以为null呢?对,就是这个神奇的“?”,现在我们将两个对象后面的?都填上,发现所有的报错都消失了,

所以在声明对象时就决定了这个对象的能不能为空了,声明常量也一样
val user : User ? = User("Name",100)
val  u : User ? = null
另外Kotlin会自动识别所属类,那之前的所有创建都可一简写为
var str  = "AAA"
var s = null
        
val user = User("Name",100)
val  u = null
一些基本数据类型和类的对象的创建都如上面所说的步骤,下面我们来看看集合的创建,现在我们创建一个保存String类型的集合
        var list = listOf<String>("A", "B", "C", "D")
        val stringList = listOf<String>("A","B")
按照上面的所说,list创建时的类型String均可省略
var list = listOf("A", "B", "C", "D")
val stringList = listOf("A","B")
对象的声明和创建就写到这,此部分很简单,注意其中的几个注意点,自己试一遍基本都知道了,后面会继续更新Kotlin的方法和类的创建



















猜你喜欢

转载自blog.csdn.net/alexwll/article/details/78997083