日期:2014-05-18  浏览次数:20648 次

请帮我看看这个程序错在什么地方?
这个程序调试的时候有2个错误,我不知道怎么错的,麻烦告诉我一下好吗?谢谢了……
package online;

public class online
{
private String uName[];
private String uNickName[];
private String uSex[];
public String room[];
  private int total;
   

public online()
{
uName=new String[50];
uNickName=new String[50];
uSex=new String[50];
  room=new String[50];
total=0;
}
public void add(String UserName,String NickName,String Sex)
{
if(total<50)
{
uName[total]=UserName;
uNickName[total]=NickName;
uSex[total]=Sex;
total++;
}
}
public int delete(String UserName)
{
for(int i=0;i<total;i++)
if(uName[i].equals(UserName))
{
for(int j=i;j<total-1;j++)
{
uName[j]=uName[j+1];
uNickName[j]=uNickName[j+1];
uSex[j]=uSex[j+1];
}
total--;
}
}
public int find(String UserName)
{
for(int i=0;i<total;i++)
{
if(uName[i].equals(UserName))
return(i+1);
if(i==(total-1))
return 0;
}
return 0;
}
public String get_uName(int num)
{
if(num<50)
return uName[num];
return null;
}
public String get_uNickName(int num)
{
if(num<50)
return uNickName[num];
return null;
}
public String get_uSex(int num)
{
if(num<50)
return uSex[num];
return null;
}
public int get_total()
{
return total;
}
public String get_room()
{
return room;
}
  public String set_room(String str)
  {
  this.room =str;
  }
}

------解决方案--------------------
你定义的room是一个字符串数组,可你的
public String get_room() 

return room; 
}返回的是字符串
public String set_room(String str) 

this.room =str; 

同上,字符串不能付给字符串数组!而且方法中没有返回String
还有
public int delete(String UserName) {
for (int i = 0; i < total; i++) {
if (uName[i].equals(UserName)) {
for (int j = i; j < total - 1; j++) {
uName[j] = uName[j + 1];
uNickName[j] = uNickName[j + 1];
uSex[j] = uSex[j + 1];
}
total--;
}
}
}
也没有返回int !
------解决方案--------------------
可以的话把错误提示给出来看看.另外
public int delete(String UserName) { 
for (int i = 0; i < total; i++) { 
if (uName[i].equals(UserName)) { 
for (int j = i; j < total - 1; j++) { 
uName[j] = uName[j + 1]; 
uNickName[j] = uNickName[j + 1]; 
uSex[j] = uSex[j + 1]; 

total--; 




肯定是错误的,你的total是全局变量,不是局部变量.全局变量的话,可以这样改:
public void delete(String UserName) {
不需要返回东西.如果一定要返回东西的话,应该有return的,你少东西了.
------解决方案--------------------
你的total是全局变量,不是局部变量
------解决方案--------------------
public int delete(String UserName)
{
for(int i=0;i <total;i++)
if(uName[i].equals(UserName))
{
for(int j=i;j <total-1;j++)
{
uName[j]=uName[j+1];
uNickName[j]=uNickName[j+1];
uSex[j]=uSex[j+1];
}
total--;
}