⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample14_3.java

📁 Java SE 6.0前12-16章示的示例代码,简单易学
💻 JAVA
字号:
package wyf.jc;
class Student
{
     //学生的成员属性
     String name;
     int age;
     int classNum;
     //学生类的无参构造器
     public Student()
     {}
     //学生类的有参构造器
     public Student(String name,int age,int classNum)
     {
          this.name=name;
          this.age=age;
          this.classNum=classNum;
     }
     //重写equals方法
	 public boolean equals(Object o)
	 {
	     //测试是否指向同一个对象
	     if(this==o) {return true;}
	     //测试引用o是否为null
	     if(o==null) {return false;}
	     //测试o指向的对是否可以看作Student类型
	     if(!(o instanceof Student)) {return false;}
	     //将引用进行强制类型转换
		 Student s=(Student)o;
		 //测试相关属性的内容
		 if(this.name.equals(s.name)//测试name属性
		 &&this.age==s.age//测试age属性
		 &&this.classNum==s.classNum)//测试classNum属性
	     {
	     	return true;
	     }          
	     else
	     {
	     	return false;
	     }          
	 }
     //重写hashCode方法
     public int hashCode()
     {
          //返回一个新的哈希码,该码与成员属性有关
          return 7*this.name.hashCode()+
                    13*Integer.valueOf(this.age).hashCode()+
                    17*Integer.valueOf(this.classNum).hashCode();
     }
}
//主类
public class Sample14_3
{
     //主方法
     public static void main(String[] args)
     {
          //创建两个成员属性相同的学生对象
          Student s1=new Student("jc",21,97001);
          Student s2=new Student("jc",21,97001);
          //使用equals方法测试两个学生对象是否相同
          if(s1.equals(s2))
          {
               System.out.println("学生对象s1与s2是等价的,其哈希码分别为:");
               //打印两个对象的哈希码     
               System.out.print("s1.hashCode() = "+s1.hashCode()+", ");
               System.out.println("s2.hashCode() = "+s2.hashCode());               
          }
          else
          {
               System.out.println("学生对象s1与s2是不等价的!!");
          }
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -