Java 理解数组对象,我想做的是在我拥有的每个类中调用我的数组
我试图理解数组对象,我想做的是在我拥有的每个类中调用我的数组 这是我的代码: projectProva.javaJava 理解数组对象,我想做的是在我拥有的每个类中调用我的数组,java,arrays,Java,Arrays,我试图理解数组对象,我想做的是在我拥有的每个类中调用我的数组 这是我的代码: projectProva.java public class ProjecteProva { Scanner sc = new Scanner(System.in); private final int maxContador = 4; private final DadeArr LlistaUsuari[] = new DadeArr[maxContador];
public class ProjecteProva {
Scanner sc = new Scanner(System.in);
private final int maxContador = 4;
private final DadeArr LlistaUsuari[] = new DadeArr[maxContador];
int ContadorActual;
}
public class DadeArr {
private String nomUsuari;
private String cognomUsuari;
public DadeArr(String nU, String nC){
nomUsuari = nU;
cognomUsuari = nC;
}
daderar.java
public class ProjecteProva {
Scanner sc = new Scanner(System.in);
private final int maxContador = 4;
private final DadeArr LlistaUsuari[] = new DadeArr[maxContador];
int ContadorActual;
}
public class DadeArr {
private String nomUsuari;
private String cognomUsuari;
public DadeArr(String nU, String nC){
nomUsuari = nU;
cognomUsuari = nC;
}
现在我在projectProva.java中工作,我有一些方法可以将扫描仪输入的数据保存到数组中
以下是我的一种方法的示例:
public int inserir(int aContadorActual){
ContadorActual = 1;
for (int i=1;i<=ContadorActual;++i){
System.out.println("Introdueix el nom del usuari: ");
String nU = sc.nextLine();
//sd.setNomUsuari(Name);
System.out.println("Introdueix el teu cognom : ");
String nI = sc.nextLine();
LlistaUsuari[ContadorActual] = new DadeArr(nU,nI);
System.out.println("El teu usuari s'ha creat satisfactoriament");
}
ContadorActual++;
return ContadorActual;
}
public int inserir(int-aContadorActual){
ContadorActual=1;
对于(int i=1;i您的代码中有多个gotcha。
1.您应该始终从索引0迭代数组(除非您有特殊需要,或者您使用Python之类的语言编程,其中数组从0开始)
2.您应该将循环中的条件设置为小于数组的精确长度。因此,在您的情况下,它将是i
。因为您只填充数组的索引#1,所以得到的是空值
您只需要为要访问的数组提供一个public
getter
方法。
比如:
public DadeArr[] getLlistaUsuari() {
return this.LlistaUsuari;
}
这样就可以了。
在其他类中,创建一个ProjecteProva
(我们称之为pPI
)的实例,要在那里获得数组,只需执行pPI.getLlistaUsuari()
,就可以了,代码中有多个gotcha。
1.您应该始终从索引0迭代数组(除非您有特殊需要,或者您使用Python之类的语言编程,其中数组从0开始)
2.您应该将循环中的条件设置为小于数组的精确长度。因此,在您的情况下,它将是i
。因为您只填充数组的索引#1,所以得到的是空值
您只需要为要访问的数组提供一个public
getter
方法。
比如:
public DadeArr[] getLlistaUsuari() {
return this.LlistaUsuari;
}
这样就可以了。
在其他类中,创建一个ProjecteProva
(我们称之为pPI
)的实例,要得到数组,只需执行pPI.getllistausari()
,您就可以得到它,当我创建这个函数时,它说我不能将Daderar[]转换为Daderar。所以我所做的是:public Daderar[]getllistausari(){返回this.LlistaUsuari;}但是,如果我试图查看其中的内容,则会得到null。我使用FOR,FOR(daderar n:pPi.getLlistaUsuari()){System.out.println(n);}。我从ad执行它。java@berokk请遵循Java命名惯例和编码风格。在Java中,我们将数组符号[]
在类型前面,而不是变量名前面。因此我完全忽略了它。现在我已经修正了。你可以找到一种很好的编码风格,它在这里被广泛接受:谢谢你,但是打印呢?如果我试着看一下里面的内容,它会给我空值。我使用FOR,FOR(daderar n:pPi.getLlistaUsuari(){System.out.println(n);}.我是从ad.java执行它的…如果我要求太多,我可以理解…再次感谢你当我创建这个函数时,它说我不能将Daderar[]转换为Daderar。所以我所做的是:public Daderar[]getLlistaUsuari(){return this.LlistaUsuari;}但是,如果我尝试查看它里面的内容,会得到null。我使用FOR,FOR(daderarn:pPi.getLlistaUsuari(){System.out.println(n);}。我从ad执行它。java@berokk请遵循Java命名惯例和编码风格。在Java中,我们将数组符号[]
在类型前面,而不是变量名前面。因此我完全忽略了它。现在我已经修正了。你可以找到一种很好的编码风格,它在这里被广泛接受:谢谢你,但是打印呢?如果我试着看一下里面的内容,它会给我空值。我使用FOR,FOR(daderar n:pPi.getLlistaUsuari(){System.out.println(n);}.我是从ad.java执行的…如果我要求太多,我可以理解…再次感谢你