Every time you create an instance of a class, the runtime system creates one copy of each the class's instance variables for the instance. You can access an object's instance variables from an object as described in Using Objects . The runtime system allocates class variables once per class regardless of the number of instances created of that class. The system allocates memory for class variables the first time it encounters the class.
All instances share the same copy of the class's class variables.
You can access class variables through an instance or through the class itself. Instance methods operate on the current object's instance variables but also have access to the class variables. Also, class methods can be invoked on the class, you don't need an instance to call a class method. By default, unless otherwise specified, a member declared within a class is an instance member. Every time you instantiate a new object from a class, you get a new copy of each of the class's instance variables.