私はjavaでコンビナトリアル計算機を作りたいと思っていますが、私は非常に初心者です。私はクラスを持っています、その名前は順列です。私は配列リストを宣言しましたが、その中にコンテンツをアップロードすることはできません。プログラムが実行された後、配列リストは空になります。どうして?私のJavaプログラムはどのように動くのですか? (ArrayList)
package combinatorics;
import java.util.*;
public class Permutation {
private int num;
protected ArrayList<Integer> szamok = new ArrayList<Integer>();
public Permutation(int number) {
this.num = number;
}
protected void makeArrayList() {
for (int i = 1; i < this.num+1; i++) {
this.szamok.add(i);
}
}
}
これは私のメインのメソッドです:
public static void main(String[] args) {
Permutation perm = new Permutation(5);
perm.getNumbers();
}
あなたは決して 'makeArrayList()'を呼び出すことはありません。プライベートなので、クラス外の誰もそれを呼び出すことはできません。さらに悪いことに、コンストラクタもプライベートです。 – Compass
コンストラクタはプライベートではありませんでした。 :D私は偶然に変更されました。しかし、コンストラクタがプライベートでない場合、arraylistも空になります。 – Kovoliver
@Kovoliverあなたはこの点を見逃しています - 'makeArrayList()'がプライベートであるという事実も問題です。これは呼び出されませんので、あなたのArrayListは常に空です。コンストラクタをパブリックにすることは、少なくともその問題を解決するのに役立つものではありません。また、このクラスを実際に使用する場所を示すために質問を編集して、これに答えることが重要です。 – EJoshuaS