【发布时间】:2018-10-13 05:07:58
【问题描述】:
我有一个由许多对象(称为 drop)和另一个单独的对象(称为 greenDrop)组成的数组。我想一次比较 2 个对象,一个来自数组,另一个是单独的对象。设置一个数组和一个单独的对象作为方法参数,代码如下:
public boolean collision (GreenDrop gd1, Drop [] gd2){
for(int i=0;i<numDrops;i++)
{
int xDistBetwnDrops=gd1.xpos-gd2[i].xpos;
int yDistBetwnDrops=gd1.ypos-gd2[i].ypos;
int totalLengthOfDrops=(gd1.xpos+gd1.size)+(gd2[i].xpos+gd2[i].size);
if(xDistBetwnDrops<(totalLengthOfDrops/2)&&yDistBetwnDrops<(totalLengthOfDrops/2))
{
return true;
}
}
return false;
}
我想知道是否可以在方法参数中设置数组的一个元素而不是使用整个数组?这样我就不必在我的方法中包含 for 循环。然后在main方法中调用方法如下:
if(collision(greenDrop, drops[i])==true)
【问题讨论】:
-
方法的第二个参数可以改成
Drop -
类似
public boolean collision (GreenDrop gd1, Drop gd2){ ...而不是gd2[i]只使用gd2没有任何循环 -
并且不需要
if (conditoin == true),只需if (condition)就足够了(if接受任何导致布尔值的表达式) -
@bamboosymphony 只是
drop.xpos
标签: java arrays method-parameters