クラスHanoiのコンストラクタでは3本の塔を立て、そこに指定された数のリングを積むことにしました。
別の言葉で言うと、Stack[] towerを初期化します。
リングの数を指定してもらう必要があるので、シグニチャは
Hanoi(int numOfRings)
となります。
さて、3本の塔を立てます。まずは、
tower = new Stack[3];
でメモリを確保します。次に
for (int i = 0; i < 3; i++) {
tower[i] = new Stack();
}
で確保したメモリを埋めます。
最後にリングを積みます。
for (int i = numOfRings; i > 0; i--) {
tower[0].push(new Integer(i));
}
で、numOfRingsから1まで降順にリングを積みます。例えばnumOfRings=3なら3、2、1の順でtower[0]にプッシュされます。
ここでpush(new Integer(i))としているのは、java.util.Stack.push()のシグニチャが
public Object push(Object item)
のためです。
int型の変数はObjectでないため、iをそのままpushはできません。