I was reading this section in the Android Dev Guide :
and I was wondering what is a “Virtual method call” and what does it mean when it says “locally” using a getter/setter? I’m trying to figure out if what they’re saying is avoid using methods EVER (for instance a method from an instanced object) or just inside a class you’re already working in to get a variable?
To sum it up basically, if I’m in a different class and I want to know the value of a variable in a different class will it be more expensive to do otherclass.getX() than to do otherclass.x? Or is it the same performance if it’s not within the current class to do either a method or access a public variable directly?
Using getters and setters is more expensive because first the VM will lookup the method from a virtual method table and then make the call.
For faster access on Android directly accessing member variables reduces the overhead