在一个体重秤项目里面使用Kotlin开发,考虑到项目比较小型轻量,所以和团队申请决定使用Kotlin开发,以此熟悉和尝试一下Kotlin. 首先使用Kotlin之后,发现能和Java很好的兼容一起,开发体验很不错.在开发过程中,遇到了需要使用匿名内部类的场景,然后就了解到Kotlin的object关键字. object关键字: 在Kotlin中,object通常有三个用途: 对象表达式 对象声明 伴生对象 对象表达式 对象表达式可以实现Java中匿名内部类的效果,但比Java更加友好. (1)K…
运算符重载 重载的运算符是具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成.重载的运算符是遵循函数重载的选择原则,根据不同类型或不同参数来选择不同的重载运算符. 运算符重载的基本语法 成员函数形式 <类名> operator<符号>(<参数表>) 参数表列出该运算符需要的操作数. 运算符函数体对重载的运算符的含义做出新的解释.这种解释仅局限在重载该运算符的类中,即当在X类对象的关联中,运算符含义由函数体解释:否则脱离类对象,该运算符具…
Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类. 对象表达式 通过对象表达式实现一个匿名内部类的对象用于方法的参数中: window.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) { // ... } override fun mouseEntered(e: MouseEvent) { // ... } }) 对象…
1:Scala之函数式编程学习笔记: :Scala函数式编程学习: 1.1:Scala定义一个简单的类,包含field以及方法,创建类的对象,并且调用其方法: class User { private var name = "张三"; def hello(): Unit ={ println("hello : " + name) } //注:如果定义方法时不带括号,则调用的时候也不可以加括号,否则报错. def getName = name; } //创建一个obj…
6.    类.对象.继承.特质 Scala的类与Java.C++的类比起来更简洁,学完之后你会更爱Scala!!! 6.1.   类 6.1.1.    类的定义 package cn.itcast.class_demo /** * 在Scala中,类并不用声明为public类型的. * Scala源文件中可以包含多个类,所有这些类都具有共有可见性. */ class Person {   //用val修饰的变量是可读属性,有getter但没有setter(相当与Java中用final修饰的变…
反射操纵伴生对象: 先定义一个伴生对象: 然后咱们通过反射来调用一下它: 比较简单. 反射操纵构造方法: 先来定义一个类: 然后咱们通过反射来调用一个其中的方法,之前当然就得先来调用构造方法,由于我们的主构造方法中已经有默认值了,所以创建对象时不需要传参数了,所以如下: 好,貌似木有去调带参数的构造函数的代码,下面再来看个例子: 下面来用反射来调用一下构造方法: 接下来我们再来调用2个参数的构造方法,此时就不能用createInstance()来构造了,那如何来构造呢,咱们需要这样搞了: 呃,那…
1.Scala单例对象 Scala单例对象是十分重要的,没有像在Java一样,有静态类.静态成员.静态方法,但是Scala提供了object对象,这个object对象类似于Java的静态类,它的成员.它的方法都默认是静态的. //如果object的静态成员要被外界访问,则该成员不能被private修饰 object University{ private var studentNo = 0 def newStudentNo = { studentNo += 1 studentNo } } obj…
2019-04-22 关键字:Scala 伴生对象的作用 关于 Scala 伴生对象,比教材更详细的解释. 什么是伴生对象? 教材中关于伴生对象的解释是:实现类似 Java 中那种既有实例成员又有静态成员的类的功能. 为什么上面说它是一种 “功能” 呢?因为要想实现像 Java 中那样的类,光靠一个 Scala 类可不行.在 Scala 中,我们必须: 1. 定义一个 class 并在这里面实现所有的实例成员. 2. 添加一个 object ,这个 object 要与上面的 class 同名,然…
1:伴生对象与apply方法 如果一个class与一个object具有相同的名字,那么我们就认为它们互为伴生.object为class的伴生对象.如下图所示,object Apply为class Apply的伴生对象. 需要注意的小细节是,伴生对象的apply函数哪怕没有参数也需要加上一对”()”. class Apply { def apply = { println(" class apply") } def test = println("class test"…
1.Scala单例对象 Scala单例对象是十分重要的,没有像在Java一样,有静态类.静态成员.静态方法,但是Scala提供了object对象,这个object对象类似于Java的静态类,它的成员.它的方法都默认是静态的. 如果object的静态成员要被外界访问,则该成员不能被private修饰 2.Scala伴生对象 如果有同样一个类与该object名字一样,则称该object为该类的伴生对象,相对应,该类为object的伴生类. 如果一个类有它的伴生对象,这个类就可通过object的名字访…