哪位高手可以帮忙解决一下如下代码中的Email方法体的各部分的含义
class Email{
  protected String UserName;
  protected String HostName;
  Email(){
    
  }
  Email(String s){
    int j=s.indexOf('@');
    if(j!=-1){
      UserName=s.substring(0,j);
      HostName=s.substring(j+1);
    }
  }
  String getUserName(){
    return UserName;
  }
  String getHostName(){
    return HostName;
  }
  public String toString(){
    String s=new String();
    if(UserName!=null&&HostName!=null)
      s=UserName+"@"+HostName;
    return s;
  }
}
public class TestEmail{
  public static void main(String args[]){
    Email e=new Email("[email protected]");
    System.out.println("Email="+e.toString());
    System.out.println("UserName="+e.getUserName());
    System.out.println("HostName="+e.getHostName());
  }
}
还有,第一个Email方法有什么用

解决方案 »

  1.   

    /**
    *构造一个Email地址.
    *@param s 表示一个Email地址.如:[email protected]
    */
    Email(String s){
        int j=s.indexOf('@');//取得'@'的在串中的位置
        if(j!=-1){//如果存在'@'
          UserName=s.substring(0,j);//则将'@'前的字符串,赋给UserName即是:cnor
          HostName=s.substring(j+1);//将@后的字符串,赋给HostName即:163.com
        }
      

  2.   

    楼上正解第一个Email方法有什么用
    ---------------------------
    默认的构造函数,什么都不做,其实不写也行,有Email(String s)就可以了
      

  3.   

    以前主要是不懂indesOf的作用,现在明白了.
      

  4.   

    不过为什么要写成int j=s.indexOf('@');
    而不直接写成int j=indexOf('@');
      

  5.   

    不过为什么要写成int j=s.indexOf('@');
    而不直接写成int j=indexOf('@');
    -------------------
    因为indexOf()方法是String类的非静态方法,必须产生一个对象才能调用