我必须在课堂上创建一个迷宫游戏。我已经创建了迷宫,但是我需要将主类中的变量共享给其他类(这是一个要求)。
这是我的主要代码:
import java.io.*;
import java.util.Scanner;
public class MazeGame
{
public static void main(String[] args)
{
getVariables();
}
static void getVariables()
{
String fileName = "C:\\Users\\baileyjstewart\\Documents\\NetBeansProjects\\MazeGame\\src\\Maze.input";
int size;
int row;
int column;
String line = null;
try {
// FileReader reads text files in the default encoding.
FileReader fileReader = new FileReader(fileName);
// Always wrap FileReader in BufferedReader.
BufferedReader bufferedReader = new BufferedReader(fileReader);
Scanner s = new Scanner(new File("C:\\Users\\baileyjstewart\\Documents\\NetBeansProjects\\MazeGame\\src\\Maze.input"));
int[][] array = new int[size = s.nextInt()][size];
for (row = 0; row < size; row++)
{
for(column = 0; column < size; column++)
{
array[row][column] = s.nextInt();
if(array[row][column] == 0)
{
System.out.print(" ");
//System.out.print(array [row][column] + " ");
}
else if(array[row][column] == 1)
{
System.out.print("X ");
}
else if(array[row][column] == 2)
{
System.out.print("E ");
}
}
System.out.println(" ");
}
// Always close files.
bufferedReader.close();
}
catch(FileNotFoundException ex) {
System.out.println(
"Unable to open file '" +
fileName + "'");
}
catch(IOException ex) {
System.out.println(
"Error reading file '");
}
}
}
我尝试将变量行,列和大小分享到我的Location类中:
import java.io.*;
import java.util.Scanner;
public class Location
{
MazeGame Location = new MazeGame();
public Location()
{
String Wall;
String Space;
String Endpoint;
Boolean Visited;
Boolean hereNow;
}
public void getVariables()
{
Location.getVariables();
if(row == 0)
{
}
}
}
提前感谢您的帮助。
答案 0 :(得分:0)
public class Location
{
MazeGame Location = new MazeGame();
....
这不起作用,因为类名与变量名完全相同。
此外,从未使用过Location类,因为在MazeGame类中声明了程序入口点(main函数)。
我写了another answer elsewhere,用于解释您可能想要阅读的构造函数,类和setter / getter。
如果您需要更多示例或者您仍然不了解,请告诉我。
答案 1 :(得分:0)
正如其他人所指出的,班级名称&#39;位置&#39;与变量(对象)名称相同。您需要了解OOP规则和原则。
跨类共享变量的一种方法是将变量声明为&#39; static&#39;。请记住&#39;静态&#39;不鼓励变量,它们被认为是邪恶的。
但是,如果你想看看你的代码如何跨类共享变量,那么代码中有一些变化(尽管这并不完美)。
items