So what I learned is that when I call a variable on an object e.g.
First, there are a few claims that need to be cleaned up in that question before answering it.
First you never "call" variables. The Ruby expression
is a method call. There is no such thing as a variable call. You call methods, not variables. Even if the method is named
Secondly, if you did define the method like this
def variable @variable end
either directly or by saying
Then you have a method named
variable and a variable named
Now to answer the question.
Ruby places access modifiers
private on methods only, and not on variables. Access controls on variables don't really make sense, because they cannot be seen outside of the class. In other words, you can never write anything like this
That's just a syntax error. You can write
var is the name of a method. And the access controls apply to that method only.
So TL;DR: No, because variables can't be seen outside the class anyway. Only methods can.
The fact that you may be making variables and methods with the same name (except for the
@) actually doesn't matter. Only methods have access controls.
Hope that helps clear up some understandable confusion!