1,包名即类名
2,var val自动类型推断—格式eg:var:passward:String?=null
不确定有没有值用问号,不然用:eg:var inputpassword:String
3,kotlin不需导入(相比Java的优点)
4,kotlin相比于Java优点:扩展,允许可选类型用equals方法
5,(1)when代替switch,()里可以是任意类型,多种情况放在一行逗号隔开,一旦匹配即break;
条件可以是范围,可以是非in
判断是哪一个对象,用is,不用case
学习kotlin的知识进网站:http://www.jetbrains.com->Learning Tools->右边有kotlin for Education->底部get started,也可直接阅读book.kotlincn.net
when实现赋值
一个条件多条语句,用大括号{}在{}最后一条语句写上要赋值的结果eg:“1”
6,独立代码块作用域问题,脱离作用域重新赋值会报错
写程序不要一股脑写,写一部分可以调试了,及时调试看效果
7,可能用,可能不用要用一个“变量来控制”(可以是boolean)的思想,写好的东西及时关上,不要干扰自己,一个程序的一个发挥功能的部分要从简单的部分开始写
8,字符串转整型用.toInt()
9.debug调试,单步调试(一条一条语句点击调试看值)
10,if一句话语句可以省略大括号
11,数组定义方法:
12,数组的长度是size,字符串的长度是length
13,如果不知道while语句跳出条件,则先用true死循环,然后再找条件1
14,kotlin声明属性的方式1
//形式参数
//临时定义一个变量保存外部传递过来的值
//注意:aName和aAge是临时的,只能在两种情况下可以使用
//1.声明变量时 变量的初始值是外部通过主构造函数传递过来
class L3Person constructor(aName:String,aAge:Int){
var name:String = aName
var age:Int = aAge
}
//2.初始化块中调用
class L3Person constructor(aName:String,aAge:Int){
var name:String = ""
var age:Int = 0
//主构造函数调用之后 如果有声明 就会调用init初始化块,第一时间做点事
init {
name = aName
age = aAge
}
}
kotlin声明属性的方式2
//在主构造函数中直接声明属性用val var
//需要在创建对象时给初始值的属性才放到主构造函数中
class L3Person constructor(
private var aName:String,
val aAge:Int
){
var score = 98.5
}
方法声明
//无参 无返回值的函数
//kotlin
fun test():Unit{}
//Java
public void test(){}
//有参 :unit表示无返回值的函数,unit也可以不写
//kotlin
fun test1(a:Int,b:Int):Unit{}
//java
public void test1(int a,int b){}
//有参 有返回值的函数
//kotlin
fun test2(a:Int,b:Int):Int{
return a + b
}
//java
public int test3(int a,int b){
return a + b;
}
return只是结束当前方法(函数),若想结束整个程序用用System.exit(0)//()内的表示正常退出
//如果函数实现只有一行 可以省略{}
fun test3(a:Int, b:Int):Int = a+b
//如果函数实现只有一行 可以省略{}
//返回值类型也可以省略
fun test4(a:Int, b:Int) = a+b