1.用val或var声明变量,指明它们是不可变的或可变的
//定义函数
fun getVar():String{
return "var"
}
//赋值
val x =1
var s= getVar()
2.基本数据类型
//Boolean
val aBoolear: Boolean=true
val anotherBoolear: Boolean=false
//Int
val anInt: Int =8
val anotherInt: Int =0xFF
val moreInt: Int =0b00000011
val maxInt : Int=Int.MAX_VALUE
val minInt: Int=Int.MIN_VALUE
//Float 浮点
val aFloat: Float=2.0F
val anotherFloat: Float =1E3F
//Double 双精度
val aDouble: Double =3.0
//Short
val aShort: Short=127
//用整型变量给Byte赋值 -128~~127
val byte :Byte=127
//字符
val aChar:Char='0'
//字符串 ==相当于java中a.equals(b),正确为true ,否则 false ===相当于java中的==
val string :String ="hjk"
val fromChars:String =String(charArrayOf('h','j','k')) //把字符拼接成字符串
//特殊列子
val arg1:Int =0
val arg2:Int =1
//输出:Hello"Trump"
val sayString:String="Hello \"Trump\""
//输出:$10000
val salary:Int=1000
fun main(args: Array<String>) {
println(string)
println(fromChars)
println(string==fromChars)
println(string===fromChars)
//java写法
println("" + arg1 + "+" + arg2 + "=" +(arg1+arg2))
//kotlin写法
println("$arg1+$arg2 =${arg1+arg2}")
println(sayString)
println("$$salary")
//输出:$salary ,注意请使用\
println("\$salary")
//超级字符类型
val rawString:String="""
\t
\n
"""
println(rawString)
println(rawString.length)
}
3:kotlin针对null指针问题。完美解决
//1.kotlin 不允许返回null
fun getName():String{
return "eraewr"
}
//2.如果需要返回null。则【类型后添加】?号
fun getNames():String?{
return null
}
fun main(args: Array<String>) {
//1
println(getName().length)
//2
val name= getNames();
println(name?.length)
//也可以这么写 ==2 ,代表如果为null,直接return,否则....将getNames的值赋值给names,names的类型是一个不可空的Stringva
// val names:String= getNames()?:return
// println(names.length)
//3 !!代表我已经知道肯定不为空,让它安全执行
val value:String?="eraerae"
println(value!!.length)
}
4:类
//妹子继承人
class 妹子 (性格:String ,长相:String,声音:String):人(性格,长相,声音)
class 帅哥 constructor(性格:String ,长相:String,声音:String):人(性格,长相,声音)
//因为类默认是final类型的。所有需要open去打开 父类
open class 人(var 性格:String ,var 长相:String,var 声音:String){
init { //在初始化的时候,加载
//${this.javaClass.simpleName} 获取子类的类名
println("new 了一个${this.javaClass.simpleName}:她性格:$性格,长相:$长相,声音:$声音")
}
}
//constructor可以省略
class Bing constructor(var s:Int,var d:String){
init {
println("s:$s d:$d")
}
}
fun main(args: Array<String>) {
val 我喜欢妹子:妹子=妹子("温柔","甜美","动听")
val 崇拜帅哥:帅哥=帅哥("冷酷","帅气","深沉")
val Bing:Bing=Bing(18,"erewa")
}
封神:kotlin系列将继续更新。。。。包含kotlin所有的知识点,后期还有案例结合
软件:AndroidStudio 或者IntelliJIDEA
插件:kotlin
如果有哪里注释解释不清楚,请评论处纠正