Java:Int-won';指示时不要改变

Java:Int-won';指示时不要改变,java,Java,Dungeon.java import java.util.Scanner; public class Dungeon extends Character{ public static void main (String[]args){ //Intro // Creating Relevant Objects Scanner Input = new Scanner(System.in); Character User = new Character(); T

Dungeon.java

import java.util.Scanner;

public class Dungeon extends Character{
 public static void main (String[]args){
//Intro
  // Creating Relevant Objects
     Scanner Input = new Scanner(System.in);
     Character User = new Character();
     Test TT = new Test();
     Dice Rand = new Dice();
     Movement Move = new Movement();

  // Introduction
     System.out.println("Yo Yo Welcome To The Java Dungeon!");
     System.out.println("Let's Get This Party Started!");    

  // Name Input
     System.out.println("First Offf.. What Is Your Name?");
       User.CharName = Input.nextLine();
     System.out.println("Welcome " + User.CharName + "!");

  // HP Input
     System.out.println("Now Lets Get Your Health Points!");
       TT.Continue();
       User.CharHP =  Rand.Di();
     System.out.println(User.CharName + " Your HP is: " + User.CharHP);

  // Attack Input
     System.out.println("Now Lets Get Your Attack Points!");
       TT.Continue();
       User.CharAtk =  Rand.Di();
     System.out.println(User.CharName + " Your Attack Points are: " + 
User.CharAtk);

 // Dungeon Start!
     while (User.CharPos < 10 ){
         Move.Moving();


}

}



}

无论我做什么,我都不能让Int CharPos在循环每次循环时增加1。这是我以前编码它的方式,但我看不到如何使它递增。任何时候?还有一个类我没有包括在内,但它不会影响这两个类。

@UnholySheep是对的。要解决您的问题,您需要: 1) 将
移动
类中的
字符
转换为字段,而不是在每个
移动
方法调用上创建新实例。 2) 创建
Character
对象ourside
Movement
并将其传递给
Movement
类实例 3) 使用getter检索字符字段

class Movement{

private Character user;

public void setCharacter(Character user)
{
    this.user = user;
}

public Character getCharacter()
{
    return user;
}

 public void Moving(){
//Input Object
        Scanner Input = new Scanner(System.in);
        .....
        user.CharPos++;
        .... 
在其他类别中:

public class Dungeon extends Character{
 public static void main (String[]args){
//Intro
  // Creating Relevant Objects
     Scanner input = new Scanner(System.in);
     Character user = new Character();
     Test tt = new Test();
     Dice rand = new Dice();
     Movement move = new Movement();
     move.setCharacter(User);
...

每次调用
Moving
时,您都在创建一个新的
字符,因此它从初始值fyi开始:声明局部变量、字段和方法的名称应以小写字母开头。--此外,您的代码格式不正确(缩进)。——不遵循命名和格式标准会降低人的可读性,从而增加编码错误的概率。请使用调试器。如果你这样做了,你就不会问这个问题了。感谢邪恶的羊耍了这个把戏,我会记住这一点,安德烈亚斯,我还在学习:)我更喜欢人类而不是调试器。谢谢大家!
public class Dungeon extends Character{
 public static void main (String[]args){
//Intro
  // Creating Relevant Objects
     Scanner input = new Scanner(System.in);
     Character user = new Character();
     Test tt = new Test();
     Dice rand = new Dice();
     Movement move = new Movement();
     move.setCharacter(User);
...