ちょっと考えてみた27
7グローバル変数という聞きなれない用語が出てきたので、Android、Javaでの変数について考えてみる。
少し復習。
Javaでは、フィールドという名称が出てくるが、これはすこし混乱するもとだとおもってます。メンバー変数と呼んだほうがしっくりきます。
ローカル変数 ・・・ メソッド内にしか出てこない変数
そのメソッドの処理内容を記載するためだけの変数
メンバー変数 ・・・クラス内で定義された変数
[クラスは変数とメソッドをまとめたもの]
さて、本題ですが、グローバル変数そのものは、Javaでは無いようです。
ではAndroidではどうでしょうか?Androidではあります。
これまで、MainActivityクラス内で、一番上に変数を定義するのが、少し違和感があったのですが、これで納得しました。
ただし、非同期のプログラミング(HTTP通信やデータベースなど)では、それ関連の変数はグローバル変数にしないほうがよいようです。これらのときは、try-catch文や無名クラスを使用したりなどで、クラス変数も使いづらく(実際沼ります)、ローカル変数を使って処理を記載したクラス(Runnableを実装したクラスなど)を作成し、それをスレッド内でインスタンス化し、そのメソッドを呼び出すというほうがよいようです。
下記参照してます