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);