欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

ToString 方法 和equals 方法,tostringequals

来源: javaer 分享于  点击 46622 次 点评:62

ToString 方法 和equals 方法,tostringequals


ToString方法有4点:

 1:所有的类都继承了Object类

  2:Object类中的ToString方法 返回的是类名和对象的哈希值

  3:System.out.println(类对象名);

     实际返回的是该对象的ToString方法

  4:实现代码,一般都是子类重写父类的ToString方法.

 

何时重写equals方法:

如果一个类构造出不同内存的2个对象,如果他们的值相等,我们也会认为这2个对象也相等. 但是在Object equals()方法中,只有2个对象是同一快内存的时候才返回true,这时子类就要重写父类的equals()方法.

 

class A{
	public int i;
	public A(int i){
		this.i=i;
	}
}
public class TestStringEquals {

	public static void main(String[] args) {
      A aa1=new A(2);
      A aa2=new A(2);
      System.out.println(aa1.equals(aa2));//调用的是父类的equals方法 
      
      if(aa1==aa2)
    	  System.out.println("aa1和aa2相等");
      else
    	  System.out.println("aa1和aa2不相等");//结果输出这个 不相等
      
      System.out.println(aa1); //输出的是 类名和对象的哈希值  A@
      System.out.println(aa2); //输出的是 类名和对象的哈希值  A@
	}
}
/*
本程序讲解了,调用父类equals方法  是2个不同内存比较,结果不相等.返回flase
            子类重写父类的equals方法 是比较2个对象在内存中的值是否想等 结果相等,返回true

*/


 

/*
       == 与 equals()区别
 */
public class TestString_1 {
	public static void main(String[] args) {
		String str1="hello";
		String str2="hello"; //str1和str2都指向了匿名对象"hello"
		
		if(str1 == str2) {//判断str1和 str2本身的内存值是否相等
			System.out.println("str1==str2");
		}
		else{
			System.out.println("str1 != str2");
		}
		
		String str3 =new String("hello");
		String str4 =new String("hello");
		if(str3 == str4 ){//判断str3和 str4指向是否相同的地址
			System.out.println("str3 == str4");
		}
		else{
			System.out.println("str3 != str4");
		}
		
		if(str3.equals(str4)){//判断str3和 str4所引用的对象是否相同
			System.out.println("str3.equals(str4)==true");
		}
		else{
			System.out.println("str3.equals(str4)!=true");
		}
	}
}
/*
运行结果:
str1==str2   //判断str1和 str2本身所占内存的值是否相等
str3 != str4
str3.equals(str4)==true
 

str1.equals(str2) 比较本身所在内存的值是否相同,在内存本身的值是相同的,
如果调用父类的Object中的equals()方法却是返回false
如果子类重写父类的中的equals()方法却是返回true

equals
public boolean equals(Object anObject)将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。 

覆盖:
类 Object 中的 equals
参数:
anObject - 与此 String 进行比较的对象。 
返回:
如果给定对象表示的 String 与此 String 相等,则返回 true;否则返回 false。
另请参见:
compareTo(String), equalsIgnoreCase(String)
 */


 

相关文章

    暂无相关文章

用户点评