ループでたし込む時,和を作る変数の初期化

1.forループを使い,ある変数に「たしこむ」時,その変数に0を入れておく必要がある。
  次のプログラムは,作業前にsum,sum2に0を代入して,準備をしてから作業を行ない,成功した例である。

List 1 成功したテストプログラム

/*1から10までの単純和と1から10までの平方和*/
public class XXXX {
    public static void main(String[] args) {
        XXXX mainprg = new XXXX();
    }
   
    XXXX() {
        int i;
        int sum;  /*単純和をしまう変数*/
        int sum2; /*平方和をしまう変数*/
        sum=0;    /*0を代入 これをしておかないと変な値が入っていることになる*/
        sum2=0;   /*0を代入 これをしておかないと変な値が入っていることになる*/
        System.out.printf("初期化後のsum,sum2=%d %d\n",sum,sum2);
        for (i=1;i<=10;i++) {
            sum=sum+i;
            sum2=sum2+i*i;
            System.out.printf("i,sum,sum2=%d %d %d\n",i,sum,sum2);
        }
        System.out.printf("1から10までの単純和と平方和=%d %d\n",sum,sum2);
    }
}

実行結果
初期化後のsum,sum2=0 0
i,sum,sum2=1 1 1
i,sum,sum2=2 3 5
i,sum,sum2=3 6 14
i,sum,sum2=4 10 30
i,sum,sum2=5 15 55
i,sum,sum2=6 21 91
i,sum,sum2=7 28 140
i,sum,sum2=8 36 204
i,sum,sum2=9 45 285
i,sum,sum2=10 55 385
1から10までの単純和と平方和=55 385

2.次のプログラムは,作業前にsum,sum2に0を代入せずに,作業を行ない,コンパイルエラーを出した例である。

List 2 失敗したテストプログラム

/*1から10までの単純和と1から10までの平方和*/
public class XXXX {
    public static void main(String[] args) {
        XXXX mainprg = new XXXX();
    }
   
    XXXX() {
        int i;
        int sum;  /*単純和をしまう変数*/
        int sum2; /*平方和をしまう変数*/
        System.out.printf("初期化後のsum,sum2=%d %d\n",sum,sum2);
        for (i=1;i<=10;i++) {
            sum=sum+i;
            sum2=sum2+i*i;
            System.out.printf("i,sum,sum2=%d %d %d\n",i,sum,sum2);
        }
        System.out.printf("1から10までの単純和と平方和=%d %d\n",sum,sum2);
    }
}

実行結果
>javac XXXX.java
XXXX.java:64: エラー: 変数sumは初期化されていない可能性があります
                System.out.printf("初期化後のsum,sum2=%d %d\n",sum,sum2);
                                                          ^
XXXX.java:64: エラー: 変数sum2は初期化されていない可能性があります
                System.out.printf("初期化後のsum,sum2=%d %d\n",sum,sum2);
                                                              ^
エラー2個

>java XXXX
エラー: メイン・クラスXXXXが見つからなかったかロードできませんでした