美文网首页
数据类和类委托

数据类和类委托

作者: Ryan_Hoo | 来源:发表于2018-07-10 22:03 被阅读0次

1.1、通用对象方法

toString、equals、hashCode 。

equals()对象相等性:在Kotlin中,==检查对象是否相等,而不是比较引用;===表示比较对象引用

Kotlin中的 is 检查的是Java中的instanceof的模拟,用来检查一个值是否为一个指定的类型

重写了equals()方法,导致hashCode缺失。

hashCode():如果两个对象相等,他们必须有着相同的hash值

在hashSet中比较对象先会比较它们的hash值,只有当它们相等时才会去比较真正的值。

1.2、数据类:自动生成通用的方法的实现

data修饰符修饰的类会自动的生成toString、equals 和 hashCode方法。

equals和hashCode方法会将所有在 主构造方法 中声明的属性纳入考虑,即生成的equals方法会检测所有的属性的值是否相同,hashCode方法会返回一个根据所有属性生成的哈希值。(没有在主构造方法中声明的属性将不会加入到相等性检查和哈希值的计算)

为了让使用不可变对象的数据类变得容易,Kotlin编译器为他们生成了copy方法 :在copy的同时还可以修改属性值。

1.3、类委托:使用 “by” 关键字

arrayListOf() 方法会返回一个新的空的ArrayList集合。

calss CountingSet<T> (val innerSet : MutableCollection<T> = HashSet<T>() ) : MutableCollection<T> by innerSet { ...  }

相关文章

  • 数据类和类委托

    1.1、通用对象方法 toString、equals、hashCode 。 equals()对象相等性:在Kotl...

  • Java代理模式

    代理的实现分为: 1.静态代理实现 2.动态代理 委托类和委托对象:委托类是一个类,委托对象是委托类的实例。代理类...

  • Kotlin | 4.类、对象和接口

    本章内容包括: 类和接口非默认属性和构造方法数据类类委托使用 object 关键字 1、定义类继承结构 2、声明一...

  • 代理简记

    Java静态代理 委托类和代理类,实现共同接口 共同接口: 委托类: 代理类: 测试结果: Java动态代理 通过...

  • 控制器传值

    1、属性传值 2、回传值: 1.委托代理 <1>把发送数据的类做出委托类:声明协议,在协议中声明一些方法给委托类定...

  • Kotlin中的类委托和属性委托

    Kotlin的委托可分为类委托和属性委托。 一、类委托 类委托是代理模式的应用,而代理模式可以作为继承的一个不错的...

  • 代理模式

    简介: 代理模式就是通过代理类隐藏委托类的细节,使客户端和委托类实现解耦,然后代理类还可以灵活的维护委托累和客户端...

  • 线程。回值

    控制器传值属性传值回传值委托代理: 把发送数据的类做成委托类:声明协议,在协议中声明一些方法,给委托类定义一个ID...

  • Kotlin之通用对象方法、数据类和委托类

    通用对象方法 声明一个类,用来存储客户名称和邮编 字符串表示 : toString()默认的话,一个对象的字符串表...

  • 10月30日C#学习总结

    今天学习了委托和事件。 委托:委托是一个类,它定义了方法的类型,与其他的类不同,委托类具有一个签名,并且它只能对与...

网友评论

      本文标题:数据类和类委托

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