Home > Mobile >  Java Help - Display Class Object
Java Help - Display Class Object

Time:02-27

I am currently working on a Tic Tac Toe game and I am running into a problem that may or may not have an easy fix. I am making a class and method-based Tic Tac Toe game, I am working in multiple classes which have numerous methods.

Here is my problem:

I have a class that is responsible for setting owners to certain tiles on the board.

package game;

public class GameTile{
    /**Stores a String representing the owner "X" or "O" of a GameTile
    */
    protected String owner;
    /**Constructs a GameTile, sets owner to null by default
        */  
    public GameTile (){
        owner = null;
    }

(I have more code, although I only showed the important stuff, the rest of the code basically declares "X" and "O" etc...)

Now I am taking the above class and printing it into the game board class.

package game;
/**Class for Tic Tac Toe gameboard  
    *@author Put Name Here
    */
public class GameBoard{
    
    protected static char[][] cells;
    
    /**An array of 9 GameTiles representing the TicTacToe gameboard
    */
    GameTile[] board;
    /**Constructs an empty gameboard of 9 GameTiles and fills it with unowned tiles
    */
    public GameBoard(){
        board = new GameTile[9];
        for (int i = 0; i < 9; i  ) {
            board[i] = new GameTile();
        }
    }

/**This will draw the current gameboard on the screen
    */
    public void drawBoard(){
        {
            System.out.println();
                System.out.println(" --- --- --- ");
                System.out.println("| "   board[0]   " | "   board[1]   " | "   board[2]   " |");
                System.out.println(" --- --- --- ");
                System.out.println("| "   board[3]   " | "   board[4]   " | "   board[5]   " |");
                System.out.println(" --- --- --- ");
                System.out.println("| "   board[6]   " | "   board[7]   " | "   board[8]   " |");
                System.out.println(" --- --- --- ");
        }
     
    }   
}//end class

Everything in my code seems to work fine, although when I print anything from "board" (board[1], board[2], etc...) the output is always something like this: "game.GameTile@7de26db8"

Is there any way I can get my code to print the String values from GameTile()?

CodePudding user response:

For the way you're using it, override the toString() method in your GameTile class. What you're seeing now is the result of the Object class' version of that method.

  • Related