kotlin中的基础语句以及常见语句

if else

条件:if和else中的条件必须是true或者false的表达式
表达式:分支的最后一行才是计算的结果

 val age = 15
    var result : String? = null

    result = if (age >= 18){
        "已成年"
        "已满18"
    }else{
        "未成年"
        "未满18"
    }//结果是:未满18 

可选值

可选值是什么:可能有值,也有可能没值
可选值的符号分别是 ?和!!

什么时候用:kotlin中必须给变量一个初值,但又不知道现在的具体值,就可以给一个null值。

  var name:String ? = null

特点:在变量声明中使用?
功能:当这个变量有值,那么就访问这个变量的对应的方法,如果没有值(null)就不会访问这个变量,也不会报错。

    var name:String ? = null
    //第一种表达方式
    if (name != null) {
        println("name has ${name.length}char")
    }
    //第二种表达方式
    println("name has ${name?.length}char")
    //第二种相较于第一种更加简便,kotlin中追求的就是简便

    val a = arrayOfNulls<String>(4)
    println("frist is ${a[0]?.length}")
!!

什么时候用:如果在使用可选类型的变量时,能够确定这个变量有值,才使用!!

var name1: String ? = null
name1 = "cr"
println("name has ${name!!.length}")

when

和switch的联系:when和c语言中的switch差不多,但区别是switch中的条件必须是int型,而when中的条件可以是任意类型

val salary = 8000
    val income = 0
    var tax = 0
when(salary){
    in 1..500 -> {tax = 0}
    in 5001..10000 -> tax = (salary * 0.1).toInt()
    else -> tax = (salary * 0.2).toInt()
}

这段与上面不同的是tax=可以提出来,但如果不同条件的改变的量不同那么就不能将tax = 提取出来

val salary = 8000
val income = 0
var tax = 0
tax = when(salary){
    in 1..500 -> { 0 }
    in 5001..10000 -> (salary * 0.1).toInt()
    else -> (salary * 0.2).toInt()
}

函数

函数就是一个代码块
功能:用于封装一个具体功能
return的意义:从函数中跳出来
与C语言的区别:

  1. C语言要先声明函数(也就是说要想使用函数必须要先在开头声明函数名,而kotlin不需要
  2. 同一文件中的函数可以相互调用,不需要导入头文件,而C语言中需要导入头文件

分类:

fun main() {
    打印()
    text1(12)
    text1(10,"cr")
   val result =  add(9,1)
   val result2 = minus(p2 = 2)
}

//无参数 无返回值
fun 打印(){
    println("没有参数 没有返回值")
}

//有1个参数或多个 无返回值
fun text1(age:Int):Unit{
    println("my age is $age")
}

//当函数的语句只有一句话,可以简化为一下表达式
fun text2(age:Int) = age

fun text1(age:Int,name:String){
    println("$name is $age years old")
}

//多个参数 有返回值
fun add(p1:Int,p2:Int):Int{
    return p1 + p2
}

//自己提供默认参数
fun minus(p1:Int = 0,p2:Int): Int {
    return p1 - p2;
}

如果要在多层循环中想要跳出循环,可以添加标签
格式:名称@
使用时:@名称

跳出@ for (i in 1..3){
    for (j in 2..10){
        if (i == 2 && j == 5){
            break@跳出
        }
     }
}

类和对象

封装:将属性和行为(方法和功能)封装成一个完整体,并提供给外部交互的接口 (属性和方法)
类:抽象概念,对一类事物的高度抽象并具有共同的属性 eg:人
类的名称首字符大写
尽量一个文件中编写一个类,文件名称和类名保持一致
对象:具体的实际存在的物体 eg:小明

类和对象的加载流程

  1. 定义一个类时,是不分配内存的
  2. 使用这个类时,会将这个类加载到内存里面,名称是类对象
  3. 创建这个类的一个对象,使用一个类对象来创建一个对象并为这个对象分配内存空间
  4. 当不用这个对象时,就会销毁对象(收回这个对象拥有的资源然后回收内存)

构造函数(一种函数)

  1. 通过构造函数来创建对象,不显示声明,使用默认构造函数constructor()
  2. 格式:类名 + constructor()
  3. 功能:在创建一个对象的同时,赋给对象一些属性。因为有些对象的属性必须在创建对象同时拥有,不然后续使用会报错。在构造函数创建的同时就赋予属性
  4. 次构造函数:除了主构造函数的都是次构造函数
  5. 构造顺序:如果调用主构造函数就直接调用,如果使用次构造函数,而且主构造函数有参数,次构造函数必须先调用主构造函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值