How to use variable from another class?
<p>I am creating a maze game. For that I have created 4 separate class files. I'd like to know how I can access the inmates of Maze.class in Player.class move() method and not just read it but also add to it and overwrite it:</p>

<p>Maze.class</p>

<pre><code>package y1;

import java.util.*;

@SuppressWarnings(value = "all")

public class Maze {
private Room entry;
private Map &lt;Room, ArrayList&lt;Player&gt;&gt; inmates=new HashMap&lt;Room,ArrayList&lt;Player&gt;&gt;();
/**
 * 
 * @param r The room that is going to be the entry
 */
public void setEntry(Room r){
    this.entry=r;
    }
/**
 * 
 * @return Returns the entry room
 */
    public Room getEntry(){
        return this.entry;
    }
    /**
     * Method adds a player to the maze
    * @param p Player to be added to the maze
    */
    public void addPlayer(Player p){
        ArrayList&lt;Player&gt; players=new ArrayList&lt;Player&gt;();
        p.setRoom(getEntry());
        if (this.inmates.isEmpty()==true){
        players.add(p);
        this.inmates.put(this.entry,players);
        }
        else{
        players=this.inmates.get(this.entry);
        players.add(p);
        }

        this.inmates.put(p.getRoom(), players);

    }
    public void getPlayers(Room r){
        if(this.inmates.get(r)!=null){
        System.out.println(Arrays.asList(this.inmates.get(r)));
        }
        else{
        System.out.println("Ruum on tühi");

        }
    }
    public Map getInmates(){
        return this.inmates;
    }
}
</code></pre>

<p>Room.class</p>

<pre><code>package y1;

import java.util.*;

@SuppressWarnings(value = "all")
public class Room {

private String name;
private Room north;
private Room east;
private Room west;
private Room south;
private boolean isExit = false;
private boolean isPortal = false;
private Maze maze;

/**
 * @return Returns the name of the room
 */
public String getName() {
    return this.name;
}

/**
 * Sets room name
 * 
 * @param name
 */
public void setName(String name) {
    this.name = name;
}

/**
 * Gets northern room if any
 * 
 * @return pointer to northern room if any, otherwise &lt;code&gt;null&lt;/code&gt;
 */
public Room getNorth() {
    return this.north;
}

/**
 * Sets the door to the next room to the north in that room and in the other
 * room sets southern door as connecting back to that room
 * 
 * @param otherRoom
 */
public void setNorth(Room otherRoom) {
    this.north = otherRoom;
    otherRoom.south = this;
}
public Room getSouth() {
    return this.south;
}

/**
 * Sets the door to the next room to the south in that room and in the other
 * room sets northern door as connecting back to that room
 * 
 * @param otherRoom
 */
public void setSouth(Room otherRoom) {
    this.south = otherRoom;
    otherRoom.north = this;
}
public Room getEast() {
    return this.east;
}

/**
 * Sets the door to the next room to the east in that room and in the other
 * room sets western door as connecting back to that room
 * 
 * @param otherRoom
 */
public void setEast(Room otherRoom) {
    this.east = otherRoom;
    otherRoom.west = this;
}
public Room getWest() {
    return this.west;
}

/**
 * Sets the door to the next room to the west in that room and in the other
 * room sets eastern door as connecting back to that room
 * 
 * @param otherRoom
 */
public void setWest(Room otherRoom) {
    this.west = otherRoom;
    otherRoom.east = this;
}
/**
 * Returns the room in the given direction
 * 
 * @param Which way to move?
 * @return The room in that direction.
 */
public Room get(String direction){
    Room dir=this;
    if(direction=="N" &amp;&amp; this.north!=null){
        dir=dir.getNorth();
        return dir;
    }
    else if(direction=="W" &amp;&amp; this.west!=null){
        dir=dir.getWest();
        return dir;
    }
    else if(direction=="E" &amp;&amp; this.east!=null){
        dir=dir.getEast();
        return dir;
    }
    else if(direction=="S" &amp;&amp; this.south!=null){
        dir=dir.getSouth();
        return dir;
    }
    else{
        return dir;
    }


}
/**
 * Returns the room that givens coordinates point to
 * 
 * @param dirlist List of directions
 * @return returns Returns the room it stops in
 */
public Room get(List&lt;String&gt; dirlist){
    Room dir=this;
    if (validate(dirlist)==true){
        for(int i=0;i&lt;dirlist.size();i++){
            if(dirlist.get(i)=="N"){
                dir=dir.getNorth();
            }
            else if(dirlist.get(i)=="W"){
                dir=dir.getWest();
            }
            else if(dirlist.get(i)=="E"){
                dir=dir.getEast();
            }
            else if(dirlist.get(i)=="S"){
                dir=dir.getSouth();
            }
        }
    }
    return dir;     
}


/**
 * creates a new room to the north and connects back to this room
 * 
 * @param toa nimi
 *            0
 * @return uus tuba
 */
public Room createNorth(String name) {
    Room otherRoom = null;

    // Creates new room only when no room lies ahead in this direction
    if (this.getNorth() == null) { // Checks north - if nothing there then new room is create
        otherRoom = new Room(); // Creates new room
        this.setNorth(otherRoom); // Creates door between rooms
        otherRoom.setName(name); // Names the room

    } else { // If room already exists then prints alert message
        System.out.println("Room already exist!");
    }

    return otherRoom;
}
public Room createSouth(String name) {
    Room otherRoom = null;
    if (this.getSouth() == null) {
        otherRoom = new Room();
        this.setSouth(otherRoom); 
        otherRoom.setName(name);

    } else {
        System.out.println("Room already exists!");
    }

    return otherRoom;
}
public Room createEast(String name) {
    Room otherRoom = null;
    if (this.getEast() == null) {
        otherRoom = new Room();
        this.setEast(otherRoom);
        otherRoom.setName(name);

    } else {
        System.out.println("Room already exists!");
    }

    return otherRoom;
}
public Room createWest(String name) {
    Room otherRoom = null;
    if (this.getWest() == null) {
        otherRoom = new Room();
        this.setWest(otherRoom);
        otherRoom.setName(name);

    } else {
        System.out.println("Room already exists!");
    }

    return otherRoom;
}
public void setExit(){
    this.isExit=true;
}

public void setPortalA(){
    this.isPortal=true;
}
public boolean validate(List&lt;String&gt; pathList){
    Room check = this;
    boolean value=false;
    for(int i = 0;i&lt;pathList.size();i++){
        if(pathList.get(i)=="N" &amp;&amp; check.north!=null){
            check=check.north;
            value=true;
        }
        else if(pathList.get(i)=="S" &amp;&amp; check.south!=null){
            check=check.south;
            value=true;
        }
        else if(pathList.get(i)=="W" &amp;&amp; check.west!=null){
            check=check.west;
            value=true;
        }
        else if(pathList.get(i)=="E" &amp;&amp; check.east!=null){
            check=check.east;
            value=true;
        }
        else{ 
            value = false;
            System.out.println("Can't move in the given directions!");
        }
    }
    return value;       
}

@Override
public String toString() {
    return this.getName();
}
</code></pre>

<p>}</p>

<p>and Player.class</p>

<pre><code>package y1;

import java.util.*;

public class Player {
private String name;
private Room location;

public void setRoom(Room r){
    this.location=r;
}
public Room getRoom(){
    System.out.println(this.name+" is at " +this.location);
    return this.location;

}


public Room move(String dir){
    Player p=this;
    if(dir=="N" &amp;&amp; this.location.getNorth()!=null){
        p.location=p.location.getNorth();
    }
    else if(dir=="S" &amp;&amp; this.location.getSouth()!=null){
        p.location=p.location.getSouth();
    }
    else if(dir=="W" &amp;&amp; this.location.getWest()!=null){
        p.location=p.location.getWest();
    }
    else if(dir=="E" &amp;&amp; this.location.getEast()!=null){
        p.location=p.location.getEast();
    }
    else{
        System.out.println("There's a wall in the way!");
    }
    return this.location;   
}
public Room move(List&lt;String&gt; dirList){
    Player player=this;
        for(int i=0 ; i&lt;dirList.size() ; i++){
            if(dirList.get(i)=="N" &amp;&amp; player.location.getNorth()!=null){
                player.location=player.location.getNorth();
            }
            else if(dirList.get(i)=="S" &amp;&amp; player.location.getSouth()!=null){
                player.location=player.location.getSouth();
            }
            else if(dirList.get(i)=="W" &amp;&amp; player.location.getWest()!=null){
                player.location=player.location.getWest();
            }
            else if(dirList.get(i)=="E" &amp;&amp; player.location.getEast()!=null){
                player.location=player.location.getEast();
            }   
            else{
                System.out.println("Wall in the way. Stopping!");
                break;
            }
        }
    return this.location;   
}

public void setName(String n){
    this.name=n;
}


@Override
public String toString() {
    return this.name;
}
</code></pre>

<p>}</p>
