Thank you for your advice, i greatly appreciate it.
I think that i should have not rushed the code since i myself thought that the code was not good. I basically wanted to know more techniques used with OOP that are vital. Most of the stuff you guys have mentioned i already know, but before i design Object Oriented Classes, i always write it on paper to know what it is used for and what it includes. This is my first time just doing random code which turned out quite badly.
What other principles should i study because i never heard of:
-Liskov Substitution Principle.
-Single Responsibility Principle.
-Composition vs Inheritance.
To be clear, I don't mean my prior comments to be harsh. Its clear you're still learning, and in the early stages the simple act of putting code together that actually compiles and does something useful is a small victory in itself. The fact that you're interested enough to try to do better and seek feedback is a good sign that you're on the right path.
It can sometimes be hard to ask for feedback when you suspect you might not be doing things the right way because it can leave you feeling a bit vulnerable. But if you're earnest, ask good questions, and show that you're listening, most everyone here is happy to help. Never be discouraged if someone doesn't have anything positive to say, its just constructive criticism.
Being Blunt is the best advice one can get and i wanted criticism on purpose so i know that i need to improve so thanks alot .