第一行代码 (第三版) 第二章

一:变量和函数

变量:

	可变变量:var
	不可变变量:val
	类推到机制: var num = 10 ,推到 num  为 Int 
	Kotlin 对象数据类型 (Java  基本数据类型)
	注: 除非一个变量明确允许被改变,否则都应该加上fianl 关键字(即 Kotlin val 声明变量)

函数:

	fun methodName(param1 : Int , param2 : Int ) : Int {
			return 0
	}

语法糖:

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

在这里插入图片描述

二:程序的逻辑控制

if 条件语句: 可以有返回值

fun largeNumber(	num1 : Int , num2 : Int ) : Int {
	val value = if (num1 > num2 ){
			num1
		}else {
			num2
	}
		return value
}

结合语法糖:
fun largeNumber( num1 : Int , num2 : Int ) : Int = if(num1 > num2){
num1
} else {
num2
}

when 条件语句:有点类似与Java 的 switch

精准匹配:
	fun getScore(name : String ) = when (name){
		"Tom" -> 87
		"Jim" -> 79
		"Jack" -> 100
		"Lily" -> 92
		else -> 0
	}
类型匹配:is 相当于 java 的 instanceof
	fun checkNum(num :Number){
		when(num) {
				is Int -> println("number is Int")
				is Double-> println("number is Double")
				else -> println("number not support")
		}
	}
when 语句不带参数的用法:
	fun getScore( name : String ) = when{
		name.startWith("Tom") -> 88
		"Jim" -> 79
		"Jack" -> 100
		"Lily" -> 92
		else -> 0
}

循环语句:

两端闭区间:“ … ”

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

左闭右开:until
step: 条件递增
downTo : 降序

三.面向对象编程:

类与对象

class Person (){
	var name = ""
	var age = 0 
		fun eat(){
		}
}

实例化: val person = Person()  (没有 java 的关键字  "new " )
fun main(){
	val p = Person()
	p.name = "Jim"
	p.age = 20
	p.eat()
}

继承和构造函数:如果一个类不是专门为继承而设计的,那么就应该主动加上final 声明,禁止被继承。

open(关键字):说明类可以被继承
在这里插入图片描述
主构造函数,次构造函数:
在这里插入图片描述

继承不加 “()”的情况:
在这里插入图片描述

接口:“ :” 表示继承和接口(java 继承是 extends , 接口是 implements)

interface Study {
fun readBooks()
fun doHomework()
}

class Student(name : String , age : Int ) : Person(name, age) , Study {
}

函数的可见性修饰符:internal (同一模块中的类可见)

数据类与单例类:

data (关键字):数据类(model), 重写了equals(), hashCode() , toString()
在这里插入图片描述

object(单例类):
在这里插入图片描述

四.Lambda编程:

集合:

在这里插入图片描述

集合的函数式api: maxBy, filter, map

在这里插入图片描述

java 函数式api:

如果一个Java方法的参数列表中,有且仅有一个,Java单抽象方法接口参数,可以将接口名省略
在这里插入图片描述

五. 空指针检查:

?  (如果不为null ,才执行)
?:(左边表达式不为null, 就返回左边表达式结果)
!!(一定不为null,否则报 空指针异常 )

let(函数):可以处理全局变量的判空问题

在这里插入图片描述

六. Kotlin 小魔术:

字符串内嵌表达式:${}

在这里插入图片描述

函数的参数默认值:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值