【问题标题】:How to call an Object Method in Java如何在 Java 中调用对象方法
【发布时间】:2016-01-14 20:07:32
【问题描述】:

我查看了整个互联网,但我无法弄清楚我做错了什么。我正在尝试使用 get/set 方法从另一个类中使用私有变量。出了点问题,但我想不通。

public class Character
{
   private int atk = 0;
   private int def = 0;
   private int spd = 0;

   public void setStat(String stat, int n)
   {
      stat = stat.toLowerCase();

      if(stat.equals("def") || stat.equals("defence") || stat.equals("defense"))
      {
         def = n;
      }
      if(stat.equals("atk") || stat.equals("attack"))
      {
         atk = n;
      }
      if(stat.equals("spd") || stat.equals("speed"))
      {
         spd = n;
      }
   }

   public int getStat(String stat)
   {
       stat = stat.toLowerCase();
       int n = -1;
       if(stat.equals("def") || stat.equals("defence") || stat.equals("defense"))
       {
          n = def;
       }
       if(stat.equals("atk") || stat.equals("attack"))
       {
          n = atk;
       }
       if(stat.equals("spd") || stat.equals("speed"))
       {
          n = spd;
       }
       return n;
   }
   public Character(int a, int d, int c)
   {
      atk = a;
      def = d;
      spd = c;
   }
}

这是我的第一堂课,Character,它将用作对象的模板,并带有 get/set 方法。

public class newCharacters
{
   Character person1 = new Character(2, 4, 3);
   person1.getStat("atk");
}

这是我的第二个类,它构造一个字符对象,然后尝试获取一个变量。问题是,每当我编译时,它都会说对象方法需要一个标识符。准确报价:<identifier> expected

我无法弄清楚这意味着什么,或者我做错了什么?我为每个类创建了 get/set 方法,在两个类中创建了对象,甚至在 Character 类中构造和调用了对象方法。每次都是同样的问题。有人可以帮忙吗?

【问题讨论】:

  • newCHaracters 中的代码应该在方法中,而不是在类中

标签: java object


【解决方案1】:
public class newCharacters
{
   Character person1 = new Character(2, 4, 3);
   person1.getStat("atk");
}

这不应该在一个类中。这并不意味着什么。一个类可以有一堆实例变量和方法。

请好好学习基础知识;)

把它放在Character类里面的一个main方法中

public static void main(String [] args) {
   Character person1 = new Character(2, 4, 3);
   person1.getStat("atk");
}

【讨论】:

  • 哦...对。 facepalms 是的,谢谢。我不知道我怎么忘记了这么简单的事情。
【解决方案2】:
public class NewCharacters
{

    public static void main(String[] args) {
        Character person1 = new Character(2, 4, 3);
        person1.getStat("atk");
    }
}

一个程序像上面一样启动一个 main 方法。 在一个类中,在顶层只能声明字段和方法(以及构造函数和初始化块,以及其他类)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多