zoukankan      html  css  js  c++  java
  • Java中equals方法的用法

    一、Object类中的equals方法

    所有类都从Object类中继承了equals方法。

    Object类中equals方法源代码如下:

    public boolean equals (Object obj)
    {
    	return this == obj;
    }

    Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一个对象,所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的是同一块内存对象,则返回true,如果指向的不是同一块内存,则返回false。注意:即使是内容完全相等的两块不同的内存对象,也放回false。

    即:如果是同一块内存,则object中的equals方法返回true,如果是不同的内存,则返回false。

    如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equals方法。

    class A
    {
    	int i;
    	public A(int i)
    	{
    		this.i = i;
    	}
    	// public boolean equals(Object obj)  //如果希望不同内存但相同内容的两个对象equals时返回true,则重写父类的equals
    	// {
    		// A aa = (A)obj;
    		// if(this.i == aa.i)
    			// return true;
    		// else 
    			// return false;
    	// }
    }
    public class TestEquals_1
    {
    	public static void main(String[] args)
    	{
    		A aa1 = new A(3);
    		A aa2 = new A(3);
    		
    		System.out.println(aa1.equals(aa2));    //false
    	}
    }
    
    


    二、String类中的equals方法

    String类已经重写了Object中的equals方法。

    String类的equals方法是用来判断两个对象的内容是否相等,Object类的equals方法是用来判断两个对象是否是用一个对象。

    public class TestEquals_2
    {
    	public static void main(String[] args)
    	{
    		String str1 = new String("China");
    		String str2 = new String("China");
    		System.out.println(str1.equals(str2));  //true
    		System.out.println(str1 == str2);       //false
    		
    		String str3 = "China";
    		String str4 = "China";
    		System.out.println(str3.equals(str4));  //true
    		System.out.println(str3 == str4);       //ture
    		 
    	}
    }



  • 相关阅读:
    NOIp2018集训test-9-23
    NOIp2018集训test-9-22(am/pm) (联考三day1/day2)
    NOIp2018集训test-9-21(am/pm)
    NOIp2018集训test-9-19(am&pm)
    day41.txt
    day40表关系
    day39
    day38数据库
    day37
    day36
  • 原文地址:https://www.cnblogs.com/yzy-blogs/p/6597346.html
Copyright © 2011-2022 走看看