Kotlin——面向对象编程

这篇具有很好参考价值的文章主要介绍了Kotlin——面向对象编程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

定义类

如果将open和abstract两个修饰符放在一起使用,编译器会发出警告,open是Kotlin新引入的修饰符,open是final的反义词,用于修饰一个类、方法、或属性,表明类可派生子类、方法或属性可被重写

一个Kotlin类可以有01个主构造器和0N个次构造器

中缀表达式

可以使用infix修饰方法,这样就表示中缀表达式——但是infix方法只能有一个参数

fun main() {
    var origin = Apple(2.4)
    var ap = origin add Apple(3.3)
    println(ap)
    origin drop Apple(1.1)
    println(ap)
}
class Apple(weight:Double){
    var weight = weight
    override fun toString(): String {
        return "Apple(weight=$weight)"
    }
    infix fun add(other:Apple):ApplePack{
        return ApplePack(this.weight+other.weight)
    }
    infix fun drop(other:Apple):ApplePack{
        return ApplePack(this.weight-other.weight)
    }

}
class ApplePack(weight: Double){
    var weight= weight
    override fun toString(): String {
        return "ApplePack(weight=$weight)"
    }

}

componentN方法与解构

Kotlin允许将一个对象的N个属性“解构”给多个变量,写法如下
如果希望将对象解构给多个变量,那么就必须为该对象的类定义componentN()方法。程序希望将对象解构给几个变量,就需要为该类定义几个componentN()方法,且该方法需要使用operator修饰

fun main() {
    var user = User("yeeku","668899",29)
    //将User对象解构给2个变量
    //只利用user对象的component1()和componet2()方法
    var (name,pass:String) =user
    println(name)
    println(pass)
    //将User对象解构给3个变量
    //利用user对象的component1()、component2()方法
    var(name2,pass2,age)=user
    println(name2)
    println(pass2)
    println(age)
}
class User(name: String ,pass:String,age:Int){
    var name=name
    var pass =pass
    var age = age
    //定义operator修饰的componentN方法,用于解构
    operator fun component1() :String{
        return this.name
    }
    operator fun component2() :String{
        return this.pass
    }
    operator fun component3() :Int{
        return this.age
    }
}

在某些时候程序希望解构的对象后面几个componentN()方法的返回值、忽略前几个componentN()方法的返回值、此时可通过下划线(_)来占位。例如如下代码

    var (_,pass3,age2)=user
    println(pass3)
    println(age2)

除此之外也可以使用这种解构的方法便利map文章来源地址https://www.toymoban.com/news/detail-804770.html

for((key,value) in map){
//使用key、value
}

到了这里,关于Kotlin——面向对象编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kotlin函数和对象

    1.高阶函数 如果一个函数的参数是函数类型或者返回值是函数类型,那么这个函数就是高阶函数。 在kotlin中函数也是有类型的,跟整型、字符串类型是同样的性质,函数类型就是将函数的“输入参数类型”和“返回值类型”的抽象表达,如(Int,Int)- Int 2.扩展函数 kotlin允许

    2024年02月20日
    浏览(40)
  • 【Kotlin】类和对象

            Kotlin 是面向对象编程语言,与 Java 语言类似,都有类、对象、属性、构造函数、成员函数,都有封装、继承、多态三大特性,不同点如下。 Java 有静态(static)代码块,Kotlin 没有; Java 有静态(static)函数,Kotlin 没有; Java 构造函数名与类名相同,Kotlin 构造函数名

    2024年03月13日
    浏览(30)
  • Kotlin基础(九):对象和委托

    本文主要讲解kotlin对象和委托。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 在Kotlin中,对象(Object)是一个具有特殊用途的单例实例。它是一种创建单个实例的方式,确保在整个应用程序中只存在一个特定对象。 对象在Kotlin中有以下特点和用途: 单例实例:对象只能有

    2024年02月14日
    浏览(38)
  • Kotlin中特性、数据类、伴生对象、顶层函数

    在 Kotlin 中,函数参数和属性有不同的声明方式和行为。这些特性使得 Kotlin 代码更加安全、易于理解和维护。 函数参数的只读性 在 Kotlin 中,函数参数默认是只读的。这意味着在函数体内无法直接修改函数参数的值。如果尝试在函数内部修改函数参数,编译器会报错。 这种

    2024年02月09日
    浏览(43)
  • 学习Kotlin~函数式编程

    高阶函数:以函数为参数或返回函数 函数式编程范式主要依赖于高阶函数返回的数据,这些高阶函数专用于处理各种集合 这些高阶函数可方便的联合多个同类函数构建链式操作以创建复杂的计算行为 函数类别 一个函数式应用通常由三大类构成:变换transform、过滤filter、合并

    2024年02月12日
    浏览(41)
  • Lambda 编程(Kotlin)一

    学习记录,以下为个人理解 知识点: Lambda的定义:允许你把代码块当作参数传递给函数 Lambda的语法约定: 如果lambda 表达式是函数调用的最后一个实参,它可以放到括号的外边 当lambda表达式时函数唯一的实参时,还可以去掉调用代码中的空括号对 简单来说,就是直接传递代

    2024年02月11日
    浏览(35)
  • 18:kotlin 类和对象 -- 数据类(Data classes)

    数据类是其主要目的是保存数据的类。数据类会自动附带额外的成员方法 使用 data 声明一个数据类 编译器会自动从 主构造函数 中声明的所有属性派生以下成员 .equals() / .hashCode() .toString() 如: \\\"User(name=John, age=42)\\\" .componentN() (在后边的文章会讲到) .copy() 为了确保生成的代码

    2024年02月03日
    浏览(49)
  • Kotlin 集合对象的单条件和多条件排序

    原文: Kotlin 集合对象的单条件和多条件排序 - Stars-One的杂货小窝 本文不是太难的东西,因为 sortedWith 之前没怎么用过,所以就记录下 平常开发经常使用到List,Map等数据集合类型,也会经常遇到排序的问题,可以直接使用 sortedBy 或 sortedByDescending 排序 多条件则是使用 sortedWith ,具体使

    2024年02月08日
    浏览(65)
  • Kotlin 元编程之 KSP 全面突破

    什么是元编程 没想到吧,这世上除了元宇宙,还有元编程,如果没有接触过,可能会有点懵,不过没关系,简单的说就是用代码来生成代码。实现元编程的传统常见手段主要是使用 APT 注解处理器 + JavaPoet 组合拳,如果你是作为一名Android 开发者,一定在曾经或者现在使用过

    2023年04月24日
    浏览(26)
  • kotlin如何接收前端传递过来的数据

    Kotlin 可以使用 Spring Boot 等框架来接收前端传递过来的数据。 在 Spring Boot 中,你可以使用 @RequestBody 注解来将前端传递的 JSON 格式数据转换为相应的 Kotlin 对象。 示例代码: 在上面的示例中, @RequestBody 注解会将前端传递的 JSON 数据转换为 User 对象。你可以在该方法中对数据

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包