使用最简单的术语,a variable(变量): 变量名引用的值关联着物理内存的某个位置。和Java一样,Groovy拥有 local variables(本地变量),fields(字段):local variables他们的范围定义为方法的一部分存在。fields的存在范围为类或者对象中。Fields and local variables有太多相同的声明方式,所以同时讲解他们。

  • Declaring variables
  1. Fields and local variables 使用前必须被声明 。
  2. 声明包括:指定变量名, 可选的类型声明和 修饰符,分配初始值.
  3. 一旦被定义,变量将通过变量名来引用。
  4. Groovy 使用Java’的修饰符— private, protected, publicfinal(不允许在分配值),static(为类变量),这些修饰符和Java中的意思相同。
  5. 非静态变量被看到对象变量
  6. Groovy  fields 默认的修饰符有着特别的意义(在GroovyBeans中讲解)。
  7. 变量类型的定义是可选的:但是假如你没有给出类型定义和修饰符定义,你必须使用def来定义变量,来说明此变量为未知类型(哈哈,希望大家能有点思维能力,其实外国人的东西都是套公式的东西,灵活运用在于你的思维能力了。前面说过Groovy一切都是对象,你用def关键字定义的变量,实际是默认值为Object
  8. 下面给出一些示例:
    class SomeClass {
    public fieldWithModifier
    String typedField
    def untypedField
    protected field1, field2, field3
    private assignedField = new Date()
    static classField
    public static final String CONSTA = 'a', CONSTB = 'b'
    def someMethod(){
    def localUntypedMethodVar = 1
    int localTypedMethodVar = 1
    def localVarWithoutAssignment, andAnotherOne
    }
    }
    def localvar = 1
    boundvar1 = 1
    def someMethod(){
    localMethodVar = 1
    boundvar2 = 1
    }
  9. 注意,这里有个规则:在Groovy中,比如你给一个动态类型分配了number类型的值,就不能再用String的类型了 ,反之亦然(在后面的章节会说明原因)。
  • Referencing and dereferencing fields
  1. 在Groovy中你可以通过obj.fieldName来引用变量,同时他提供了额外的能力,你可以使用下标运算符来引用,示例:

    class Counter {
    public count = 0
    }
    def counter = new Counter()
    counter.count = 1
    assert counter.count == 1
    def fieldName = 'count'
    counter[fieldName] = 2
    assert counter['count'] == 2

Groovy(Java笨狗)系列--fields and local variables相关推荐

  1. Groovy(Java笨狗)系列--Class,Scripts

    Class是OOP编程的基础. 现在我们开始Class. 下面我们定义一个简单的Groovy类: class Book { private String title Book (String theT ...

  2. Groovy(Java笨狗)系列--datatypes

    Java's type system-primitives and references(原始值和引用) 在Groovy中,一切都是对象. Java 区分primitive types (比如:int ...

  3. Groovy(Java笨狗)系列---断言

    假如你使用过JDK1.4或者更高版本,你一定熟悉assertions(断言)..通常,他会在你的代码中测试你的逻辑是否矛盾和正确. 接下来我们通过实例来学习Groovy中的断言,在学习之前,请务必记住 ...

  4. Groovy(Java笨狗)系列-Working with closures(1)

    翻译自<Groovy in action>,如有不准确之处,希望指教! closures(闭包)很重要,非常的 重要!!!可以被认为是Groovy中一个非常有用的特性.同时,在你没有完全了 ...

  5. Groovy(Java笨狗)系列---Getting Started(三)

    (一).Setting up your Java environment(设置你的Java环境). Groovy需要Java,建议JDK1.4或者以上.假如你还没有安装Java,请按照下面的步骤来安装 ...

  6. Groovy on Grails(Java笨狗)系列---前言(二)

    本系列的教材是由本人对官方文档的翻译,也算一个对学习的总结,对于原文档的所有权归原作者,译文为共享资源,但不能用于商业目的. 因为groovy,grails的语法发生了很多变化,可能现在互联网上的资料 ...

  7. Groovy on Grails(Java笨狗)系列---开篇(一)

    Groovy 和Grails就不用介绍了 这两个系列主要是写给喜欢Groovy和Grails的朋友们 个人感觉 Groovy on Grails会在以后使我们对现在编程思想的改变,起码对于我自己来说是 ...

  8. Java笨狗groovy学习笔记—Regular Expressions

    正則表達式就像一把瑞士軍刀. "potatoe" ==~ /potatoe/ 假如你在groovyConsole運行它,將返回true.這裡有兩件需要注意的事情: 1.==~操作符 ...

  9. Grails(Java笨狗)系列-更好的理解闭包(closure)

    用现实生活中的示例来说明闭包 现在,让我们来考虑放在信封里的信纸.信纸里可能写着"x=5, y=10"等等一些内容.对于一个闭包(closure),信纸上可能写着一系列的指令.你可 ...

最新文章

  1. The restricted headers are:
  2. linux 分区表dd,dd复制分区后目标分区的大小变成原分区了
  3. 深度区分LoRa和LoRaWAN的区别
  4. 信息图:程序员/开发人员实际在用哪些工具
  5. Linux开机启动过程(9):进入内核入口点之前最后的准备工作
  6. 拿来就用:11款不容错过的 Node.js 框架
  7. dax圣经 翻新_使用翻新和Node JS的Android图像上传
  8. 计算机音乐叫什么名字,电脑开机那段美妙的音乐叫什么名字?
  9. JAVAEE框架架构高级视频教程
  10. 计算机硬件或网络连接失败,Win10系统出现45错误代码:硬件设备未连接到计算机...
  11. php判断手机浏览器,php判断是不是手机浏览器访问
  12. Astah Professional for Mac(UML建模工具)
  13. html上下两个箭头符号怎么打出来,双横向箭头符号怎么打,双横向箭头符号怎么打...
  14. 【Word文稿】在Word中优雅地插入VScode颜色主题代码(高亮、背景、颜色、字体均完美)
  15. WebRTC和APP互通连麦直播
  16. 100个世界上鲜为人知的“常识”
  17. 蓝桥杯青少年组C++编程题
  18. RBF(径向基)网络
  19. matlab从mp4文件中提取音频,怎么提取MP4视频中的音频,将MP4格式转换为MP3格式
  20. STM32跳入HardFault Handler中断分析

热门文章

  1. 阿里菜鸟回答2018:智能物流骨干网里的4张技术面孔
  2. 经济危机与金融危机的学术解释与通俗到庸俗的解释,包你明白
  3. 数电与、或、非、与非、或非、与或、同或
  4. matlab极性电容叫什么,有极性电容和无极性电容原理区别
  5. 计算机教师个人业绩成果自述,个人评价自述
  6. 仿头条新闻资讯dz模板/Discuz新闻资讯商业版GBK模板
  7. 神经网络中-baseline,benchmark,backbone都是什么意思?
  8. 【临沂seo首选】增长|聊聊抖音SEO
  9. wow达拉然发礼物机器人_《魔兽世界》“彩虹生成器”获取方法以及达拉然点击就送玩具!...
  10. 【ES实战】Elasticsearch指标监控说明