`
edge
  • 浏览: 66789 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Scala概述(三)统一的对象模型(3)

阅读更多

3.3.    变量和属性(Variables and Properties

如果所有操作都是方法调用,那么变量引用(dereferencing)和赋值语句呢?实际上,如果这两种操作是针对类成员变量,那么也是被解释为方法调用的。对于所有类成员变量x:TScala这样定义其gettersetter

def x:T

def x_=(new val:T):unit

这些方法引用和更新一个可修改(mutable)的内存单元,它不能被Scala程序直接访问。每一次x这个名称被引用,都会导致调用x这个无参数方法,同样,每次调用赋值语句:x=e,都是x_=(e) 这样一个方法调用。

由于变量访问也是方法调用,从而使Scala可以定义类似C#的属性概念(properties),例如,下述Celsius类定义了一个属性degree,只能设置大于-273的值:

 

class Celsius {

  private var d: Int = 0

  def degree: Int = d

  def degree_=(x: Int): Unit = if (x >= 273) d = x

}

    使用者可以使用这两个方法,如同他们是一个类成员变量一样:

val c = new Celsius; c.degree = c.degree-1

 

分享到:
评论

相关推荐

    Scala 概述(瑞士洛桑联邦理工)

    Scala 概述(瑞士洛桑联邦理工) Scala 概述(瑞士洛桑联邦理工)

    scala3 scala3 scala3 scala3 scala3

    scala3 scala3 scala3 scala3 scala3

    scala模型分析.emmx

    史上最强思维导图记忆scala array方法

    scala课件.zip

    Scala概述.pptx 变量.pptx 运算符.pptx 程序流程控制.pptx 函数式编程基础.pptx 面向对象编程(基础部分).pptx 面向对象编程(中级部分).pptx 面向对象编程(高级特性).pptx 隐式转换和隐式参数.pptx 集合(上)-基本使用...

    scala 3本书打包

    这种函数式与面向对象的编程语言极大的简化了代码的编写量,同时它就是为并发式编程而生的。这个打包文件中包含了《SCALA程序设计-JAVA虚拟机多核编程实战》《Scala编程-中文-完整版》《Scala in Action》三本书,...

    programming in scala, 3nd edition

    programming in scala, 3nd edition

    Scala编程详解 第13讲-Scala编程详解:面向对象编程之对象 共9页.pptx

    第3讲-Scala编程详解:基础语法 共8页 第4讲-Scala编程详解:条件控制与循环 共7页 第5讲-Scala编程详解:函数入门 共5页 第6讲-Scala编程详解:函数入门之默认参数和带名参数 共5页 第7讲-Scala编程详解:函数入门...

    wootjs, Scala 和JavaScript通过 Scala.js的WOOT模型.zip

    wootjs, Scala 和JavaScript通过 Scala.js的WOOT模型 带 Scala.js的 WOOT协作文本编辑,使用WOOT算法。在 Scala 中实现,在JVM和JavaScript解释器上运行。不耐烦的 $ sbt server/run 然后打开 http:

    Scala编程 第3版中文版.7z

    《Scala编程(第3版)》由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的...即便是不直接使用Scala或从事一线编程工作的读者,也能从《Scala编程(第3版)》学到大量关于函数式和面向对象的编程概念和技巧

    Scala编程(第3版)

    由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的把握更加值得信赖。...即便是不直接使用Scala或从事一线编程工作的读者,也能从《Scala编程(第3版)》学到大量关于函数式和面向对象的编程概念和技巧。

    scala编程指南第三版

    spark,scala编程指南第三版,非常好的资料,高清无水印

    Scala面向对象.docx

    Scala面向对象

    Scala编程(第三版)中英文.zip

    Scala编程(第三版)中英文,代码全 Martin Odersky 是Scala 编程语言的缔造者。他是瑞士洛桑理工学院(EPFL)的教授,同时也是Typesafe, Inc.(已更名为Lightbend)的创始人。他的研究方向是编程语言和系统,更具体...

    spark-timeSeries.rar_scala 时间序列_spark ARIMA_spark arima_spark 滑

    采用ARIMA模型(自回归积分滑动平均模型)+三次指数平滑法(Holt-Winters),用scala语言实现的在spark平台运行的分布式时间序列预测算法

    Scala编程详解 第14讲-Scala编程详解:面向对象编程之继承 共13页.pptx

    第3讲-Scala编程详解:基础语法 共8页 第4讲-Scala编程详解:条件控制与循环 共7页 第5讲-Scala编程详解:函数入门 共5页 第6讲-Scala编程详解:函数入门之默认参数和带名参数 共5页 第7讲-Scala编程详解:函数入门...

    Scala编程详解 第12讲-Scala编程详解:面向对象编程之类 共12页.pptx

    第3讲-Scala编程详解:基础语法 共8页 第4讲-Scala编程详解:条件控制与循环 共7页 第5讲-Scala编程详解:函数入门 共5页 第6讲-Scala编程详解:函数入门之默认参数和带名参数 共5页 第7讲-Scala编程详解:函数入门...

    Scala类和对象.md

    Scala类和对象.md

    Scala进阶_单例对象

    scala中没有Java中的静态成员,我们想要定义类似于Java的static变量、static方法,就要使用到scala中的单例对象——object. 定义单例对象 单例对象表示全局仅有一个对象(类似于Java static概念) 定义单例对象和...

    《scala编程》第3版英文版&第3版源码

    资源包含《Scala编程》第3版英文版和第3版源代码,Scala编程第3版,目前是最新版,支持Scala 2.11以上。《Scala编程》是Scala语言的创始人参与编写的,涵盖的语法特性非常全面,并且作者解释了为什么这么设计,有...

    programming in scala(第三版)

    本书是programming in scala的英文第三版,高清英文原版。

Global site tag (gtag.js) - Google Analytics