変数の宣言の時に型以外に変数の性質を指定するキーワードが用いられます。
これらのキーワードは修飾子と呼ばれます。
Color color = Color.red;
static 宣言はメソッドに対しても行うことができます。その場合の意味は、
「クラス変数と他の staticなメソッドの呼び出ししか行わない」という
ことです。オブジェクト変数を 1個でも参照するメソッドは、static には
なれません。
staticなメソッドも、やはりオブジェクトを生成しないで用いることができます。
int x = Integer.parseInt( "10000" ); // 文字列を int型の数値に変換するメソッド
Graphicsクラスの描画メソッドなどは、その性質から static になっても
よさそうな気がします。しかし、実際には Graphicsの各オブジェクトごとに
異なる Font や Color のデータを利用しなくてはいけません。
したがって static なメソッドにはなれません。
その結果、
Graphics g;
g.setColor( Color.red );
のように必ず Graphics のオブジェクトが必要になります。