>>561
じゃあ、ついでに補足。Bar.javaを
public class Bar {
  int baz() {
    return 0;
  }
  void baz() {
  }
}
とやってコンパイルすると、
「Bar.java:5: baz() はBar で定義されています。」
と、コンパイラに蹴られます。
このあたり、カラクリをじっくり考えると、
安全性と可読性を考えた言語仕様と、
効率のよい実行を考えた実装の相克が垣間見えて、
なかなかにムズムズします。
本当は代入文を無くして、メソッドで代入を実現してしまうのが
オブジェクト志向としては王道なんですが、
こんどは null とか new の扱いに困ったりするわけです。
また新しい言語とか出てくるのかなぁ……