Another important aspect of Ruby classes is scope. The scope of a variable is the context in which it’s visible to the program.
It may surprise you to learn that not all variables are accessible to all parts of a Ruby program at all times. When dealing with classes, you can have variables that are available everywhere (global variables), ones that are only available inside certain methods (local variables), others that are members of a certain class (class variables), and variables that are only available to particular instances of a class (instance variables).
The same goes for methods: some are available everywhere, some are only available to members of a certain class, and some are only available to particular instance objects.
Check out the code in the editor. See how some variables start with
@@? This helps mark them as global, instance, and class variables (respectively). We’ll explain these in the next section. Run the code to see how these different variables work!