搜索员工对象数组中的员工对象

-7 java

这是我的计划:

class EmP
{
    int id;
    Emp(int id)
    {
        this.id=id;
    }
    int getId()
    {
        return id;
    }
    int find(Emp[] emp)
    {
        int i;
        for(i=0;i<emp.length;i++)
        { 
            if(emp[i]==emp[i])
                return i;
            else
                return -1;
        }
        System.out.println("successfull");
    }
    public static void main(String args[])
    {
        Emp emp[]={new Emp(1),new Emp(2),new Emp(3)};
        find(emp[0]);
    }
}
Run Code Online (Sandbox Code Playgroud)

此程序查找是否在数组中存在employee对象.编译此程序时出错.我可以知道这个程序有什么问题吗?

kvi*_*iri 5

在提问时,您应该始终告诉错误消息.那些东西存在是有原因的.但是,我认为这与此有关:

public class EmP {

在其他地方你使用classname Emp(注意小写的"p").案例在Java中很重要,别忘了!还有另一种语法错误:

find(emp[0]);
Run Code Online (Sandbox Code Playgroud)

find不是一种static方法,因此您需要在对象实例上调用它.此外,emp[0]不是Emp[]因为参数类型不匹配.例如,emp[0].find(emp)语法上是正确的.

最后,您的find方法在语义上是不正确的.

if(emp[i]==emp[i])
    return i;
else
    return -1;
Run Code Online (Sandbox Code Playgroud)

您只是检查对象emp[i]是否与自身相同.此外,如果不是,您将立即放弃搜索而不检查阵列的其余部分.this改为使用该对象,只有-1在搜索整个数组时才返回,而不会找到匹配项.

你有很多需要解决的问题.