簡體   English   中英

從班級傳遞/存儲信息?

[英]Passing/storing info from a class?

我是Java的初學者,我正在創建一個簡單的文本RPG,我想在一個類中存儲字符信息,如Name,Job,Age等。例如:

class myChar
{
    String name = "";
    String job = "";
    int age = 0;
    //set, get, etc...
}

我希望用戶能夠被問到他們的名字,工作等是什么,並將其傳回課堂,以便以后可以提起。 我理解如何用int完成這項工作,例如我有一個Stats類,其中存儲了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);

在識別信息方面,而不是如何讓玩家自己選擇信息。 如果我聽起來太模糊,我很抱歉,我會根據需要更新我的帖子!

編輯:我有一個主公共類,其中包含不同的“房間”等。 它非常冗長,我知道如何獲得用戶輸入。 例如,我有一個命令窗口,允許用戶“查看”,“使用”,“獲取”等。所以我很了解用戶輸入。 我只是不知道如何讓用戶輸入信息並將此信息存儲在外部類中以便稍后調用。

據我所知,您希望獲得某種用戶輸入,然后將此信息傳遞給該類。

你可以這樣做:

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類:

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類在獲取不同形式的輸入時非常靈活,你可以在這里閱讀文檔: http//docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

要寫入用戶,您將寫入標准輸出。 您只需使用以下命令即可: System.out.println(yourString);

你可以這樣:

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();
  }
}

這是讀取用戶輸入的經典問題。 一個好的開始是學習如何使用控制台和Scanner類以String的形式獲取信息。 不要忘記你需要一個主要的方法來運行你的程序。 這是一個起點。

http://www.java-made-easy.com/java-scanner.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM