Groovy 类例子
1、class Toy{
def toyname //会在java代码中声明为私有的,并提供set和get
def unitPrice
def method(){ //此方法在生成的java代码中返回object
println 'Invoke method!'
}
String toString(){"${toyname}"}
}
def toy = new Toy(toyname:'toy1',unitPrice:'100') //自动回对应属性赋值 println "Toy ${toy.toyname},unit price :${toy.unitPrice}" toy.method() prinltn toy //会调用toString方法2、Groovy类分析
类和方法默认是public的 类属性是私有的 变量与方法使用动态属性 Groovy 自动提供构造函数、构造函数接受一个名-值对的映射,名称-值对与类的属性相对应。不用初始化对象的每个属性 生成标准的setter和getter方法可以通过 . 语法间接地访问属性 在进行属性 *** 作时总是会调用setter和getter方法,即使直接通过 . 语法访问属性也是如此 打印对象,在java中这样只会输出所有对象默认的toString()实现, 包.类名@hashcode 覆盖默认的toString()实现,让输出效果更好 String toString(){"${toyname}"}
继承
1、使用Java的继承机制。
2、支持方法覆盖于重载即多态。
class Father{
def name
String toString(){name}
}
class Son extends Father{
def score
String toString(){super.toString()+"."+score}
}
def f =new Father(name:'clat') println f // clat def s = new Son(name:'escaflone',score:'100') println s // escaflone:100
抽象类与接口
1、Groovy 动态类型的特征,实际上使抽象类与接口变得不是很必要了
2、抽象类提供应该由子类延迟实现的方法即抽象方法。
3、abstract class AbstractClassDemo
{
def abstract doSomething()
//抽象类也可以包含具体的方法
String toString(){println 'Abstract class'}
}
class AbstractClassSon extends AbstractClassDemo{
def doSomething(){}
}
4、接口作为 子类必须遵守的协议,要求子类必须实现所有的方法,使用Java相同的机制
interface iToyService{
def addToy()
def deletetoy()
def updatetoy()
def selectToy()
}
class ToyServiceimpl implements iToyService{
def addToy(){}
def deletetoy(){}
def updatetoy(){}
def selectToy(){}
}
总结以上是内存溢出为你收集整理的Groovy笔记(7)_Class全部内容,希望文章能够帮你解决Groovy笔记(7)_Class所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)