在Java中的类之间共享变量

时间:2015-09-22 15:44:50

标签: java

我必须在课堂上创建一个迷宫游戏。我已经创建了迷宫,但是我需要将主类中的变量共享给其他类(这是一个要求)。

这是我的主要代码:

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)
        {

        }

    }



}

提前感谢您的帮助。

2 个答案:

答案 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