学习笔记--[==] 和.equals()方法

打印对象和toString()方法

对于两个变量是否相等的判断有两种方法 : == 和 equals()

	String str1 = new String("hello");
	String str2 = new String("hello");   
	System.out.println(str1==str2); //Flase  
	System.out.println(str1.equals(str2));//True

因为new String()创建了两个对象而{==}只用于判断两个相同的对象的变量

equals()可以判断不同对象中的值是否相同

String str1 = new String (“hello”)
String str1先在常量池中创建了一个常量 new String(“hello”)创建了一个对象并且赋值了"hello"

相当于一句话创建了两个对象
str3中的两个字符串会直接从常量池中调用str1 str2

class Dog{}

person p = new person();

p.equals(new Dog());//判断 person对象是否equals Dog对象

因为 [==]只用于判断变量是否相同,那么我们是否可以重写.equlas()方法来进行更复杂的判断即当相同对象的里面的变量也相同的时候才输出 True
我们可以通过重写.equals()方法来实现(重写equlas()方法的同时 也要重写hashCode方法):

class extendedts1 { 
private String name; 
public String getName() { 
return name;  
}  
public void setName(String name) {  
this.name = name;  
}  
public boolean equals(Object obj) {   

//判断是否两个对象为同一对象    
if (this == obj)
{     
return true;    
}     
//只有obj是extendedts1对象的时候  
if (obj != null && obj.getClass() == extendedts1.class) {   
//当前对象的name与obj对象的name相等的时候才能判断两个对象相等   
extendedts1 extendedts1Obj = (extendedts1) obj;//把Obj对象转型成extendedts1对象并赋给extendedts1Obj
if (this.getName().equals(extendedts1Obj.getName()))
		{        
return true;       
		}    
	}     
return false;  

	}
}

这样在调用extendedts1类的时候,使用里面的equals()方法,必须是同一个对象并且字符相同才输出True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值