我创建了“Testklasse”类的4个对象。这些对象中的每一个都有一个名称(Ingrid,Ask,Tom,Dana),它们各自代表一个人。我想要做的是创建不同的方法循环对象,看看他们是否相互了解,是bf / gf,如果他们喜欢彼此等等。我试图创建方法blirKjentMed(trans:getsToKnow) ),但它不起作用,我不知道从这里去哪里。 有小费吗?
import easyIO.*;
import java.io.*;
import java.util.*;
class Oblig1{
public static void main(String[] args){
Testklasse t = new Testklasse();
}
}
class Testklasse{
public Testklasse(){
Person ingrid = new Person("Ingrid", 3);
Person ask = new Person("Ask", 3);
Person tom = new Person("Tom", 3);
Person dana = new Person("Dana",3);
ingrid.blirKjentMed(ingrid);
}
}
class Person{
private String navn;
private Person [] kjenner;
private Person [] kjennerIkke;
private Person forelsket;
private Person sammenmed;
Person(String n, int lengde){
this.navn = n;
this.kjenner = new Person[lengde];
this.kjennerIkke = new Person[lengde];
this.forelsket = forelsket;
this.sammenmed = sammenmed;
}
public void blirKjentMed(Person ingrid){
for(int i = 0; i < ingrid.kjenner.length; i++){
if(ingrid.navn.equalsIgnoreCase("ingrid")){
continue;
} else {
kjenner[i] = ingrid;
System.out.println(ingrid.navn + kjenner[i].navn);
}
}
}
答案 0 :(得分:0)
将您的对象放入数组或ArrayList
,然后通过它进行交互:
for(Testklasse obj : myArray) {
// do stuff
}
答案 1 :(得分:0)
我认为这是一个家庭作业问题,因为固定大小的数组不适合代表一个人的朋友。人们可以有很多朋友,名单可以改变。
让我们看一下Person
课程。正如您将注意到的那样,构造函数不能正常工作,因为它为Perspn
和null
构建forelsket
sammenmed
。这条线
this.forelsket = forelsket; \\ Google: forelsket means lover in English.
不起作用。 forelsket
永远不会被初始化,因此在构造函数的开头,this.forelsket
为null
。由于forelsket
不作为构造函数参数出现,因此代码段被解释为
this.forelsket = this.forelsket;
什么也没做。一个更好的构造函数是:
Person(final String n, final Person forelsket,
final Person sammenmed, final int lengde) {
this.navn = n;
this.forelsket = forelsket;
this.sammenmed = sammenmed;
this.kjenner = new Person[lengde];
this.kjennerIkke = new Person[lengde];
}
虽然在了解集合后,摆脱lengde
并使用ArrayList
会更好。
接下来,您需要编写方法来操作kjenner
和kjennerIkke
数组(或列表)。你可以自己填写:
public void setForelsket(final Person forelsket);
public Person getForelsket();
public void setSammenmed(final Person sammenmed);
public Person getSammenmed();
// Return whether the addition changed anything.
public boolean addKjenner(Person kjenner);
public boolean removeKjenner(Person kjenner);
// Same for kjennerIkke.
毕竟,您可能想要创建自己的equals
和hashCode
方法;这些是收藏所必需的。