There are two kinds of properties:
- Instance properties hold data that are specific to a given object instance.
- Static properties hold data that are shared among all object instances.
A property has a name (a string) and a value (primitive, method, or object reference). Note that when we say that "a property holds an object", that is shorthand for "a property holds an object reference". This distinction matters because the original referenced object remains unchanged when you change the property's value.