別のスタックフレーム上にあるローカル変数を参照するためのバイトコードはJVMに存在しないので、そのようなローカル変数は参照できない
その変数の値を内部クラスの中にコピーして保持おけば、そのコピ−の方は参照できるが、代入とかして変更しても当然コピー元は変更されない
非finalな変数をこのように暗黙のうちにコピーして保持すると代入したときにこのような見ため矛盾が生じるのでそのようなことは出来なくした
finalな変数なら代入できないから矛盾は発生しないのでそのようなことを出来るようにした