Can you explain the core principles of Object-Oriented Programming? Provide an example using Java or Python.