Did I improve since then?I have been writing this program today, and tried my best to improve my object-oriented understanding.Mains.java:import games.GameHandler;import java.util.Scanner;import java.io.*;    public class Mains {        public static void main (String[] args) {            //Start the game            startGame();        }        private static void startGame() {            //Declares            GameHandler handler = new GameHandler();            Scanner console = new Scanner(System.in);               boolean game = true;            String input = ;              //Print program welcome text            handler.printStart();            //While in game...            while (game) {                //Getting input ready for new commands from the player                input = console.nextLine();                //Checking if input was set.                if (input != null) {                    //Selecting the game you want to play.                    handler.selectGame(input);                    //If game was selected.. then.. let's start playing.                    while (handler.inGame) {                        //Use will say something.                        input = console.nextLine();                        //If it was exit, it will go back and select another game.                        if (input.equals(exit)) {                            handler.exitGame();                        } else {                            //Play again.                            handler.continueGame(input);                        }                    }                }            }        }    }GameHandler.java:package games;import java.io.*;    public class GameHandler {        private String[] games = {Spin, Tof};        private String[] navigation = {Back, Start};        private Spin spin = new Spin();        private boolean spinGame = false;        private boolean tofGame = false;        public boolean inGame = false;        /**        * Method printStart        *        * Will welcome the player to the program.        */        public void printStart() {            this.print(0, Welcome to the program!);            this.print(0, Please select a game:  + this.availableGames());        }        /**        * Method available games        *        * This will print all the games that are located in the games array in one row.        **/        private String availableGames() {            String names = ;            for (int i = 0; i < games.length; i++) {                names = (names + games[i]);                if (i < games.length -1) {                    names = (names + , );                }            }            return names;        }        /**        * Method selectGame        *        * This will select the given game.        * @param command The entered command.        **/        public void selectGame(String command) {            if (this.inArray(command))            {                if (command.equalsIgnoreCase(spin)) {                    this.startGame(spin);                } else if (command.equalsIgnoreCase(tof)) {                    this.startGame(tof);                }            } else {                this.print(0, Could not find game!);            }        }        /**        * Method inArray        *        * This will check if the entered game name is exisiting in the games array.        * If yes, will return a boolean true, else false.        *        * @param value The entered game name.        * @return boolean true/false.        **/        private boolean inArray(String value) {            int returning = 0;            for (String s : games) {                if (value.equalsIgnoreCase(s)) {                    returning = 1;                }            }            if (returning == 1) {                return true;            } else {                return false;            }        }        /**        * Method startGame        *        * Will start the game, and print instructions.        * will set the game boolean to true.        **/        private void startGame(String game) {            switch (game) {                case spin:                    this.print(0, Welcome to spin game!);                    this.print(0, Please click on any key to spin!);                    spinGame = true;                break;                case tof:                break;            }            inGame = true;        }        /**        * Method continueGame        *        * Will continue the game, either spin again, or print new question or even answer.        * @param command The entered command.        **/        public void continueGame(String command) {            while (inGame) {                if (spinGame) {                    this.spinWheel();                    // Break out of the loop.                    break;                }            }        }        /**        * Method exitGame        *        * Exit the game..        **/        public void exitGame() {            spinGame = false;            tofGame = false;            this.printStart();        }        /**        * Method spinWheel        *        * This will spin the wheel.        **/        private void spinWheel() {            this.print(0, spin.spinWheel());        }        /**        * Method print        *        * Prints text using System.out        * @param type printing type (Println/print).        * @param message The message        **/        private void print(int type, String message) {            switch (type) {                case 0:                    System.out.println(message);                break;                case 1:                    System.out.print(message);                break;                          }        }    }spin.java:package games;import java.util.Random;    public class Spin {        /**        * The base auth we are going to work with..        **/        private int auth = this.rand(1000) / 5;         /**        * Creating new Random object.        **/        private Random r = new Random();        /**        * Method spinWheel        *        * Spins the damn wheel..        * @return spinned value + if you won or not.        **/        public String spinWheel() {            return this.spinWheel(this.rand(100));        }        /**        * spinWheel        *        * Returning results.        **/        private String spinWheel(int number) {            int result = this.Calculate(this.rand(number));            if (result < 101) {                return You have won the game! + result;            } else {                return You've lost the game! + result;            }        }        /**        * Method calculate        *        * Calculates the spin.        * @return the spinned number.        **/        private int Calculate(int Number) {            int var = this.rand(101);            int holder = (var * Number) / 2;            return holder + this.auth;        }        /**        * Shortcut for nextInt of Random        **/        public int rand(int x) {            return r.nextInt(x);        }    }What's wrong with it? did I improve since last time? Any suggestions?
Improving my Java object-oriented? Review!
java;object oriented