代码包括对象的乘法运算等等
//新建一个算术类(存在乘法运算)
class BoxInt(var i: Int){
operator fun times(x: BoxInt) = BoxInt(i * x.i)
override fun toString(): String {
return i.toString()
}
}
//新建一个方法,便于对象的相加
operator fun BoxInt.plus(x: BoxInt) = BoxInt(this.i + x.i)
//重载负数方法的类
class Point(val x:Int, val y:Int){
operator fun unaryMinus() = Point(-x, -y)
override fun toString(): String {
return "Point(x=$x,y=$y)"
}
}
//自增函数拓展
operator fun BigDecimal.inc() = this + BigDecimal.ONE
fun main(args: Array<String>) {
val a = BoxInt(52)
val b = BoxInt(10)
println(a + b )
println(a * b )
println(1.plus(4))
println(10.div(5))
println(1.times(0))
println(9300.plus(94))
//测试负方法类
println(-Point(1,1))
//测试自增类函数
var bigDecimal1 = BigDecimal(100)
var bigDecimal2 = BigDecimal(100)
val tmp1 = bigDecimal1++
val tmp2 = ++bigDecimal2
println(tmp1) //100
println(tmp2)
println(bigDecimal1)
println(bigDecimal2)
}
输出结果是:
62
520
5
2
0
9394
Point(x=-1,y=-1)
100
101
101
101