趁有空,再了解一下GROOVY中关于类的通例

简单的,浅浅的看一下。

想起了RUBY里覆盖类的方法。。。

在GROOVY里也同样提到了,比如TOSTRING。。。

(其实,在我以前的经验中,从未用过这些东东。。:))

这样用了PACKAGE,显得正规点。。

Song.groovy

package org.acme.groovy

class Song {

    def name
    def artist
    def genre

    String toString(){
        "${name}, ${artist}, ${genre}"
    }

    def getGenre(){
        genre?.toUpperCase()
    }

}

SongExample.groovy

package org.thirdparty.lib
import org.acme.groovy.Song

class SongExample {

    static main(args) {
        def sng = new Song(name:"Le Freak",
            artist:"Chic", genre:"Disco")
        def sng2 = new Song(name: "Kung Fu Fighting", genre: "Disco")
        def sng3 = new Song()
        sng3.name = "Funkytown"
        sng3.artist = "Lipps Inc."
        sng3.setGenre("Disco")

        assert sng3.genre == "Disco".toUpperCase()

        println sng2.artist?.toUpperCase()

        println sng3.getArtist()
        println sng.name
        println sng.getGenre()
        println sng3.toString()

    }

}

输出:

时间: 2024-08-18 03:27:58

趁有空,再了解一下GROOVY中关于类的通例的相关文章

vs2013-VS2013 使用了extern定义变量,不能再另一个cpp中调用

问题描述 VS2013 使用了extern定义变量,不能再另一个cpp中调用 VS2013 在一个cpp内定义了 extern int sc = 0; 在另一个cpp中调用的时候 显示"未定义标识符" 如何解决?谢谢 解决方案 在文件1中定义全局变量: int sc = 0; 文件2中先声明再使用 extern int sc; //声明是外部全局变量 解决方案二: 写个类似全局类型的变量 或写一个类中,引用这个类 解决方案三: extern 时不能赋初值吧. 在一个 CPP 中定义一个

在Groovy中编写正则表达式

与Java相比, 在Groovy中编写正则表达式(regexes)简直是一种乐趣.在 Java中, regexes编程不仅需处理Pattern和Matcher对象,而且还要编写繁琐的 样板代码(boilerplate coding).而Groovy对这两个Java对象做了简单封装, 添加了一些额外的实用方法,并给出一个简化的新的语法和3个新的操作符. Groovy中,您可用slashy(斜线)语法"/../"定义字符串.这样以来便可避 免在Java正则表达式中使用过多的反斜线.例如:

在Groovy中使用字符串

Groovy支持两种类型字符串:一般的Java字符串,它是java.lang.String的实例:和GStrings,它是 groovy.lang.GString的实例,并且允许文本中包含占位符.GStrings并不是String的子类,因为String 类是最终类(final class)不能被继承.然而,GString与一般的字符串一样,因为Groovy能将 GStrings转型为Java strings. GString 适用于编写模板代码(templating),因为您必须动态构建字符串

groovy脚本中(非类中)可以使用静态变量吗

问题描述 groovy脚本中(非类中)可以使用静态变量吗 如问题: 在一个groovy脚本中以下代码: static int a = 1; //现在这样是报错 // 业务逻辑 // xxxx a++: 我只希望a初始化一次,注意是在脚本中,不是在定义class中 换句话说,我是想在脚本groovy.lang.Script子类里放静态变量

批量将数据表中原有的数据稍微变更再插入本表中

问题描述 批量将数据表中原有的数据稍微变更再插入本表中 表A中有以下字段,A_id,A_user_id,A_func_code,现在表A中有以下数据 A_id A_user_id A_func_code 1 张三 111 2 张三 222 3 张三 333 现在要表A中再插入数据,数据要求 要求为A_user_id等于张三的再插入时张三变更为李四 A_id为 sequence,大致描述如此,实际数据中不止这几个字段,数据也不止三条 等于说就是把原表中的A_user_id的数据再插入到本表中,只是

android-如何获取 edittxt 中的值,再放入 URL 中

问题描述 如何获取 edittxt 中的值,再放入 URL 中 private Button btnLogin; private EditText txtPub; private EditText txtPriv; final Context context = this; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R

settings-无法再android系统setting中的actionbar中添加switch

问题描述 无法再android系统setting中的actionbar中添加switch 在系统setting中添加了一个自己的选项.可惜在界面中的actionbar上无法添加switch 系统的蓝牙setting中有相同的结构.源码的添加switch代码如下: 大神们!!!求解啊!!!!!! Activity activity = getActivity(); Switch actionBarSwitch = new Switch(activity); if (activity instanc

wcf-WCF,客户端上传图片到服务端,然后再存放到数据库中的image字段中。

问题描述 WCF,客户端上传图片到服务端,然后再存放到数据库中的image字段中. WCF的问题.我现在在需要上传相片到数据库中存储,数据库中想用image数据类型来存储,不是用相片的路径.功能要求是在客户端首先将图片显示在PictuerBox中,然后点击上传.上传成功后需要从数据库中把相片取出来显示在PictuerBox).求案例 解决方案 http://blog.sina.com.cn/s/blog_a339e95f0101aakx.html 传输,直接传字节数组就可以了. 解决方案二: h

将新行为混合到Groovy和Scala类中

Java 语言的开发人员精通 C++ 和其他语言,包括多继承(multiple inheritance),使得类可以继承自任意数量的父类.多继承带来的一个问题是,不可能确定所继承的功能来自哪个父类.这个问题被称为钻石问题(请参阅 参考资料).钻石问题和多继承中固有的其他复杂性启发了 Java 语言设计者选择 "单继承加接口" 的方法. 接口定义了语义,但没有定义行为.它们非常适合用来定义方法签名和数据抽象,所有 Java 下一代语言都支持 Java 接口,并且无需进行重大的修改.不过,