In the interesting blog post Greg Jorgensen have written about getters and setters and why using them is not a good practice.
"Do not use getters and setters" looks like a hastily advise, but its meaning is very important and it is "do not break encapsulation", which moves us to the question what the encapsulation is.
Encapsulation means hiding. Hiding the details of the algorithm, hiding how program works leaving the developer only the interfaces that can be used to run the method and get its product. The product is a result of an algorithm encapsulated in the method and this algorithm uses class variables and method parameters to create a product and return it.
So, in general it is a good idea to hide everything related to the particular algorithm, but it may be a bad idea to hide important properties of the object that are part of the logical construction it represents. The Point class should have X and Y coordinates and it is hard to design a system that works with points and does not have such interface. Another good example of a system designed with a lot of property getters and setters is Document Object Model.