You might like Groovy. http://groovy.codehaus.org/
Foo foo; - which creates a private variable and Groovy auto-generates getters & setters (which you can write yourself if you wish)
accessing the member variable bar.foo actually calls the getter.
Groovy also has an implicit null check
And many other syntactical niceties and enhancements over Java.