分享下学习Kotlin的历程-构造函数/抽象类/枚举

本文介绍了Kotlin中的构造函数、抽象类和枚举类。Kotlin的构造函数支持无参数和带参数的形式,可以使用init块进行初始化。抽象类可以有抽象方法和非抽象方法,而枚举类的每个枚举常量都是一个对象,可以进行初始化。文中通过示例代码详细讲解了这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明出处:王亟亟的大牛之路

开篇之前还是老规矩,先安利https://github.com/ddwhan0123/Useful-Open-Source-Android 还是尽量每天做更新和维护

Kotlin和Java一样支持多构造函数的姿势,并且对属性对get/set方法进行了二次封装

这一篇,也通过简单的demo来讲一下相关知识


构造函数

在说Kotlin构造函数之前先提一提Java的构造函数和实例方法那些事

构造方法和实例方法的区别:
主要的区别在于三个方面:修饰符返回值命名

1、和实例方法一样,构造器可以有任何访问的修饰符,public、private、protected或者没有修饰符
,都可以对构造方法进行修饰。不同于实例方法的是构造方法不能有任何非访问性质的修饰符修饰,例如static、final、synchronized、abstract等都不能修饰构造方法。

2、返回类型是非常重要的,实例方法可以返回任何类型的值或者是无返回值(void),而构造方法是没有返回类型的,void也不行。

3、至于命名就是构造方法与类名相同,当然了实例方法也可以与类名相同,但是习惯上我们为实例方法命名的时候通常是小写的,另一方面也是与构造方法区分开。
而构造方法与类名相同,所以首字母一般大写。

Kotlin的构造函数相对来说就更简便

如果是无参数的就和java中的 类定义一摸一样

class Wjj

如果是有参数的,就直接加在类名后面,像这样

class Wjj(userName:String,age:Int)

因为无法在主构造函数中做高端操作,所以提供了一个init{}的姿势来解决一些 初始化的问题,像这样

 init {
        println("----> "我是init")
    }

Kotlin也支持多个构造函数,但是都是会继承主构造函数,像这样

open class Student(var name: String) {
    init {
        if (name.equals("wjj")) {
            name = "王亟亟"
        }
        println("----> Student 构造函数 name " + name)
    }

    var age: Int = 0
    var sex: Boolean = true
        get() {
            return !name.equals("王亟亟")
        }

    constructor(name: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值