¿Por qué escribir explícitamente "privado"?


Como los campos son implícitamente privados, por qué a menudo se usa una declaración explícita en los libros, artículos, etc.?

Author: Vitor M. Barbosa, 2010-11-06

8 answers

Porque los niveles de acceso predeterminados varían según los idiomas, y muchas personas programan en más de un idioma. Es fácil confundirse, ya sea como autor o como alguien que lee el código más tarde, por lo tanto, es más agradable tratar con lo explícito que con lo implícito.

 65
Author: Donnie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-06 15:16:41

El problema con las declaraciones implícitas es que el lector no puede saber si quien escribió el código quería la declaración implícita o simplemente olvidó escribir algo. Al ser explícito no hay duda sobre las intenciones.

 21
Author: Brian Rasmussen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-06 15:18:33

Para que tu código se vea bien :).

Tienes razón no es necesario, pero es costumbre escribirlos de todos modos. Por lo menos, cada método tiene un privilegio explícitamente señalado y hace que su código sea más fácil de leer.

 11
Author: Pieter van Ginkel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-06 15:14:30

A veces lo explícito es mejor que lo implícito, y esto es aún más cuando se está escribiendo material educativo. Para las personas que no conocen o no pueden recordar las reglas para los niveles de acceso predeterminados, es una cosa menos con la que deben preocuparse al leer el código.

Pregunta conexa

El acceso predeterminado para todo en C# es " el acceso más restringido que podría declare for that member".

 7
Author: Mark Byers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:47:14

Porque se escribe código para mantener y claridad, ESPECIALMENTE en muestras de código. Las declaraciones implícitas están ahí para el compilador, no para el programador. Si no se declara explícitamente la visibilidad y el alcance de las variables, la intención es ambigua. ¿Realmente es mucho escribir extra?

 5
Author: Cody Gray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-06 15:15:08

Tienes que recordar que el código puede terminar con alguien más para leerlo en algún momento, podría ser usted en 6 meses y necesita entender la intención. Declarar algo privado significa que no desea que ese detalle de implementación en particular esté disponible para todos aquellos que puedan usarlo(en este momento), las revisiones posteriores pueden cambiar la forma en que funciona esa cosa en particular y si desea proporcionar compatibilidad con versiones anteriores, si ha sido público desde el principio, necesita permanecer en revisiones futuras.

 2
Author: Paul Farry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-17 23:31:03

En mi opinión, hace que el código sea más legible. No tengo que pensar en el modificador de acceso predeterminado. También lo hace cumplir StyleCop , una herramienta que uso para garantizar un estilo de codificación consistente.

 1
Author: treze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-06 15:24:59

La declaración explícita solía indicarte que la variable se establece deliberadamente en privada y que debe declararse como privada

 1
Author: Muhammad Faizan Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-30 06:32:15