【问题标题】:"Cannot find symbol: method damage(int)"“找不到符号:方法损坏(int)”
【发布时间】:2013-11-17 20:19:37
【问题描述】:

我收到以下错误:

C:\Users\[USER]\Desktop\Java\TextAdventure\TextAdventure.java:39: 找不到符号

符号:方法损坏(int)

位置:TextAdventure 类

out.println("你造成"+damage(pS)+"伤害");

public class TextAdventure{
    public static int pS=0;
    public static void main(String args[]){
        Scanner reader=new Scanner(in);
        while((pS>10) || (pS<1)){
            out.println("\nEnter your strength attribute:   ");
            pS=reader.nextInt();
        }//ask for strength, repeat if not between 1 and 10
        out.println("you do "+damage(pS)+" damage");

带有damage(int)方法的RandomDamage类如下:

public class RandomDamage {
    public static int damage(int x){
        int dMult=(int)(Math.random()*11);
        return dMult*x;
    }
}

我是第一次使用 JCreator LE 的“项目”,所以我只是假设我不需要处理创建不同的包或任何东西。我在“Package Default”下有RandomDamageTextAdventure

【问题讨论】:

  • damage 是一个静态方法。您可以通过在方法名前加上实现该方法的类名来访问它,即RandomDamage.damage(pS)

标签: java methods


【解决方案1】:

你必须指定类。

out.println("you do "+ RandomDamage.damage(pS)+" damage");

如果你不这样做,它会在你当前的类TextAdventure中寻找一个方法damage(int)

【讨论】:

  • 那么什么时候需要/建议创建一个单独的包?
  • 包真正用于构建您的项目,在需要时创建一个文件夹(或在特定情况下:希望限制对包私有的访问)。您的意思是 class 而不是 package
  • 不,我只是想知道packages 是如何工作的,我认为我需要为此使用一个。
  • 包实际上只是您存储文件的文件夹。除了 package-private 访问修饰符之外,包不会为您做任何事情。它肯定与你的代码没有任何关系。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 2016-11-10
  • 2020-07-02
相关资源
最近更新 更多