Kotlin中的类与对象

博客涉及Kotlin开发语言在Android开发中的相关内容,Kotlin作为一种开发语言,在Android开发领域有一定应用。
//Kotlin中的类与对象
fun classAndObject(){
    //类的定义,使用class关键字来修饰类
    open class Person{
        //如果希望子类继承该方法就必须添加open关键字
        open fun eat(someThing:String){
            println("这是父类的方法:$someThing")
        }
    }
    //类的构造,分为主构造和次构造
    class Student(var name:String,val age:Int){//有修饰constructor得写否则就不用
        var tell:Long? = null
        //次构造函数(相当于Java中的方法重载)
        constructor(name:String,age:Int,t:Long ) : this(name, age) {
            this.tell = t
        }
        //类初始化,和Java中的静态代码块一样
        init {
            println("==========init1==============")
        }
        init {
            println("==========init2==============")
        }
    }
    var student1 = Student("李四",24)
    student1.name = "李逵"
    println("访问学生变量:${student1.name}")
    var student2 = Student("李四",24,13888888888)
    student2.tell = 1202112121502
    println("访问学生变量:${student2.tell}")

    //类的继承
    class StudentA(var name:String,var age:Int) : Person(){
        override fun eat(someThing: String) {
            super.eat(someThing)
            println("这是子类的方法:$someThing")
        }
    }
    var stuA = StudentA("张三",35)
    stuA.eat("${stuA.name}吃牛肉")

    //抽象类的定义,和Java定义是一样的
    abstract class Bird(name:String) : Person(){
        //定义抽象方法
        abstract fun fly()
        //继续传递给抽象子类
        abstract override fun eat(someThing: String)

        //定义普通函数
        fun birdEat(some:String){
            println("吃的啥:$some")
        }
    }
}

class Bus {

    //定义变量,默认必须赋值且不能为空,如果要为空则使用“?”

    private var carName = "三轮车"
    //getter和setter
    private var name:String?
        get() = name
        set(value){name = value}


    //延迟初始化,调用时必须判断是否初始化过,判断isInitialized
    private lateinit var paoLu:String

    //伴生对象必须在class中,定义静态常量,方法,函数,半生对象只有一个
    companion object Factory{

        private const val TAG = "Bus"//与Java静态常量定义类似

        fun pao(){
            println("$TAG")
        }
    }
    fun method(){
        println(TAG)
        pao()
        //判断属性  是否初始化
        if (this::paoLu.isInitialized){
            println(paoLu)
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值