En las clases, las variables a menudo se vuelven privadas para la encapsulación, y limitar las variables a un cierto alcance permite un mejor control de errores y menos errores. Esto tiene sentido, ya que a menos lugares se puede acceder a una variable, menos lugares puede ocurrir un error con esa variable.¿Cuál es el punto de acceso a las variables privadas a través de las funciones getter y setter (acceso)?
Sin embargo, siempre veo las variables hechas en privado, y luego una función getter y setter usada para recuperar ese valor (¡a veces incluso un puntero a esa variable!). Por ejemplo, int a
es privado para evitar el acceso público, pero luego getA()
y setA()
permiten el acceso directo a ellos.
Por lo tanto, ¿las funciones del captador y las funciones del colocador no pueden ser privadas? Quiero decir que las variables privadas con función de acceso son las mismas que las públicas, solo cambia el código para acceder a ellas. (object.variable vs object.getVariable())
¿Hay alguna razón por la que las personas hagan que las variables sean privadas con funciones de acceso? ¿Hay alguna ventaja en comparación con hacerlo público?
Estoy hablando de programación en general, pero sobre todo en las lenguas C (es decir, C, C++, C#, Obj-C).
Eso realmente depende del idioma. En lenguajes OO restrictivos (C#, Java), los getters/setters son una expresión común, mientras que en un lenguaje más libre como C++ generalmente son de estilo pobre. –