Beginner Rock, Paper, Scissors in Java
There are plenty of rock-paper-scissors implementations in java on this site.  I'll try to keep my suggestions at a beginner level, though.

First, I should point out that your "play again?" mechanism doesn't actually work: you ask the question, but never do anything with the result.    Putting the "play again?" prompt in its own class doesn't make much sense; it can just be a function.  That function should return a boolean result — true to play again, false to quit.  In main(), the while (b != 0) loop would best be written as a do-while loop, since you want to run the game at least once without asking.  b is a poor variable name; playAgain would be much more helpful.

The main lesson that I think you should learn from this exercise is object-oriented thinking.  Instead of input and randomNumber, how about thinking about a HumanPlayer and a RandomComputerPlayer, both of which can return a choice of "Rock", "Paper", or "Scissors" when asked to play()?  The code would better model the game.

To analyze the outcome, you have enumerated all 9 combinations.  Of those, three outcomes are ties, which can easily be detected.  It would also be better to group all of the winning outcomes and all of the losing outcomes together.

RockPaperScissors.java

import java.util.Random;
import java.util.Scanner;

public class RockPaperScissors {
    private static boolean playAgain(Scanner scanner) {
        System.out.println("Play again? Y(8), N(9)?");
        switch (scanner.nextInt()) {
        case 8:
            System.out.println("Rock, Paper, Scissors!");
            return true;
        default:
            System.out.println("Thanks for playing!");
            return false;
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        RPSPlayer computer = new RandomComputerPlayer(new Random());
        RPSPlayer human = new HumanPlayer(scanner);

        System.out.println("Rock Paper Scissors, by 200_success!");
        do {
            String comp = computer.play();
            String you = human.play();

            System.out.printf("%s vs. %s", comp, you);
            if (you.equals(comp)) {
                System.out.println(", IT'S A TIE!");
            } else if ( ("Rock".equals(you) &amp;&amp; "Scissors".equals(comp)) ||
                        ("Scissors".equals(you) &amp;&amp; "Paper".equals(comp)) ||
                        ("Paper".equals(you) &amp;&amp; "Rock".equals(comp)) ) {
                System.out.println("! You win!");
            } else {
                assert (("Rock".equals(comp) &amp;&amp; "Scissors".equals(you)) ||
                        ("Scissors".equals(comp) &amp;&amp; "Paper".equals(you)) ||
                        ("Paper".equals(comp) &amp;&amp; "Rock".equals(you)));
                System.out.println("! You lose!");
            }
        } while (playAgain(scanner));
    }
}


RPSPlayer.java

public interface RPSPlayer {
    String[] CHOICES = new String[] { "Rock", "Paper", "Scissors" };

    /**
     * Returns one of "Rock", "Paper", or "Scissors".
     */
    String play();
}


HumanPlayer.java

import java.util.Scanner;

public class HumanPlayer implements RPSPlayer {
    private final Scanner scanner;

    public HumanPlayer(Scanner scanner) {
        this.scanner = scanner;
    }

    public String play() {
        System.out.println("Select 1, 2, or 3 for Rock, Paper, Scissors");
        int choice = this.scanner.nextInt();
        // Keeping things simple, not doing any validation here
        return CHOICES[choice - 1];
    }
}


RandomComputerPlayer.java

import java.util.Random;

public class RandomComputerPlayer implements RPSPlayer {
    private final Random random;

    public RandomComputerPlayer(Random random) {
        this.random = random;
    }

    public String play() {
        return CHOICES[this.random.nextInt(CHOICES.length)];
    }
}