当前位置:编程学习 > JAVA >>

黑马程序员_常见java问题小计

1、equals方法的小问题           
 
[java] 
public class Student {  
         
        public static void main(String[] args)   
        {  
        Scanner sc = new Scanner(System.in);              
        System.out.println("请输入用户名:");  
        String username = sc.nextLine();  
        System.out.println("请输入密码:");  
        String password = sc.nextLine();  
            if (username.equals("admin") && password.equals("admin")) {  
                        System.out.println("true");}  
            else  
            {  
                    System.out.println("false");  
            }        
}  
}
 
public class Student {
       
        public static void main(String[] args) 
        {
        Scanner sc = new Scanner(System.in);            
        System.out.println("请输入用户名:");
        String username = sc.nextLine();
        System.out.println("请输入密码:");
        String password = sc.nextLine();
            if (username.equals("admin") && password.equals("admin")) {
                        System.out.println("true");}
            else
            {
                    System.out.println("false");
            }      
}
}  为什么上面的equals方法没有复写但是正确,而下面的代码切要复写了equals方法了呢,这个equals方法什么时候复写呢?
 
[java] 
public class Student {  
  
      private String name;  
      private int age;  
  
      public Student(String name,int age)  
      {  
  
      this.name=name;  
  
      this.age=age;  
  
      }  
  
      public static void main(String[] args)  
  
      {  
  
      Student st1 = new Student("zhang",20);  
  
      Student st2 = new Student("zhang",20);  
  
      if(st1.equals(st2))  
  
                      System.out.print("相等");  
  
      else  
  
                    System.out.print("不相等");  
  
    }  
  
     public boolean equals(Object obj){  
             
              if(obj==null) return false;  
  
              else  
  
              {  
  
               if(obj instanceof Student){  
  
                Student c=(Student)obj;//强制转换   
  
               if(c.name==this.name && c.age==this.age ){  
  
                return true;  
  
               }  
  
               }  
  
              }  
  
              return false;             
  
             }  
}
 
public class Student {
 
      private String name;
      private int age;
 
      public Student(String name,int age)
      {
 
      this.name=name;
 
      this.age=age;
 
      }
 
      public static void main(String[] args)
 
      {
 
      Student st1 = new Student("zhang",20);
 
      Student st2 = new Student("zhang",20);
 
      if(st1.equals(st2))
 
                      System.out.print("相等");
 
      else
 
                    System.out.print("不相等");
 
    }
 
     public boolean equals(Object obj){
           
              if(obj==null) return false;
 
              else
 
              {
 
               if(obj instanceof Student){
 
                Student c=(Student)obj;//强制转换
 
               if(c.name==this.name && c.age==this.age ){
 
                return true;
 
          &
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,