当前位置: 首页 > 知识库问答 >
问题:

检查不同类的两个对象

华聪
2023-03-14

我有三节课:

  1. 人类
  2. 父亲
  3. 孩子。

儿童阶级延伸父亲,父亲延伸人类。

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

现在,我想编写一个方法来检查对象father1是否与对象child1地址字段(类Father和Child的实例)具有相同的字段地址(例如:“21 str Goodwin”),并将此方法提供给我的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个答案

谯振国
2023-03-14

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

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

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

然后你可以按照@NappaTheSaiyan的建议访问它

萧煜
2023-03-14

FatherObj。getAddress()。等于(ChildObj.getAddress())

孩子和父亲内部的示例

private String address = "21 str Goodwin"

public String getAddress() {
   return address;
}
 类似资料:
  • 我有两个arraylist。employee类和user类的ArrayList。employee类将name、age、address作为字段。用户类将名称、年龄、地址作为字段。下面是两个列表 要检查用户是否和员工的地址相同。如果用户没有地址,则从员工处复制。

  • 我想写一个泛型函数,接受同一实体类的两个对象,比较不同的字段,并返回对特定字段所做的所有更改的列表。 然后调用上面的函数比较entity_audit表中的每一对记录。代码将非常大,以比较每个字段,并乘以不同的实体。有没有更好更高效的办法?

  • 问题内容: 我有一个对象 obj 和一个类名 MyClass ,我可以使用instanceof来检查obj是否为MyClass类型,或者可以说obj.getClass()。equals(“ MyClass”)。所以我想知道是否还有其他检查对象类型的方法。 问题答案: 当心:如果您的对象是的子类,或者它实现了接口(也通常是您感兴趣的-如果您回想起“ IS A” OOP概念),则也返回true。 又见

  • 我想编写一个Java类,根据相关的时间戳计算一些规则(对于每个rueleId)的出现次数。 例如 输入: 输出: 我想我可以利用HashMap。 我认为这里的键是基于ruleId(type:String)和timestamp(type:Calendar)的,值是计数。 我怎样才能拥有基于两个不同对象的密钥?我的方法错了吗?

  • 问题内容: 假设我有一个类A,而B,C,D是从A派生的。 如果我想知道所引用的对象的类型是什么,可以声明: 这是因为我确定从A派生的类只有B,C和D。 但是,如果我只想检查两个引用是否指向同一种对象,该怎么办? 所以像这样: 但是当然语法是错误的,如何在没有1000 if-else的情况下进行检查? 问题答案: 你的意思是 即使和属于相同的特定类,也应返回true 。 但是,如果与进行比较,则此方

  • 我有桌子: 行程:Trip_Num、Trip_Type等 用户的出差历史记录:Username、Trip_Num等 我正在用php做一个项目,需要为一个特定的用户(通过他的用户名)做一个SQL查询--需要知道用户的Trips历史表中Trip_Num的Trip_Type。 附上我的表格: 更新:我需要计算trip_type中的每个值。我的意思是我想看到“步行”-4次,“自行车”-3次,这很好?...