When a class uses another class, it need to be able to find that class. For very small projects, putting all the classes in one folder is fine. When you write bigger projects you're going to want to use package and import statements. But for now...
Can you post the javac command and which folder you are in when you execute it?
All things are lawful, but not all things are profitable.
Perhaps by temporarily removing class methods and fields it might be more obvious.
See how SodaBottle has been defined to be inside Bottle? That's why the compiler can't find SodaBottle.
If you are thinking that you need to do this for inheritance, as in: a SodaBottle IS-A Bottle, then this is not the way to go about it. If you want inheritance then you need to use the "extends" keyword and not nest the classes.