anchor.diff:  
   = Object orientation
   :jls: http://docs.oracle.com/javase/specs/jls/se8/html/
  +:javabeans: https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
   
   This chapter covers the object orientation of the Groovy programming language.
   
  
positive.code: 
  A property is an externally visible feature of a class. Rather than just using a public field to represent
  such features (which provides a more limited abstraction and would restrict refactoring possibilities),
  the typical convention in Java is to follow JavaBean conventions, i.e. represent the property using a
  combination of a private backing field and getters/setters. Groovy follows these same conventions
  but provides a simpler approach to defining the property. You can define a property with:
  
  * an *absent* access modifier (no `public`, `protected` or `private`)
  * one or more optional _modifiers_ (`static`, `final`, `synchronized`)
  
negative.code: === Class
  
  Groovy classes are very similar to Java classes, and are compatible with Java ones at JVM level.
  They may have methods, fields and properties (think JavaBeans properties but with less boilerplate).
  Classes and class members can have the same modifiers (public, protected, private, static, etc) as in Java
  with some minor differences at the source level which are explained shortly.
  
  