zoukankan      html  css  js  c++  java
  • 5 类、对象、方法

    1       类、对象、方法

    1.1  类

    Groovy类,默认public。

    下边的Groovy类,叫做Task.groovy

    package com.vogella.groovy.first

     

    class Task {

        String summary

        String description

        Date dueDate

    }

    1.2  对象 (POGO) and 成员变量(fields)

    Groovy中的所有成员变量默认private。Groovy会自动创建getter和setter方法,为每个成员变量。如果你将该类注解或者对一个成员变量使用@Bindable进行注解,Groovy也会增加PropertyChangeSupport 到该类或者该成员变量。一个Groovy类适应java bean规范。

    Groovy对象经常叫做Plain Old Groovy Objects (POGO)

    l  访问成员变量的方法是:直接使用getter和setter方法,或者直接使用name。

    l  Groovy也支持数组下标访问(object[property])。

    l  即使你使用name方法访问,Groovy也会调用getter或setter方法。

    l  如果一个成员变量不可改变如定义了final,此时Groovy不能提供setter方法。

    1.3  构造方法

    Groovy的构造方法中可以定义参数。这个构造方法也被叫做基于map的构造器,因为它使用property:value的map标记。

    如果一个构造方法被使用了,Groovy首先调用默认的构造方法,然后调用这些成员变量的setter方法。

    如果你在Groovy代码中调用了java类,该“带参数的构造方法”也能使用。

    以下例子显示了带参数的构造方法。

    package com.vogella.groovy.first

     

    class Person {

        String firstName

        String lastName

        int age

        def address

        static void main(def args) {

           Person p = new Person()

           //使用自动生成的访问方法

           p.setFirstName("成员变量赋值1")

           //尽管我们直接调用name,但是,以下仍然使用自动生成的setter方法。

           p.lastName="成员变量赋值2"

           p.address=("北三环马甸东路")

           println(p.firstName+" "+p.lastName);

           //使用自动生成带参数的构造方法

           p = new Person(firstName:"构造方法赋值1",lastName:"构造方法赋值2");

           println(p.firstName+" "+p.lastName);

        }

    }

    输出

    1.4  验证相等: == 和is()方法

    l  对于==

    验证值是否相等,而不是引用。

    l  对于is()

    验证引用是否相等,但是我验证 字符串值 时却相等。

    在Groovy中,null==null返回true。如果两个引用地址指向同一个对象,则也是true。如果一个对象实现了compareTo 方法,Comparable被使用,可以使用equals 方法。

    1.5  弱类型的方法中的参数与返回值

    Groovy允许有弱类型的参数值。弱类型参数值默认为0.

    package first

     

    class Hello {

     

        static main(args) {

           println sum(1,5)

           println sum(1,2,5)

        }

        static sum(a,b,c=0) {

           a+b+c

        }

    }

    输出:

    我发现,sum方法中没有返回值类型。尝试着加入int,String,结果输出跟没加返回值类型相同。又尝试着加入void,运行后,发现返回的是null。

    1.6  方法中默认参数

    In Groovy you assign default values to parameters in a method. If a default value for a parameter is defined, Groovy offers two method signatures: one with all parameters and one where the parameter with a default value is omitted. If you use multiple parameters with default values then the right most parameter with a default value is first eliminated then the next, etc.

    Groovy会为一个方法中的参数分配一个默认值。

  • 相关阅读:
    14.UA池和代理池
    13.scrapy框架的日志等级和请求传参
    12.scrapy框架之递归解析和post请求
    11.scrapy框架持久化存储
    10.scrapy框架简介和基础应用
    09.移动端数据爬取
    08.Python网络爬虫之图片懒加载技术、selenium和PhantomJS
    07.验证码处理
    vi编辑器
    tar 压缩命令
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/5708955.html
Copyright © 2011-2022 走看看