staticメソッドからはstaticでない変数(インスタンス変数)は使えない

public class Number {
// private int num; この書き方はエラー!
  private static int num;

  public static void main(String[] args) {
    System.out.println("Number is = " + num);
  }

  public void setSize (int n) {
    num = n;
  }
  public int getSize() {
    return num;
  }
}

  • 逆(?)も然り

public class Number2 {
 private int num;

 public static void main(String[] args) {
  System.out.println("size is" + getNum());
 }
 public void setNum(int n) {
  num = n;
 }
 public int getNum() {
  return num;
 }
}

上の例はこうならOK

public class Number2 {
 private static int num;

 public static void main(String[] args) {
  System.out.println("size is" + getNum());
 }
 public void setNum(int n) {
  num = n;
 }
 public static int getNum() {
  return num;
 }
}