kotlin 发布很久了,但一直没有去系统的学习,这次在学习时,进行了初步整理,做个记录,方便查询
Kotlin 学习
1、数据类型
int --> Int
double --> Double
float --> Float
long --> Long
short --> Short
byte --> Byte
String 字符串 //持有方法,参照文档
var a:String= "喜欢好吃的";
//打印每个字符
for (aa in a) { Log.d("duke","字符串打印=$aa") }
数组
可变数组
var sss = mutableListOf<String>()
sss.add("张三");
sss.add("李四");
sss.add("王五");
sss.add("马六");
for(ssss in sss){
Log.d("duke","s=$ssss");
}
2、变量
变量申明: var a:Int = 2;
常量申明: val a:Int = 2; //类似final 只能赋值一次
3、方法
方法申明: private fun test(a:Int,b:Int){}
有返回值: private fun test(a:Int,b:Int):Int{... return 2}
无返回值: private fun test(a:Int,b:Int):Unit{}
若public public fun test(a:Int,b:Int):Int{} //返回类型必须有 若不需要可使用 Unit
4. for循环
for循环有以下几种
var sss = mutableListOf<String>()
sss.add("张三");
sss.add("李四");
sss.add("王五");
sss.add("马六");
1. for (item in sss) {
Log.d("duke","$item")
}
2.for (item: String in sss) {
Log.d("duke","$item")
}
3.for(i in sss.indices){
var z = sss[i];
Log.d("duke","s=$z");
}
4.for ((index, value) in sss.withIndex()) {
Log.d("duke","the element at $index is $value")
}
5. 类
class Rounb {
var name:String = "" ;
var age:Int=0;
}
var rounb = Rounb(); //kolint 没有 new
rounb.name = "张三";
rounb.age = 12;
Log.d("duke","name=${rounb.name}");
类的修饰符
abstract // 抽象类
final // 类不可继承,默认属性
enum // 枚举类
open // 类可继承,类默认是final的
annotation // 注解类
作用域
private // 仅在同一个文件中可见
protected // 同一个文件中或子类可见
public // 所有调用的地方都可见
internal // 同一个模块中可见
6. 继承 //个类要被继承,可以使用 open 关键字进行修饰
open class Base(p: Int)
class Derived(p: Int) : Base(p)
7. 重写
open class Person{
open fun study(){ // 允许子类重写
println("我毕业了")
}
}
/**子类继承 Person 类**/
class Student : Person() {
override fun study(){ // 重写方法
println("我在读大学")
}
}
//调用
val s = Student()
s.study(); // 输出为 我在读大学
8. 接口
接口跟java8 类似,也是 interface
9. 泛型
class Flower<T>(t:T) {
var value = t;
}
//调用
var ass = Flower<Int>(1);
Log.d("duke","name=${ass.value}");