这篇主要讲的是kotlin中的基本类型定义和类的相关部分
1.Androidstudio环境搭建
这个就不多说了,网上很多,这里给个网址,可以参考http://www.runoob.com/kotlin/otlin-android-setup.html
2.定义常量与变量
kotlin的语法是和Java语法不一样的,先看下面这段话:
公式:
变量公式: var <标识符> : <类型> = <初始化值>
常量定义: val <标识符> : <类型> = <初始化值>
/**
* 常量 val = value 类似于Java的final,不可能重复赋值
* -运行时常量 val x = "HelloWorld" 运行时才能确定它的值
* -编译时期常量 const val x = "HelloWorld" 编译时,所有x的引用都将被替换成字面量(HelloWorld)
*/
/**
* 变量 var = variable
*
* -var x = "HelloWorld" 定义变量
* -var x = "ByeByeWorld" 再次赋值
*/
//常用数据类型的定义
val A : String = "abc" 可以写成 val A = "abc" 系统自动推断变量类型为String
val B : Int = 123
val C : Float = 123F
var D : Double = 123.0
var E : Boolean = true
var F : Long = 123L
ok,上面这些就是咱们会常用的数据类型,还有需要注意的事项.下面上一段代码:
val string : String = "abc"
val mstring : String = String(charArrayOf('a','b','c'))
fun main(args: Array<String>) { //kotlin中的主函数入口就是这个main函数啦..
println(string == mstring) //kotlin中, == 符号,和Java中的equals有相同效果
println(string === mstring) //三个等号比较对象是否相同
//kotlin的输出字符串模板
val a : Int = 1
val b = 1
println("$a + $b = ${a + b}")
}
看下输出的结果是啥:
这里有个字符串的模板,这个是比较简便的地方.
3.类
这个咱们慢慢来,怎么创建一个类?
OK了,创建好了,我又想给这个girl增加一点描述信息,比如,年龄性别姓名老一套吧...别问我为啥girl还需要性别,当代社会呀...
好了,又加上了,加上这些信息啥时候用呢,那就初始化的时候用吧,改怎么办?
constructor:类在构造的时候要调用,只有一个可以省略,这里是标准的写法,inint部分其实就是构造方法的方法体.
在往下来,现在想让女生继承一个父类,这个父类姑且为person,这个父类该怎么定义呢
//父类在被继承的时候需要open 所有类都继承自Any
open class person(var age:String,var sex:String,var name:String){
init {
println("new 了一个${this.javaClass.simpleName},ta年纪:$age,性别:$sex,名字:$name")
}
}
//这时候girl类需要改成这样:
class girl constructor(age:String, sex: String, name:String): person(age,sex,name)
整体看下:
//父类在被继承的时候需要open 所有类都继承自Any
open class person(var age:String,var sex:String,var name:String){
init {
println("new 了一个${this.javaClass.simpleName},ta年纪:$age,性别:$sex,名字:$name")
}
}
//继承自person
class girl constructor(age:String, sex: String, name:String): person(age,sex,name)
class 帅哥(性格:String,长相:String,声音:String) {
init {
println("new 了一个帅哥,他性格:$性格,长相:$长相,声音:$声音")
}
}
fun main(args: Array<String>) {
val Girl: girl = girl("20", "nv", "haha")//constructor类在构造的时候要调用,只有一个可以省略
val 我膜拜的帅哥: 帅哥 = 帅哥("彪悍", "丑陋", "傻了吧唧")
println(Girl is person)//判断Girl是否属于person
}
结果:
4.kotlin中如何定义方法(函数)
/**
* - fun 方法名(参数):返回值类型{
* //方法体
* }
*
* */
- ①有返回值的
//这是最基本的函数定义
fun add(a : Int,b : Int):Int{
return a + b
}
//这个函数还可以简化吗?当然可以,如果一个函数只是返回表达式的值,可以直接等于就可以了:
fun add(a : Int,b : Int) = a + b//可以简化为这样
再举个例子
fun sayHello(person : String) = println("$person" + "说:Hello")
-
②没有返回值的
从图中也可以看出,按照标准的写法,这里的返回值类型是Unit,Unit代表的是无返回值,相当于Java的void,可以省略,可以写成这样:
- ③不用函数名的函数:在kotlin中,如果用一个变量直接接受一个函数的返回值,那么这个函数是不需要加函数名的,例如:
var Int2Long = fun(x:Int):Long{
return x.toLong()
}
在使用的的时候:
ok,这篇先写这么多,有问题欢迎指出,我是不会改的,啊哈哈哈哈哈哈........
网友评论