Java に関する本を読んでいたとき、このように書かれた一例を見ました。そして、メインメソッドの外で変数を宣言できるのでしょうか? メインメソッドの外側と内側で変数を宣言することの違いは何ですか? ここでの「静的」の役割は何ですか? 誰か説明してくれませんか?私はJavaが初めてです。
public class Printstuff {
      static int an_integer = 0;
        public static void main(String[] args) {
          int an_integer = 2;
          String[] some_strings = {"Shoes", "Suit", "Tie" };
          an_integer = an_integer - 1;
          some_strings[an_integer] = some_strings[an_integer] +"+++";
          for (int i = 0; i < some_strings.length; i++)
            System.out.println(some_strings[Printstuff.an_integer]);
        }
    }
よろしくお願いします。