如何从抽象中调用方法 class
How to call a method from within an abstract class
我正在和我的一个朋友制作游戏。我正在尝试将方法的 return 值调用到同一 class 中的另一个方法。我知道在正常情况下该怎么做,但我使用的 class 是抽象的。我已经在互联网上寻找答案,但我什么也没找到。这是我正在使用的代码:
public abstract class Game implements ActionListener
{
public static char KBoard(char w, char a, char s, char d) //This method takes in a keyboard command from the user, and returns that char.
{
Scanner scan = new Scanner(System.in);
System.out.print("");
char kBoard = scan.next().charAt(0);
return kBoard;
}
public static int MoveX (int velocity)
{
velocity = 5;//character moves this distance when a control key is pressed
Game kBoard = new Game();//These lines here will
kboard.KBoard();//call the KBoard method from above and the char it returns^^
Switch ();
{
Case w:
characterPosX -= velocity;//if the w key is pressed, character moves up
break;
Case s:
characterPosX += velocity;//if the s key is pressed, character moves down
break;
}
return characterPosX;//returns the new X position for the game character
}
}
摘要classes不能直接使用。您需要有一个实际的专门 class 才能使用它。然后,因为你的方法是静态的,而不是使用专门的 class 的实例,你只需使用基础 class 的名称,就像这样:
int x = SpecializedClassName.MoveX(1);
这可能发生在任何地方,因为静态方法总是可用的。
或者,您也可以简单地使用
int x = Game.MoveX(1);
您无法创建 abstract class
的 instance
并且您不需要 create
对象来调用 static
方法。而是执行以下操作-
Game.KBoard();
我正在和我的一个朋友制作游戏。我正在尝试将方法的 return 值调用到同一 class 中的另一个方法。我知道在正常情况下该怎么做,但我使用的 class 是抽象的。我已经在互联网上寻找答案,但我什么也没找到。这是我正在使用的代码:
public abstract class Game implements ActionListener
{
public static char KBoard(char w, char a, char s, char d) //This method takes in a keyboard command from the user, and returns that char.
{
Scanner scan = new Scanner(System.in);
System.out.print("");
char kBoard = scan.next().charAt(0);
return kBoard;
}
public static int MoveX (int velocity)
{
velocity = 5;//character moves this distance when a control key is pressed
Game kBoard = new Game();//These lines here will
kboard.KBoard();//call the KBoard method from above and the char it returns^^
Switch ();
{
Case w:
characterPosX -= velocity;//if the w key is pressed, character moves up
break;
Case s:
characterPosX += velocity;//if the s key is pressed, character moves down
break;
}
return characterPosX;//returns the new X position for the game character
}
}
摘要classes不能直接使用。您需要有一个实际的专门 class 才能使用它。然后,因为你的方法是静态的,而不是使用专门的 class 的实例,你只需使用基础 class 的名称,就像这样:
int x = SpecializedClassName.MoveX(1);
这可能发生在任何地方,因为静态方法总是可用的。
或者,您也可以简单地使用
int x = Game.MoveX(1);
您无法创建 abstract class
的 instance
并且您不需要 create
对象来调用 static
方法。而是执行以下操作-
Game.KBoard();