-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对象.编译此程序时出错.我可以知道这个程序有什么问题吗?
在提问时,您应该始终告诉错误消息.那些东西存在是有原因的.但是,我认为这与此有关:
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在搜索整个数组时才返回,而不会找到匹配项.
你有很多需要解决的问题.
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |