Java 如何使用另一个方法中的参数调用一个方法?
如何使用另一个方法中的参数调用一个方法 例如,我试图在我的Java 如何使用另一个方法中的参数调用一个方法?,java,class,oop,methods,Java,Class,Oop,Methods,如何使用另一个方法中的参数调用一个方法 例如,我试图在我的goFishingIn()方法中调用我的likes()方法,但它没有编译。这是我的密码: import java.util.*; public class Fisher { public void keep(Fish fish) { if(this.numFishCaught < LIMIT) { fishesCaught.add(fish); numFishCaught++
goFishingIn()
方法中调用我的likes()
方法,但它没有编译。这是我的密码:
import java.util.*;
public class Fisher
{
public void keep(Fish fish)
{
if(this.numFishCaught < LIMIT)
{
fishesCaught.add(fish);
numFishCaught++;
}
}
public boolean likes(Fish fish)
{
if(fish.size >= this.keepSize && fish.species != "Sunfish")
{
return true;
}
else
{
return false;
}
}
public void goFishingIn(Pond pond)
{
pond.catchAFish();
this.likes(Fish fish);
}
}
import java.util.*;
公共级渔民
{
公共禁区(鱼类)
{
if(this.numfishcapt=this.keepSize&&fish.species!=“太阳鱼”)
{
返回true;
}
其他的
{
返回false;
}
}
公共空地goFishingIn(池塘)
{
池塘捕鱼();
这个。喜欢(鱼);
}
}
如果你已经在某处养了一条鱼,你可以这样称呼它
this.likes(fish);
如果你没有,也许你必须做一个
Fish fish = new Fish();
this.likes(fish);
或者通过一个,或者做任何事情让一个进入范围
public void goFishingIn(Pond pond, Fish fish)
{
pond.catchAFish();
this.likes(fish);
}
从外观上看,您应该能够更改
goFishingIn()
方法,如下所示:
public void goFishingIn(Pond pond)
{
Fish fish = pond.catchAFish();
this.likes(fish);
}
基本上,您只需要将fish
的一个实例传递给likes()
方法,因此您需要在调用likes()
方法之前实例化fish
或者,如果以后不需要对fish
执行任何操作,您甚至可以将其缩短,并从参数内部调用catchAFish()
方法
public void goFishingIn(Pond pond)
{
this.likes(pond.catchAFish());
}
不过,第一种方法更可取,因为它将允许您将来对
fish
对象进行任何引用。如果您要声明一种方法,则可以使用类声明参数,例如
public void goFishingIn(Pond pond)
但是当您调用一个方法时,您只传递一个变量,没有类标识符
this.likes(Fish fish);
应该是
this.likes(fish);
但是fish
变量未在goFishingIn()
方法体中的任何位置定义,因此您将得到一个未定义的错误。您需要在某处获取fish
值,或者定义它
在我看来,在这种情况下,最合理的做法是创建pond.catchAFish()
返回类型Fish
,然后将返回值存储在Fish
变量中
Fish fish = pond.catchAFish();
然后你就可以使用它了。你应该改变
this.likes(Fish fish);
进入
向方法传递参数时,不指定类型。
只能在方法签名本身中指定类型。当您调用此方法时,不会出现异常。如何调用您的
goFishinIn
方法?如何使用System.out.println(..)
?需要一个Fish-Fish
实例作为参数传递。可能是pond.catchAFish
返回一条Fish
,然后您可以将此对象引用作为参数传递。首先创建一个Fish对象,然后像在goFishingIn(pond-pond)中一样传递它。Fish.species!=“太阳鱼”
应该改为!fish.species.equals(“太阳鱼”)
更多信息:很高兴听到。如果你对答案感到满意,那么就接受它,这样我们就知道你已经解决了你的问题。
this.likes(fish);