What's that mean? 0_o
It means that there may be bits of your code you don't want to be visible to the users (or 'clients') of your code.
There are many reasons for this, including:
* To keep people from confusing your code - there may be internal fields and globals that you don't want touched without your code's knowledge.
* To keep the design flexible - eg: so you can go back and do something an entirely different, 200% more efficient way, without having to support an 'old way' that people have come to rely on.
As for image.width, I agree with Aaron that the public interface should remain a function, as Max2D is supposed to be a simple, procedural interface.