I've been writing an RPG for a while, but started running into problems because I didn't abstract things out correctly. Anyways, I'm rewriting the codebase to be more developer-friendly, but I'm stuck on something.

What is the point of an accessor method, as opposed to simply having a public member? For example, I have a clsSprite class. The class has a Point object to specify the location of the sprite on the game screen. In the original codebase, I had:
Code:
public Point ptLocation = new Point();
What is the advantage of having this instead?:
Code:
        private Point ptLocation = new Point();

        public int LocationX
        {
            get
            {
                return ptLocation.X;
            }
            set
            {
                ptLocation.X = value;
            }
        }
        public int LocationY
        {
            get
            {
                return ptLocation.Y;
            }
            set
            {
                ptLocation.Y = value;
            }
        }
I know it has something to do with memory management, but it doesn't make much sense to me. This seems like there's just more code to bloat my class. Am I wrong?