【发布时间】:2020-12-09 09:46:46
【问题描述】:
所以我目前正在为我的 Java 类开发一个项目。
这是我的主要内容:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
public class Main {
public static void main(String args[]){
Entrepot Entrepot1=new Entrepot(3);
Rangee Rangee1=new Rangee(2);
Rangee Rangee2=new Rangee(3);
Rangee Rangee3=new Rangee(3);
/*for(int i=0;i<Entrepot.getNbRangee();i++) {
Entrepot.addRangee(Rangee.getID()==i);
}*/
for(int i=0; i<Entrepot.getNbRangee(); i++) {
Entrepot.addRangee(Rangee.getID());
}
Meuble meuble = new Meuble("Table",new Lot[]{new Lot(new Vis(200,10),1),new Lot(new Planche(1000,500),3)},"Salon",3);
meuble.afficherMeuble();
System.out.println(Rangee1.getID());
System.out.println(Rangee2.getID());
System.out.println(Rangee3.getID());
System.out.println(Entrepot.getNbRangee());
System.out.println(Entrepot.getListeRangee());
}
}
每当用户创建一个对象“Rangee”时,我希望它自动添加到 Entrepot 类的 listeRangee 列表中。
正如您在我的 Main 中看到的,我尝试了一个 for 循环,它添加了 ID 为 i 的每个 Rangee,但没有成功。
我对此很陌生,所以如果您能帮助我,我将不胜感激!
谢谢!
Rangee.java
import java.util.ArrayList;
import java.util.List;
public class Rangee {
private static int count=0;
private static int ID;
private int longueur;
private int largeur=1;
private int hauteur=1;
private int volume= longueur*largeur*hauteur;
private ArrayList<Lot> listeLot= new ArrayList<Lot>();
public Rangee(int longueur) {
this.longueur=longueur;
if(ID<Entrepot.getNbRangee()) {
ID=count++;
}
else {
System.out.println("NON");
}
}
public static int getID() {
return ID;
}
public void setID(int iD) {
if(ID>Entrepot.getNbRangee()) {
System.out.println("Le nombre maximum de rangee est de "+ Entrepot.getNbRangee());
}
ID = iD;
}
Entrepot.java
import java.util.ArrayList;
import java.util.List;
public class Entrepot {
private static int nbRangee;
static ArrayList<Rangee> listeRangee= new ArrayList<Rangee>(nbRangee);
public Entrepot(int nbRangee) {
this.nbRangee=nbRangee;
}
public static boolean addRangee( Rangee newRangee ) {
listeRangee.add(newRangee);
return true;
}
public static int getNbRangee() {
return nbRangee;
}
public void setNbRangee(int nbRangee) {
this.nbRangee = nbRangee;
}
public static ArrayList<Rangee> getListeRangee() {
return listeRangee;
}
public void setListeRangee(ArrayList<Rangee> listeRangee) {
this.listeRangee = listeRangee;
}
}
【问题讨论】:
-
你至少需要一个 list 的 getter :
anotherClassInstance.getTheList().add(anObject) -
然后将此构造函数设为私有,并创建一个公共工厂方法,该方法在创建 Rangee 后,将其添加到 Entrepot,然后返回。这样,您将不允许在未将其添加到所需列表的情况下创建和实例。
-
定义“没有成功”。究竟是什么不起作用?