zoukankan      html  css  js  c++  java
  • Scala:Functional Objects

    先上代码

     1 class FunctionalObjects(var _x: Int, var _y: Int) {
     2   require(_x > 0)
     3   require(_y > 0)
     4 
     5   def this(value: Int) = this(value, value)
     6 
     7   def x = _x
     8 
     9   def x_=(value: Int) { _x = value }
    10 
    11   def y = _y
    12 
    13   def y_=(value: Int) { _y = value }
    14 
    15   def +(value: Int): FunctionalObjects = { 
    16     _x += value
    17     _y += value
    18 
    19     this
    20   }
    21 
    22   def +(value: FunctionalObjects): FunctionalObjects = { 
    23     _x += value.x
    24     _y += value.y
    25 
    26     this
    27   }
    28 
    29 
    30   override def toString(): String = {
    31     "("+ _x +", "+ _y +")"
    32   }
    33 }
    34 
    35 object FunctionalObjects {
    36   implicit def intToFunctionalObjectsTest(value: Int) = new FunctionalObjects(value)
    37 
    38   def main(args: Array[String]) {
    39     var test = new FunctionalObjects(5)
    40     test.y = 6
    41     println(test)
    42     println(test + 4)
    43     println(4 + test)
    44   }
    45 }

    隐式类型转换、运算符方法、属性语法,这些都不必多说,大家一看就明白,scala的构造方法得简单的解释一下,类型名称后面跟随的参数列表就是“主要构造函数”的签名,类型定义中出现的可执行语句,都是其方法体。def this 定义的构造方法为“次要构造方法”。

  • 相关阅读:
    物理好题随想
    学案12:电场强度和静电现象
    vscode插件记录
    windows使用总结
    元素周期律 + 元素周期表
    酸碱理论
    氮族元素——磷
    氮族元素——氮
    碱金属元素
    SDN第一次上机实验
  • 原文地址:https://www.cnblogs.com/happyframework/p/4209576.html
Copyright © 2011-2022 走看看