Just read this on the dev site:
Avoid Internal Getters/Setters
In native languages like C++ it\'s common practice to use getters (e.g. i = get
Getters and Setters always have an overhead as they are function calls. When you are in the same object you can optimize your code by not using them as you know what they are used for and you don't need to abstract/encapsulate them from its own object.
I think you also need to look at it from a different perspective:
Will a not having a getter/setter break common oops practices ? You will not want to have direct references if you are making objects/modules that others will use.
You really don't want to use getters/setters too many times as in the end , unless the sh!* its optimized out of it function calls will have overhead.
You really need to optimize on a percase basis , if I am building two modules where some components are only accessed by each other I might make a static field else I will stick to getters/setters