【07】类和集合

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值