`
edge
  • 浏览: 69669 次
  • 性别: 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

 

分享到:
评论

相关推荐

    A Brief Introduction to Scala

    #### Scala概述 Scala是一种相对新兴的编程语言,旨在为Java虚拟机(JVM)以及后来的通用语言运行时(CLR)提供支持。它融合了函数式编程(Functional Programming, FP)与面向对象编程(Object-Oriented Programming, OOP...

    Scala详细总结(精辟版++)

    - **面向对象**:Scala是纯粹的面向对象语言,每一个值都是对象,所有的操作都是方法调用。 - **函数式编程**:Scala同时也是一个成熟的函数式编程语言,支持高阶函数、模式匹配等功能。 - **类型推断**:Scala具有...

    Scala 电子书

    这三本书将帮助读者深入理解Scala的核心概念、语法特性以及在实际开发中的应用。 "Scala Tutorial"可能是为初学者设计的,它通常会涵盖基础语法,如变量声明、数据类型、控制流结构、类与对象的定义,以及函数式...

    programming in scala

    6. **并发与并行**:Scala提供了高级的并发模型,如Actor模型,使得编写高并发的应用变得更加简单和直观。 7. **模块化与可扩展性**:Scala的模块化设计允许开发者轻松地构建可扩展的应用程序,支持动态加载和扩展...

    Programming in Scala 2nd Edition

    2. **面向对象编程**:探讨Scala如何支持面向对象编程,包括类、对象、继承、多态等概念。 3. **函数式编程**:介绍函数式编程的核心理念,如纯函数、高阶函数、递归等,并展示了如何在Scala中实现这些概念。 4. **...

    Learning Concurrent Programming in Scala

    #### 三、学习目标与内容概述 《Learning Concurrent Programming in Scala》第二版是一本详尽介绍了如何使用Scala构建复杂的、可扩展的并发应用程序的书籍。本书通过实际案例和理论讲解相结合的方式,帮助读者掌握...

    scala介绍

    3. **面向对象编程**:Scala的面向对象特性包括类、对象、继承和多态。与Java不同,Scala中的所有函数都是对象的方法,这使得函数可以作为一等公民,即可以赋值给变量、作为参数传递和作为返回值。 4. **函数式编程...

    Scala语言规范.zip

    3. **面向对象编程**:Scala中的类可以有构造函数、方法、属性,同时支持单例对象和多重继承(通过特质实现)。它引入了“case class”来简化模式匹配,并且提供了隐式转换以增强类型兼容性。 4. **Actor模型**:...

    经典书籍 Scala for the Impatient.pdf

    本书深入浅出地讲解了Scala如何通过Actor模型来支持并发编程,并提供了一些实战案例。 5. **高级特性**:此外,书中还涉及Scala的一些高级特性,比如类型类、隐式转换等,这些都是Scala与其他编程语言相比的独特之处...

    Scala impatient

    3. **应用程序员专家级阶段(A3)**:掌握Scala中的并发编程模型、高级函数式编程技巧等。 4. **库设计师初级阶段(L1)**:学习如何设计和构建可重用的Scala库。 5. **库设计师中级阶段(L2)**:进一步提高库的设计能力...

    Beginning Scala

    - **Actor模型**:Scala提供了Actor模型来实现并发编程,这是一种基于消息传递的并发模型,非常适合构建高并发应用。 - **Future与Promise**:Scala的`scala.concurrent`包提供了Future和Promise机制,用于处理异步...

    scala 编程语言

    #### 一、Scala编程语言概述 Scala是一种现代的多范式编程语言,它结合了面向对象编程和函数式编程的特点。Scala的设计目标是解决Java等传统面向对象语言在扩展性和灵活性方面的局限性,同时保持与现有Java生态系统...

    scala编程指导文档

    #### 一、Scala语言概述 Scala是一种多范式编程语言,结合了面向对象编程和函数式编程的特点,运行在Java平台(JVM)上。它既能够提供静态类型检查的安全性,又能实现动态语言的灵活性。Scala的设计目标是解决Java的...

    Scala_2.7.6_API.chm.7z

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。这个压缩包文件"Scala_2.7.6_API.chm.7z"包含了Scala 2.7.6版本的API文档,这是一份重要的参考资料,帮助开发者理解和使用Scala语言及其库。...

    Scala编程完整版

    Scala编程是一种强大的、多范式的编程语言,它融合了面向对象和函数式编程的概念,旨在提高程序员的生产力和代码的可读性。Scala运行在Java虚拟机(JVM)上,因此可以无缝集成Java库,并利用Java平台的广泛生态系统...

    scala编程基础

    #### 一、Scala Actor并发编程概述 ##### 1.1 什么是Scala Actor 在Scala中,Actor是一种强大的并行编程模型,它基于事件驱动和消息传递机制。通过Actor,我们可以更加简洁和高效地编写多线程应用程序,尤其是在...

Global site tag (gtag.js) - Google Analytics