自学java总结----equals

    在java中一般不使用“==”而使用“equals”来比较两个值是否相等。

    在java中使用“==”是指左右两边所指向的内存地址相同。equals用于比较引用对象值是否相同。equals不是final方法所以可以被重写。

    由于equals的参数是对象,所以不引入任何包时,equals依旧比较的是对象是否相同而不比较其值。但当引入java.io.file,java.util.Date,java.lang.string,包装类(Integer,Double等)时,equals用于当对象类型和值一致返回true。

--------------------------------------------------------------------------------------------------------------------------------------

//equals方法及如何覆盖
public class L3_1 {
public static void main (String[] args)
{
B b1 = new B(20);
B b2 = new B(20);
System.out.println(b1==b2);//==比较的内存是内存地址,而不是对象中的具体属性
System.out.println(b1.equals(b2));//因为equals的参数类型为object,所以比较的还是内存地址
   
C c1=new C(10);
C c2=new C(10);
System.out.println(c1.equals(c2));
}
}

class B
{
private int i;

B(int i)
{
this.i=i;
}

public boolean equals(B b2)
{
//覆盖后的equals方法比较的不再是比较内存地址,而是根据自己的需求来定
if(this.i==b2.i )
return true;
else
return false;
}
}

class C extends B
{
//多态:在C类中使用的只能是从B类中继承的方法和变量
private int j;

C(int j)
{
super(j);
this.j=j;
}

public boolean equals(B b2)
{
//要使用B自己的j变量需要重写equals方法
C c=(C)b2;
if(this.j==c.j)
return true;
else
return false;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值