美文网首页
Kotlin基础篇【5】类与接口详解

Kotlin基础篇【5】类与接口详解

作者: 职度 | 来源:发表于2019-04-02 20:18 被阅读0次
职度Kotlin图1

Kotlin 中的类实现 (以后再也不用new)

Kotlin声明 preson一个类,类中创建一个pens方法

第一种实现 无参类

class Person {
    open fun pens(name: String) {
        println("${name}教育")

    }
}

在kotlin中类还是用class修饰 ,大家应该看到了不用的关键词 open ,fun 。

【open 关键词】

如果你允许创建一个类的子类,需要使用open 修饰符来标示这个类,另外需要给每一个可以被重写的属性或者方法添加open 修饰符

【abstract 关键词】

Kotlin中可以将一个类声明为abstract ,这种类不能被实例化。抽象类中抽象成员始终是open的,所以不需要显示的使用open修饰符,非抽象函数并不是默认open,但是可以标注为open的

Kotlin 实现类中的 次构造器

open class Person {
    lateinit var name: String
    //lateinit 只用于变量 var,而 lazy 只用于常量 val
    //次构造器
    constructor (name: String) {
        println("$name")

    }

【constructor 关键词】

在Java中,构造方法名须和类名相同;而在Kotlin中,是通过constructor关键字来标明的,且对于Primary Constructor而言,它的位置是在类的首部(class header)而不是在类体中(class body)。

第二种实现 带有参数类

class Person constructor(username: String, age: Int){
    private val username: String
    private var age: Int

    init{
        this.username = username
        this.age = age
    }
}

【init关键词】

init{}它被称作是初始化代码块(Initializer Block),它的作用是为了Primary Constructor服务的,由于Primary Constructor是放置在类的首部,是不能包含任何初始化执行语句的,这是语法规定的,那么这个时候就有了init的用武之地,我们可以把初始化执行语句放置在此处,为属性进行赋值。

主函数 初始化(注意 Person()在也不用new了)


fun main(args: Array<String>) {
    val person = Person()
    person.printInfo()
}

Kotlin类的继承

class Sons: Person("职度") {
     fun  Person.all()="dddddd"
     fun  Sons.sums(a:String,b:String)=a+b

     fun fins(sons:Sons){
       println(sons.sums("dd","rrr"))
         println(sons.pens("职度"))
     }

第三种实现 数据类

在Kotlin中,数据类的实现

//data  数据类
data class KtBean(
    val message: String,
    val result: List<Result>,
    val status: String
)

data class Result(
    val followMovie: Int,
    val id: Int,
    val imageUrl: String,
    val name: String,
    val rank: Int,
    val summary: String
)

【data 关键词】

在Kotlin中,存在数据类这样一个概念,我们经常创建一些保存数据的类,并标记为 data,相当于Java中拥有Set和Get方法的实体类。下面来作个对比:Java实体类:

第四种实现 枚举类

Kotlin的枚举类与Java定义一个枚举类非常相似

enum Color {
    RED, GREEN, BLUE
}

Kotlin为枚举类指定数值

enum class Color(rgb: Int) {
    RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF)
}

Kotlin 中的接口定义

Kotlin接口都是用interface关键字声明

interface Contract {
          //Iview
       interface  Iview{
             fun GetViewDate(mktbean:KtBean)
          }
}

Kotlin用冒号:实现接口 ,同时继承也是使用 :

open class KtActivity : AppCompatActivity(), Contract.Iview {

}

最后谈谈可见性修饰符

【private关键词】

本类内部(包含其所有成员)都可见

【protected 关键词】

只在本类内部+子类中可见

【public 关键词】

能见到类声明的任何客户端都可以见到其public成员

【internal关键词】

能见到类声明的本模块内的任何客户端都可以见到其public成员

Kotlin基础篇【1】Android Studio 3.0 Kotlin环境配置
Kotlin基础篇【2】初识Kotlin的意义
Kotlin基础篇【3】Kotlin基础语法
Kotlin基础篇【4】when,if,in,is 关键词

相关文章

网友评论

      本文标题:Kotlin基础篇【5】类与接口详解

      本文链接:https://www.haomeiwen.com/subject/relnbqtx.html