Class是OOP编程的基础。
现在我们开始Class。
下面我们定义一个简单的Groovy类:
class Book {
private String title
Book (String theTitle) {
title = theTitle
}
String getTitle(){
return title
}
}
在上面的Book类中,其实和我们平常的Java类没什么区别,定义了title属性,构造函数,get方法,完全是Java中的一个简单JavaBean.当然,Groovy中的类远不止这么简单,因为我在前面说过,学习一种编程语言,就如学习一门新的外语,假如,你所学的外语接近你的母语,相信,你能更快的熟悉这门语言。
对于脚本语言可能存在一种误解,因为脚本语言提供一种宽松的类型定义和让人感到惊奇的简短语法,它可能更适合作为黑客们(Hackers)的玩具而不是严谨的OOP语言。这种声音可能源于使用shell scripts或者早期的Perl,对于封装的缺乏,对于OOP代码管理上的缺乏,代码的频繁复制,隐藏的模糊不清的Bugs.不能帮助我们使用已有的代码来运用组合继承。
随着时间的推移,脚本语言的前景开始引人注目了。Perl添加了对OOP的支持,Python扩展了对OOP的支持,最近的Ruby,也成为完全的OOP语言。
当然我们的Groovy也是一种完全的OOP语言。它不但增强了Java的脚本语言能力,而且带来了新的OOP特性。比如Java的原始类型在Groovy中的改变,引入了Ranges和closures(闭包),为Collections的使用提供了更简单的方法。
Groovy中定义Class和Java差不多,通过class关键字来定义Class.Class中包含了contain fields, constructors, initializers, methods。而对于Scripts(脚本)不同(哈哈,现在才开始说道Scripts(脚本)),提供了额外的灵活度也带来了一定的限制,它即包含了代码,变量的定义,方法的定义又包含了Class定义。
在Java,Groovy都拥有local variables,他们作为方法一部分存在。
对于variables(变量)它必须在使用前被声明(除了Scripts),这样可以强制范围和拼写错误。声明variables(变量)包括指定name,可选的类型声明,修饰符,赋原始值,定义了变量后,就可以通过他们的名字来引用了。
而在Scripts(脚本)中可以使用未声明的variables(变量)。(待续,今天没多少时间)