1. Objects can have different state values through instance variables and different behavior through methods acting on that state.
2. Methods can accept parameters as input and return values as output. The values passed as arguments land in the parameters, and a method must return a value if declared to do so.
3. Encapsulation protects an object's internal state by making instance variables private and controlling access through public getters and setters.