Here is where I made a mistake on. On Pizza.java, I had declared two class attribute called toppings_ and pizzatype_ of type ArrayList. When I created the constructor, I allocated/created memory (new) for those two attributes however, I made a mistake where I did declare toppings_ and pizzatype_ again inside the constructor. What happen next is when I used those two inside the class i.e. pizza:: order(), it ran out of scope thats why the compiler was telling me that the pointer where null.
The compiler was not able to recognize the declaration twice(Always blame someone else for my mistake

lmao).
Hmmm. I wonder what would have happen if I move the class attribute below the contructor?
Please correct me if I am wrong, I do not know much.
John