检查两个不同类的对象

时间:2014-03-26 18:43:06

标签: java

我有三个班级:

  1. 人类
  2. 父亲
  3. 子。
  4. Child class extends父亲和父亲延伸人类。

    我创建了每个类的一些实例并将它们存储到ArrayList中。

    现在我想编写一个方法来检查对象father1是否具有相同的字段地址(例如:" 21 str Goodwin")作为Object child1地址字段(父类和子类的实例)和将此方法提供给我的ArrayList,如果找到任何结果则打印。

    我该怎么做?

    让我在这里添加我的代码以便更清晰:

    人类:

      public class Om {
      String nume;
      String prenume;
      String cnp;
    
    Om(String nume,String prenume,String cnp){
    this.nume=nume;
    this.prenume=prenume;
    this.cnp=cnp;
    
    }
    @Override
    public String toString() {
        return "Numele omului: " + this.nume +"\n"+ "Prenumele omului: " + this.prenume   +"\n"+ "Cnp-ul omului: " + this.cnp + "\n" ;
    }
    
    
    }
    

    父类:

    public class Parinte extends Om{
    String domiciliu;
    Parinte(String nume, String prenume, String cnp, String domiciliu){
        super(nume,prenume,cnp);
        this.domiciliu=domiciliu;
    }
    
    @Override
    public String toString() {
        return "Numele parintelui: " + nume +"\n"+
                "Prenumele parintelui :" + prenume +"\n"+ 
                "Cnp-ul parintelui: " + cnp +"\n"+ 
                "Domiciliul parintelui: "+domiciliu+"\n"; 
    }
    
    }
    

    儿童班:

    public class Copil extends Parinte {
    int varsta;
    Copil(String nume, String prenume, String cnp, String domiciliu, int varsta){
        super(nume,prenume,cnp,domiciliu);
        this.varsta=varsta;
    }
    @Override
    public String toString() {
        return "Numele copilului: " + nume +"\n"+
                "Prenumele copilului :" + prenume +"\n"+ 
                "Cnp-ul copilului: " + cnp +"\n"+ 
                "Domiciliul compiluiui: "+ domiciliu +"\n"+
                 "Varsta copilului: "+varsta+"\n";
    }
    
    
    }
    

    我按字母顺序排序列表的方法:

    import java.util.*;
    
    public class comparareNume implements Comparator<Om>{
    public int compare(Om om1, Om om2){
        return om1.nume.compareTo(om2.nume);}
    
    
    }
    

    我的主要班级:

    import java.util.*;
    public class main {
    
    public static void main(String[] args) {
        Om om1=new Om("Dubolari", "Dragos", "2006004034120");
        Om om2=new Om("Andronachi","Andrei", "12591295967123");
        Parinte p1=new Parinte("Vreascu","Andy","5845289564684","Al. Cel Bun 13");
        Copil c1 = new Copil("Mamaliga","George","5942356874156","Al. Cel Bun 13", 15);
        List<Om> colectie = new ArrayList<Om>();
        colectie.add(om1);
        colectie.add(p1);
        colectie.add(c1);
        colectie.add(om2);
    
        comparareNume comparNume = new comparareNume();
        Collections.sort(colectie, comparNume);
        System.out.println(colectie);       
        }
    
    
    }
    

2 个答案:

答案 0 :(得分:2)

FatherObj.getAddress().equals(ChildObj.getAddress())

Child和Father内的getAddress()和字段address的示例

private String address = "21 str Goodwin"

public String getAddress() {
   return address;
}

答案 1 :(得分:1)

将这样的函数放入Human,它是通过构造函数设置的(它也可以通过setter设置,但在构造函数中这样做可以实现不变性)。

public Human(String address)  {
   addr = address;
}
public String getAddress()  {
   return  addr;
}

所有子类都可以访问此函数。

然后您可以按@NappaTheSaiyan

的建议访问它