Вы можете использовать замыкания для достижения аналогичного эффекта, в основном так же, как вы делаете скрытие информации с помощью Javascript.
package test
class FunctionTests {
def privilagedObj = {
def privVar = 'foo'
def privateFunc = { x -> println "${privVar} ${x}"}
return {x -> privateFunc(x) }
}
public static void main(String[] args) {
def test = new FunctionTests().privilagedObj()
test('bar')
}
}