首页 > 编程知识 正文

tragedy的形容词,liveness

时间:2023-05-05 21:49:05 阅读:139956 作者:2740

contains源代码如下所示

contains源代码分析

/* publicbooleancontains (objecto ) /首先由name传递给contains方法的参数。 也就是说,o指的是name所指的对象,name对象是上传型对象

returnindexof(o )=0; //调用以下indexOf方法

}

publicintindexOf(Objecto ) indexOf方法的o指向contains方法的o的对象,即indexOf方法的o实质上指向name对象

if(o==null(//o不为空,因此o==null为false,跳转到else的部分

for(intI=0; i size; I )

if(elementdata[I]==null () ) ) ) )。

return i;

} else {

for(intI=0; i size; //for循环遍历nameList的各个元素; 其中size是全局变量,this是省略的。 实际上是this.size,nameList调用了contains方法。 因此,this指的是nameList,而this.size指的是nameList中元素的数量。

将if(o.equals(elementdata[I] )/o所指向的对象name与通过nameList遍历的各个元素进行比较,比较规则为equals方法、o.equals ) element data o是o

return i; 因为是//if(true ),所以返回I,跳转到contains方法。 在方法主体中,returnindexOf(o(o )为0,indexof ) o )返回I,i=0为true,因此返回true。

}

返回- 1;

) /

还有第二种情况

/* publicbooleancontains (objecto ) /首先由name传递给contains方法的参数。 也就是说,o指的是name所指的对象,name对象是上传型对象

returnindexof(o )=0; //调用以下indexOf方法

}

publicintindexOf(Objecto ) indexOf方法的o指向contains方法的o的对象,即indexOf方法的o实质上指向name对象

if(o==null(//o为空,所以o==null为true,执行if的内容

for(intI=0; i size; //for循环遍历nameList的各个元素; 在此,size是全局变量,实质上是this.size,即nameList的要素数

if(elementData[i]==null(/o指向的对象与nameList遍历的每个元素进行比较,因为比较规则elementData[i]==null,所以element data

return i; //退出此方法并将I返回给contains方法。 在方法主体中,returnindexof(o )=0,i=0为true,因此返回true

} else {

for(intI=0; i size; I )

if(o.equals(elementdata[I] ) )

return i;

}

返回- 1; //退出此方法,从-1返回contains方法,在方法主体中返回false,因为returnindexof(o )=0,i=0

) /

情况3

contains源代码分析

/* publicbooleancontains (objecto )test首先传递给contains方法的参数。 也就是说,o指的是test所指向的客体,test客体是上传型客体

returnindexof(o )=0; //调用以下indexOf方法

}

publicintindexOf(Objecto ) indexOf方法的o实质上指向contains方法的o所指向的对象,即indexOf方法的o实质上指向test对象

因为if(o==null(//o不为null ),所以o==null为false,不执行if的内容而跳转到else的部分

for(intI=0; i size; I )

if(elementdata[I]==null () ) ) ) )。

return i;

} else {

for(intI=0; i size; //for循环遍历nameList的各个元素; 在此,size是全局变量,实质上是this.size,即nameList的要素数

元素数据[ I ] (if )/o指向的对象将与遍历nameList的每个元素进行比较,并与规则o.equals (元素数据[ I ] )进行比较。 因为o指向test变量的地址,所以在运行时指向test进行比较的是地址,因为地址不同,所以为false,该if语句不执行。 跳到最后。 如果改写了equals方法,则调用改写了Test类的方法。 其中equals参数是集合中的元素(多态性)

return i;

}

返回- 1; 返回//-1。 如果返回contains方法,则最终结果为false,因为-1=0且为false

) /

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。