java equals函数

时间:2014-05-01 17:08:09   收藏:0   阅读:278

java中所有类都是Object的子类,Object中实现了equals方法,使用时一般要对其进行重载。

不进行重载时

public class JavaTest
{
	public static void main(String[] args)
	{
		boolean result;
		Student stu1=new Student("cjc",24);
		Student stu2=new Student("cjc",24);
		result=stu1.equals(stu2);
		if(result)
		{
			System.out.println("是同一个人!");
		}
		else
		{
			System.out.println("不是同一个人!");
		}
	}	
}

class Student extends Object
{
	private String name;
	private int age;

	Student(String str,int num)
	{
		name=str;
		age=num;
	}
}
mamicode.com,码迷

进行重载后

public class JavaTest
{
	public static void main(String[] args)
	{
		boolean result;
		Student stu1=new Student("cjc",24);
		Student stu2=new Student("cjc",24);
		result=stu1.equals(stu2);
		if(result)
		{
			System.out.println("是同一个人!");
		}
		else
		{
			System.out.println("不是同一个人!");
		}
	}	
}

class Student extends Object
{
	private String name;
	private int age;

	Student(String str,int num)
	{
		name=str;
		age=num;
	}

	public boolean equals(Object o)
	{
		boolean result=false;

		if(o instanceof Student)
		{
			Student stu=(Student)o;
			if(stu.name.equals(this.name) && this.age==stu.age)
			{
				result=true;
			}
		}
		
		return result;
	}	
}
mamicode.com,码迷

需要注意的是String类已经对equals进行了重载,所以程序中stu.name.equals(this.name)才可以这样使用


java equals函数,码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!