第三行代码 笔记
第一章 Kotlin 零散基础笔记 2022年9月26日
Java属于解释性语言
它是经过及程序运行将编译后的class文件 解释成计算机可识别的二进制数据再执行
只有Java虚拟机才能识别 (Android中叫ART 一种移动优化版的虚拟机)
变量 val var
val 不可变的变量 赋值之后不能厚重新赋值 对应Java中的 final 变量
除非一个变量明确允许被修改 否则都应该给它加上final关键字也就是用val定义
提示 永远先用val来定义变量 当需要变的时候再进行更改
class 默认不能被继承
使用前面加open关键字
: 代替extends
子类构造函数必须继承父类构造函数 两者都是
原因同上
空括号表示继承父类无参构造函数
name age两个参数不能用var或者val 修饰 因为如果用了就代表是本类参数和父类的同名参数 冲突了
class Student (val sno:String,val grade:Int, name:String , age :Int): Person(name ,age){
init{
println("sno is $sno")
println("grade is $grade")
}
}
this关键字指的此类中的方法
class Student (val sno:String,val grade:Int, name:String , age :Int): Person(name ,age){
init{
println("sno is $sno")
println("grade is $grade")
}
constructor(name: String,age: Int):this("",0,name,age){
}
constructor():this("",0){
}
}
无主构造函数情况下
class Student : Person {
constructor(name: String,age: Int):super(name,age) {
}
}
继承Person 实现Study接口
class Student : Person,Study {
constructor(name: String,age: Int):super(name,age) {
}
override fun doHomework() {
println("doHomework")
}
override fun readBooks() {
println("readBooks")
}
}
print 语句替换变量 $符号替换
下方两者并无区别
val a=10
println("a =" +a)
println("a =$a")
Java 和 Kotlin 数据类型对照表
Kotlin 完全抛弃了Java的基本数据类型 全部使用了对象数据类型 ,毕竟解释器都是人家写的
Java | Kotlin |
---|---|
int | Int |
long | Long |
short | Short |
float | Float |
double | Double |
boolean | Boolean |
char | Cgar |
byte | Byte |
函数和方法
Kotlin 函数翻译function
Java 方法翻译method
两者并无区别 无非用的多少更普遍些
单例类
直接使用 object 声明
调用和静态变量一样Singletion .singletionTest()
object Singletion {
fun singletionTest(){
println("us call")
}
}
第二章 Lambda编程 2022年9月27日10:28:58
val maxitem2=list.maxBy({ item: String -> item.length })
val maxitem3=list.maxBy(){ item: String -> item.length }
val maxitem4=list.maxBy(){ item -> item.length }
val maxitem5=list.maxBy(){ it.length }
蠢比博客不会自动保存 弃坑了