文章目录
一、使用 对象名.成员名 访问 Groovy 类的成员
二、使用 对象名.'成员名' 访问 Groovy 类的成员
三、使用 对象名['成员名'] 访问 Groovy 类的成员
四、完整代码示例
一、使用 对象名.成员名 访问 Groovy 类的成员
对 对象名.成员名 赋值 , 相当于执行 setter 方法 ;
/** * 创建 Groovy 类 * 在其中定义 2 个成员 */ class Student { def name def age } // 实例化 Student 类 def student = new Student() // 对 对象名.成员名 赋值 , 相当于执行 setter 方法 student.name = "Jerry" student.age = 16
使用 对象名.成员名 访问成员 , 相当于执行 getter 方法 ;
// 使用 对象名.成员名 访问成员 , 相当于执行 getter 方法
执行结果 :
Jerry 16
二、使用 对象名.‘成员名’ 访问 Groovy 类的成员
可以使用 对象名.‘成员名’ 访问 Groovy 类的成员 , 这样写的好处是 , 不用将代码写死 , 在运行时可以自由灵活的决定要访问哪个成员 ;
如 : 从配置文件中获取要访问哪个成员 , 或者从服务器端获取要访问的成员 ;
在 Java 中如果要根据字符串决定要访问哪个成员 , 只能通过反射进行访问 ;
代码示例 :
/** * 创建 Groovy 类 * 在其中定义 2 个成员 */ class Student { def name def age } // 实例化 Student 类 def student = new Student() // 对 对象名.'成员名' 赋值 , 相当于执行 setter 方法 student.'name' = "Han" student.'age' = 32 // 使用 对象名.'成员名' 访问成员 , 相当于执行 getter 方法 println student.'name' println student.'age'
执行结果 :
Han 32
三、使用 对象名[‘成员名’] 访问 Groovy 类的成员
使用 对象名[‘成员名’] 访问 Groovy 类的成员 , 相当于调用类的 getAt 方法 , 该方法的函数原型如下 :
/** * 允许使用下标运算符查找动态属性值 * <code>bean[somePropertyNameExpression]</code>。 * groovy的常规属性表示法更简洁, * 但只适用于编译时已知的属性名。 * * @param self 访问的对象 * @param property 访问的属性名称 * @return 返回属性值 * @since 1.0 */ public static Object getAt(Object self, String property) { return InvokerHelper.getProperty(self, property); }
代码示例 :
// 对 对象名['成员名'] 赋值 , 相当于执行 setter 方法 student['name'] = "CSDN" student['age'] = 9 // 使用 对象名['成员名'] 访问成员 , 相当于执行 getter 方法 println student['name'] println student['age']
执行结果 :
CSDN 9
四、完整代码示例
完整代码示例 :
/** * 创建 Groovy 类 * 在其中定义 2 个成员 */ class Student { def name def age } // 实例化 Student 类 def student = new Student() // 使用 setter 方法设置成员变量 student.setName("Tom") student.setAge(18) // 使用 getter 方法获取成员值 println student.getName() println student.getAge() // 对 对象名.成员名 赋值 , 相当于执行 setter 方法 student.name = "Jerry" student.age = 16 // 使用 对象名.成员名 访问成员 , 相当于执行 getter 方法 println student.name println student.age // 对 对象名.'成员名' 赋值 , 相当于执行 setter 方法 student.'name' = "Han" student.'age' = 32 // 使用 对象名.'成员名' 访问成员 , 相当于执行 getter 方法 println student.'name' println student.'age' // 对 对象名['成员名'] 赋值 , 相当于执行 setter 方法 student['name'] = "CSDN" student['age'] = 9 // 使用 对象名['成员名'] 访问成员 , 相当于执行 getter 方法 println student['name'] println student['age'] println student.getAt("age")
执行结果 :
Tom 18 Jerry 16 Han 32 CSDN 9 9