data class KotlinBean(
var id: String = "",
var user: String = "",
var userName: String = ""
)
1.1.数据类对象也就是Java中我们常用的bean实体类,不过kotlin的相较于Java的bean类具有代码简洁性,可阅读性,以及代码量少了很多;
比如:
1.2.kotlin构造函数的使用
Kotlin可以对Kotlin定义的data class类有许多操作
class KotlinTest{
val a = KotlinBean()
val b = KotlinBean("id")
val c = KotlinBean("id","user")
val d = KotlinBean("id","user","userName")
val e = KotlinBean(user = "user")
val f = KotlinBean(user = "user",userName = "userName")
}
java中调用data class类时,只支持以下两种
public class JavaTest {
KotlinBean a = new KotlinBean();
KotlinBean b = new KotlinBean("id","user","userName");
}
2.1.关键字“class”
如:
class KotlinTest{}
2.2.类的构造函数:主构造函数以及辅助构造函数
Kotlin可以有一个主构造函数和多个辅助构造函数
constructor(id:String)
constructor(id: String,ids:String) : this(id) {}
class KotlinTest constructor(id:String){
constructor(id: String,ids:String) : this(id) {
}
constructor(id: String,ids:String,idss: String) : this(id) {
}
}
2.3.类的实例化
//kotlin
val kotlin = KotlinTest()
//java
KotlinTest java = new KotlinTest()
2.4.kotlin类的继承与依赖
//父类
open class KotlinTest{
}
*****************
//子类
class KotlinTest2: KotlinTest() {
}
2.5.kotlin类继承一个父类多个接口的写法:在文件名后加冒号:代表接下来它会继承父类和接口的实现
,如果需要实现更多接口只需要在,后面增加。
class KotlinTest2: KotlinTest(),KotlinInterface {
override fun interFace() {
}
}
//var标注的参数是可以被修改的
var name = "Android-var"
private fun method() {
name = "Android-var2"
}
//kotlin的var参数转译为Java后
@NotNull
private String name1 = "Android-var";
val name = "Android-val"
val a: Int = 1
val b = 1 // 系统自动推断变量类型为Int
private fun method(){
val c: Int // 如果不在声明时初始化则必须提供变量类型
c = 1 // 明确赋值
//如果第二次赋值给他会出现:Val cannot be reassigned
//kotlin的val参数转译为Java后
@NotNull
private final String name = "Android-val";
//验证val中的kotlin参数是否可以获取多个值
private val msg:String
get() {
for (i in 1..3){
return "as"+i
}
return "as"
}
@Test
fun testValmsg(){
println(this.msg)
println(this.msg)
println(this.msg)
}
//输出结果:
as1
as1
as1
const val name = "name" //Top-level 顶层声明
object Singleton {
const val name= "name" //在object的成员中声明
val valStr = "valStr"
}
class MyClass {
companion object {
const val name= "name" //在companion object中声明
}
}
2.不能自定义get()
3.常量(const val)与不可变变量(val)的区别
class KotlinTest {
//kotlin中通过val、const val定义的数据
val name = "Android"
companion object{
const val name1 = "Android-object-const"
val name2 = "Android-object"
}
}
//通过转译为java后
@NotNull
private final String name = "Android";
@NotNull
public static final String name1 = "Android-object-const";
@NotNull
private static final String name2 = "Android-object";
通过以上对比可以很方便的看出,在class文件中val 指代的是final类型参数,
而在companion object中的val是private static final 类型参数,
而const val 是public static final类型参数
这篇文章就讲到这里了,主要讲的是kotlin的基本使用适合准备开始学kotlin,或是对kotlin了解不深的朋友。kotlin还有很多有意思的地方,比如:扩展函数,协程,lambda等。