方法重写2--java总结

在方法重写中注意 对自己定义的类中要重写某些方法 ,在此类中某些类型的方法可以直接调用 因为在这些类型中已经重写了这些方法。


/*
*对obj方法重写 注意变量的类型
*/


import java.util.*;


public class Testcomp
{
public static void main(String[] args)
{
List l1 = new LinkedList();
l1.add(new Name("hua","kong"));
l1.add(new Name("ting","fan"));
l1.add(new Name("fang","kong"));
System.out.println(l1);

Collections.sort(l1);
System.out.println(l1);
}
}


class Name implements Comparable//自己定义的name类 继承了接口Comparable
{
String firstname;///String 类对compareTO方法已经重写了 所以可以直接调用
String lastname;

Name(String firstname,String lastname)
{
this.firstname = firstname;
this.lastname = lastname;
}

public String getfirstname()
{
return firstname;
}

public String getlastname()
{
return lastname;
}

public String toString()
{
return firstname+""+lastname;
}///重写tostring方法 输出name时会直接输出全名

public boolean equals(Object obj)//只有当 姓和名全相同时才相等 所以要重写 equals方法
{
if(obj instanceof Name)
{
Name n =(Name) obj;
return firstname.equals(n.firstname)&&lastname.equals(n.lastname);
}//return 语句会结束当前的方法 所以下一条 return可加else可不加 效果都一样
return super.equals(obj);
}
public int hashCode() 
{
   return firstname.hashCode();
}//对hashcode重写 hashcode位于obj类内

public int compareTo(Object o)
{
Name  n = (Name) o;
int lastcmp = lastname.compareTo(n.lastname);///String 类对compareTO方法已经重写了 所以可以直接调用

return
(lastcmp !=0 ? lastcmp:firstname.compareTo(n.firstname));
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值