黑马程序员技术交流社区
标题:
老毕的视频不祥处!!!
[打印本页]
作者:
李利威
时间:
2014-8-6 00:13
标题:
老毕的视频不祥处!!!
package cn.itcast;
import java.util.ArrayList;
import java.util.Iterator;
class personn
{
private String name;
private int age;
personn(String name,int age)
{
this.name=name;
this.age=age;
}
public boolean equals(Object obj)
{
if(!(obj instanceof personn))
return false;
personn p=(personn)obj;
return this.name.equals(p.name)&&this.age==p.age;
}
//--------gs--------------
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Demo6 {
/**
* @param args
*/
public static void main(String[] args) {
ArrayList arr=new ArrayList();
arr.add(new personn("lishan",23));
arr.add(new personn("lishi",23));
arr.add(new personn("liwu",25));
arr.add(new personn("lishan",23));
arr.add(new personn("lishi",23));
arr.add(new personn("liliu",34));
arr.add(new personn("liqi",100));
Quc q=new Quc();
arr=q.show(arr);
//System.out.println(arr);
Iterator it=arr.iterator();
while(it.hasNext())
{
personn pp=(personn)it.next();
System.out.println("姓名:"+pp.getName()+" 年龄:"+pp.getAge());
}
}
}
class Quc
{
private ArrayList li;
Quc()
{
li=new ArrayList();
}
public ArrayList show(ArrayList st)
{
Iterator it=st.iterator();
while(it.hasNext())
{
Object obj=it.next();
if(!li.contains(obj))
{
li.add(obj);
}
}
return li;
}
}
请问他是怎么调用personn中的equals的!为什么定义在personn中!!!要详解
作者:
依然超级赛亚人
时间:
2014-8-6 08:54
本帖最后由 依然超级赛亚人 于 2014-8-6 09:08 编辑
equals()定义在person中应该是专门为了person类的对象服务的,其他的类(person有子父类的话除外)无法调用这个方法,这道题中只有person类的对象使用到equals(),应该定义在person类中。至于怎么调用equals()的,上面写得比较清楚了,用的是this.name这个引用对象调用的啊,有其他疑问吗?
作者:
贾浩田
时间:
2014-8-7 11:03
应该是contains方法隐式调用了专门用来判断person对象是否相等的equals方法。另外这个代码缺少主函数啊,有点没看懂
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2