美文网首页
Kotlin-类和对象

Kotlin-类和对象

作者: 在下陈小村 | 来源:发表于2021-03-18 20:03 被阅读0次
类和对象

类的创建和java还是比较类似的,属性和方法的定义,创建不用写new

class Person {
    var name=""
    var age=0

    fun eat(){
        println(name+" is eating,He is "+age+" years old")
    }
}
//对象的创建和使用
val person=Person()
    person.age=10
    person.name="Tom"
    person.eat()

在kotlin中如果要使用类的继承,那么就需要在类之前加上open关键字

open class Person {
    var name=""
    var age=0

    fun eat(){
        println(name+" is eating,He is "+age+" years old")
    }
}

class Student:Person(){
    var sno=""
    var grade=0
}

val student=Student()
    student.grade=2
    student.sno="123123"
    student.name="阿毛"
    student.age=20
    student.eat()

kotlin的构造函数,被继承的主构造函数,带参数时,继承父类的子类的主构造函数也必须带有该参数。次构造函数用constructor来修饰,必须继承主构造函数this。可以只使用次构造函数,直接用constructor,通过super继承父类。

//主构造函数
open class Person(val name:String,val age:Int) {

    fun eat(){
        println(name+" is eating,He is "+age+" years old")
    }
}
//主构造函数和次构造函数
class Student(var sno:String,var grade:Int,name:String,age:Int):Person(name,age){
    constructor(sno: String,grade: Int):this(sno,grade,"",0)
    constructor():this("",0)
}
//只有次构造函数
class Teacher:Person {
    constructor(grade:Int,name:String,age:Int):super(name, age)
}
延迟初始化

在使用的过程中会发现全局变量我一开始并不想直接初始化,当需要使用的时候才初始化,这个我要怎么办,可以通过lateinit var,来延迟初始化,另外可以通过::person.isInitialized来判断参数是否已经完成了初始化,这个是固定写法。

class MainActivity : AppCompatActivity() {
    lateinit var  person:Person
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        doSomething()
        if (!::person.isInitialized){
            person=Person()
        }
    }
}

相关文章

  • Kotlin-类和对象

    类和对象 类的创建和java还是比较类似的,属性和方法的定义,创建不用写new 在kotlin中如果要使用类的继承...

  • kotlin从入门到看开 ₅

    layout: posttitle: "kotlin-面向对象"subtitle: "前途和...

  • kotlin学习日记(5)

    kotlin-代理属性(by) 代理模式客户端使用一个代理对象实现对真实对象的访问,代理对象和真实对象实现相同的接...

  • Kotlin-类和接口

    类的声明 同Java、Python等一样,Kotlin使用class关键字来声明一个类。 创建一个对象实例: Ko...

  • 从零开始学Kotlin-类和对象(5)

    定义一个类 定义一个类,使用关键字class声明,后面跟类名(不使用new) 定义类的属性 类的属性可以使用var...

  • 对象、类对象和元类对象

    http://www.tuicool.com/articles/mmyuUr http://blog.csdn.n...

  • python 类和对象

    类和对象 目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的...

  • 类,类对象和实例对象

    Python 的类定义写完之后就成了一个类对象,而引用这个类对象的就是实例对象。 类中定义的属性和方法都是静态属性...

  • 面相对象-02类和对象

    类和对象 目标 ●类和对象的概念●类和对象的关系●类的设计 01.类和对象的概念 类和对象是面向对象编程的两个核心...

  • python语法入门五

    类和对象 类和对象 基础 继承:python为多继承 类、类对象和实例对象 当实例对象声明后,再删除类对象,那么该...

网友评论

      本文标题:Kotlin-类和对象

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