Android Studio : Kotlin常用语法

Kotlin

变量和函数

变量

  • val 常量 --java final变量

  • var 可变变量 --java 非final

    永远优先使用val来声明一个变量,而当val没有办法满足你的需求时再使用var。这样设计出来的程序会更加健壮,也更加符合高质量的编码规范。

函数

  • fun largerNumber(num1: Int, num2: Int): Int {
          return max(num1, num2) }
    

    当一个函数中只有一行代码时,Kotlin允许我们不必编写函数体,可以直接将唯一的一行代码写在函数定义的尾部,中间用等号连接即可。

比如我们刚才编写的largerNumber()函数就只有一行代码,于是可以将代码简化成如下形式:

fun largerNumber(num1: Int, num2: Int): Int =  max(num1, num2)

进一步简化

fun largerNumber(num1: Int, num2: Int) =  max(num1, num2)

逻辑控制

顺序

条件

  • if

    • fun largerNumber(num1: Int, num2: Int): Int {
              
       var value = 0 //重新赋值 用var
       if (num1 > num2) {
              
      value = num1 
       } else {
              
      value = num2 
       } 
       return value 
      }
      
    • //if语句可以有返回值 是if每个条件最后一行代码的返回值
      fun largerNumber(num1: Int, num2: Int): Int {
              
       val value = if (num1 > num2) 
       {
              
      num1 
       } 
      else {
              
      num2 
      	 } 
       return value 
      }
      
    • fun largerNumber(num1: Int, num2: Int): Int {
              
      return if (num1 > num2) 
       {
              
      num1 
       } 
      else {
              
      num2 
      	 } 
      }
      
    • fun largerNumber(num1: Int, num2: Int)= if (num1 > num2) 
       { 
      num1 
       } 
      else { 
      num2 
      	 } 
      }
      
    • fun largerNumber(num1: Int, num2: Int)= if (num1 > num2) num1 else  num2 
      
  • when条件语句

    匹配值 -> { 执行逻辑 } 逻辑只有一行时 {}可省

    • fun getScore(name: String) = when (name) {
              
       "Tom" -> 86 
       "Jim" -> 77 
       "Jack" -> 95 
       "Lily" -> 100 
       else -> 0 
      }
      
    • 类型匹配

      fun checkNumber(num: Number) {
              
       when (num) {
              
      is Int -> println("number is Int") 
      is Double -> println("number is Double") 
      else -> println("number not support") 
       } 
      }
      
    • when后不带参数

      //名字以Tom开头的成绩都是86
      fun getScore(name: String) = when {
              
       name.startsWith("Tom") -> 86 
       name == "Jim" -> 77 
       name == "Jack" -> 95 
       name == "Lily" -> 100 
       else -> 0 
      }
      

循环

  • for - in 循环

    • 升序区间

    **val range = 0…10 ** 闭区间 [0, 10]

    fun main() {
          
     for (i in 0..10) {
          
    println(i) 
     } 
    }
    

    val range=0 until 10 左闭右开 [0,10)

    for (i in 0 until 10 step 2) for-i循环中i = i + 2

    • 降序区间 downTo

      fun main() { 
             for (i in 10 downTo 1) //创建了一个[10,1]
             { 
            println(i) 
             } 
            } 
      
      

面向对象编程

类与对象

class Person {
   
    var name = ""
    var age = 0
    fun eat()
    {
   
        println(name+" is eating.He is "+age+" years old.")
    }
}

继承与构造函数

  • 继承 两件事
    1. 在 Person前加关键字open 使Person类可以被继承 在Kotlin中任何一个非抽象类默认都是不可以被继承的 如果一个类不是专门为继承而设计的,那么就应该主动将它加上final声明,禁止它可以被继承
open class Person{
   
    ...
    ...
}
  1. 继承
Student:Person()

{
   
    var sno=""
	var grade=0
}

() 主、次构造函数

主:不带参数、没有函数体

class Student(val sno: String, val grade: Int) : Person() {
    
}
//实例化
val student = Student("a123", 5)

如果要在主构造中写逻辑 使用init结构体

class Student(val sno: String, val grade: Int) : Person() {
    
 init {
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值