Groovy笔记(7)_Class

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(){}

     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值