Java 传递/存储来自类的信息?

Java 传递/存储来自类的信息?,java,Java,我是Java初学者,正在制作一个简单的文本RPG,我想在类中存储字符信息,如姓名、职务、年龄等。例如: class myChar { String name = ""; String job = ""; int age = 0; //set, get, etc... } 我希望用户能够被询问他们的姓名、工作等,并将其传递回类中,以便稍后可以调出。我非常了解如何使用ints实现这一点,例如,我有一个统计类,其中存储了HP、攻击力等: class Stats //

我是Java初学者,正在制作一个简单的文本RPG,我想在类中存储字符信息,如姓名、职务、年龄等。例如:

class myChar
{
    String name = "";
    String job = "";
    int age = 0;
    //set, get, etc...
}
我希望用户能够被询问他们的姓名、工作等,并将其传递回类中,以便稍后可以调出。我非常了解如何使用ints实现这一点,例如,我有一个统计类,其中存储了HP、攻击力等:

class Stats // Demonstrates Class
{
    int hp = 10;
    //set, get, etc...
    public int hit() // Player is hit
    {
        hp --;
        return hp;
    }
}
如你所见,我对它有一点了解,但我不太确定如何获取它,以便玩家可以输入这些信息并将其存储。我理解这种用法:

Stats myStats = new Stats("John", "Warrior", 30);
当涉及到识别信息,而不是如何让玩家自己选择它。我很抱歉,如果我听起来太模糊,我会根据需要更新我的帖子


编辑:我有一个主要的公共类,其中包含不同的“房间”等等。它相当长,我知道如何获取用户输入。例如,我有一个命令窗口,允许用户“查看”、“使用”、“获取”等,因此我非常了解用户输入。我只是不知道如何让用户输入信息并将此信息存储在一个外部类中以供以后调用。

如果我理解正确,您在程序开始时从用户处获取输入时遇到问题。您可以为此使用Console类:

Console console = System.console();
String input = console.readLine("Enter input:");
或者,例如,Scanner类:

Scanner reader = new Scanner(System.in);
System.out.println("Enter the first number");
//get user input for a
String input = reader.nextLine();

Scanner
类在获取不同形式的输入时非常灵活,您可以在此处阅读文档:

据我所知,您需要某种用户输入,然后将此信息传递给类

你可以这样做:

import java.io.Reader;

//Receive input from System.in - console
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

System.out.print("Enter the character's name!");
String name = br.readLine(); //Read line from input

System.out.print("Enter the job you want!");
String job = br.readLine();

System.out.print("What's your character's age?");
int age = Integer.parseInt(br.readLine());

myChar character = new myChar(name, type, age);

这是读取用户输入的典型问题。学习如何使用console和Scanner类以字符串的形式获取信息是一个很好的起点。不要忘记运行程序需要一个main方法。这里有一个起点


要向用户写入,您正在向标准输出写入。您只需使用以下工具即可完成此操作:
System.out.println(您的字符串)

您可以选择:

public class Stats
{
  private static Scanner in = new Scanner(System.in);//need to import java.util.Scanner;
  private String name;
  private String occupation;
  private int age;

  public Stats()
  {   //NB: you should error check, this is just a simple example
      System.out.println("Enter name");
      name=in.nextLine();
      System.out.println("Enter occupation");
      occupation=in.nextLine();
      System.out.println("Enter age");
      age=in.nextInt();
  }
}

你到底需要什么?输入/输出?我知道如何输出信息,所以是的,我试图理解如何让用户输入信息,以便稍后调用。谢谢,我现在就试试。多么尴尬的语言:-/这正是我想要的,但我不确定缓冲读取器是什么,它似乎不喜欢它。我需要导入一些东西才能工作吗?我将在Google.java.io.Reader上进行更多的研究。Reader是您需要的导入,我将编辑我的答案!谷歌上有很多例子,你应该很容易找到它们我在BufferedReader和InputStreamReader方面遇到了一些问题,所以我直接导入了它们。我正在使用Netbeans,如果有帮助的话,在这种情况下可能会有点不同。它修复了错误,但现在看起来不像br.ReadLine()。嗯,我现在正在阅读Oracle文档的用法。谢谢你的链接,我会查看的!