Object Oriented Programming 4 Principles