01.类
class Person {
var name=""
var age=0
fun eat(){
println(name+"is eating,He is"+age+"years old")
}
}
02.继承
open关键字:表示该类可被继承
open class Person {
var name=""
var age=0
fun eat(){
println(name+"is eating,He is"+age+"years old")
}
}
冒号:表示继承,类似java中的extend
class Student: Person(){
var sno=""
var grade=0
}
03.接口
关键字:interface
interface Study {
fun readBooks()
fun doHomeWork()
}
继承Person,实现Study接口
class Student(name:String,age:Int): Person(name,age),Study{
override fun readBooks() {
println(name+"is reading")
}
override fun doHomeWork() {
println(name+"is doing homework")
}
}
如果Study类中一个函数拥有了函数体,这个函数体中的内容就是它的默认实现,比如下面的函数doHomeWork
interface Study {
fun readBooks()
fun doHomeWork(){
println("do homework default implementation.")
}
}
Student实现Study接口时,可以不实现doHomeWork函数,当然了也可以实现
04.修饰符
05.数据类
关键字:data
data class Cellphone(val brand:String,val price:Double) {
}
当在一个类前 面声明了data关键字时,就表明你希望这个类是一个数据类,Kotlin会根据主构造函数中的参 数帮你将equals()、hashCode()、toString()等固定且无实际逻辑意义的方法自动生成, 从而大大减少了开发的工作量。
06.单例类
关键字:object
object Singleton {
fun SingletonTest(){
println("singleton is test")
}
}
调用单例类中的方法可以直接使用:Singleton.singletonTest()
07.集合
一般写法:
val list=ArrayList<String>()
list.add("xx")
list.add("ww")
list.add("cc")
常用写法:
关键字:listOf
val list= listOf("cc","xx","ii")
可变集合:
关键字:mutableListOf
var list= mutableListOf("xx","ss","ww")
list.add("ii")
for(i in list){
println(i)
}
set同理
map
一般写法:
val map=HashMap<String,Int>()
map.put("Apple",1)
map.put("Pear",2)
map.put("Banana",3)
通用写法:
val map= mapOf("Apple" to 1,"Banana" to 2,"Pear" to 3)
for((fruit,price) in map){
println("fruit is"+fruit+"price is"+price)
}
08.集合api
集合中的map函数是最常用的一种函数式API,它用于将集合中的每个元素都映射成一个另外的 值,映射的规则在Lambda表达式中指定,最终生成一个新的集合
val list= listOf("Apple","Banana","Pear")
val newList=list.map{it.uppercase()}
for(i in newList){
println(i)
}
filter函数:
val list= listOf("Apple","Banana","Pear","Grape","Orange")
val newList=list.filter { it.length<5 }.map { it.uppercase() }
for(i in newList){
println(i)
any和all函数:
any函数:用于判断集 合中是否至少存在一个元素满足指定条件,返回true或者false
all函数:用于判断集合中是否所有元素都满足指定条件,返回true或者false
val list= listOf("Apple","Banana","Pear","Grape","Orange")
val newList=list.any { it.length<5 }
val new2List=list.all { it.length<5 }
println("newList is:"+newList+"new2List is:"+new2List)