In your DogTestDrive class you have a while loop that iterates from 0 to 2, but you're handling each value that you are iterating over with a special if statement. Why not scrap the loop and just initialize all three dogs one after another?
Also, the if statements in your while loop are misleading, the cases cover x values 1, 2, and else...which I would naturally assume is 3 but is actually zero.
If, after you have created all your dog instances, you want to go over all of them and bark(), this would be the perfect place to use a for loop or the enhanced for loop.
For the Dog class, you could add a constructor that takes the size instead of creating the dog and then setting the size in two steps. Then add a getSize() and setSize() method and adjust the dog's size through that. Generally it's better to change an object's attributes through methods so that if you decide to rename size to hugeness you can do so on the variable while leaving getSize() and setSize() intact (so you don't have to change your code everywhere just in the Dog class = encapsulation).
Tony's suggestion of the dog subclasses is a great one to try too. If it doesn't make sense yet, come back to it after you read the chapter on
polymorphism.