2011-02-17 19 views
5

he leído alrededor en el Internet y he oído decirDiferencia entre especificador de acceso y modificador de acceso

especificadores de acceso ::

El especificador de acceso determina cómo accesible el campo es código en otras clases. El acceso va de totalmente accesible a totalmente inaccesible. Opcionalmente, puede declarar un campo con una palabra clave de especificador de acceso : pública, privada, o protegida.

Modificadores de acceso ::

puede declarar opcionalmente un campo con una palabra clave: modificador final o volátil y/o estática y/o transitoria, abstracto, etc.

¿Hay cualquier diferencia en absoluto? Porque la mayoría de las definiciones de modificadores de acceso y especificadores de acceso dicen lo mismo ... que parece tan ambiguo.

+0

Clase pública y dicen Clase pública estática, ¿esto le pega a algo? – V4Vendetta

+0

Creo que no hay palabra clave "transitoria" en C#. Se usa en J # para marcar campos no serializables. – kubal5003

Respuesta

6

En este contexto, se puede pensar en especificadores de acceso como especificadores de protección - que especifican dónde una variable se puede acceder desde. Por el contrario, los modificadores de acceso son completamente diferentes; especifican cómo se debe acceder (o no) a las variables; p.ej. de solo lectura, volátil, etc.

es decir, una variable puede ser pública pero de solo lectura, o puede ser privada y de escritura, los especificadores de acceso no tienen nada que ver con los modificadores.

Sin embargo, me sorprende un poco que la terminología es para C#, ya que Microsoft llama en realidad public y private "access modifiers", y llama volatile y readonly simplemente "modifiers".

+0

Que es lo que me parece a mí también (prácticamente afirmé lo mismo en mi pregunta). Sería más útil si pudiera citar sus fuentes. –

2

Por lo que puedo ver, no hay ninguna diferencia entre los términos. La documentación de MS C++, por ejemplo, usa ambos términos para la misma cosa.

+0

Sí, ¡Exactamente! Incluso msdn usa los términos de forma intercambiable. –

1

Creo que un especificador de acceso determina la visibilidad de un determinado campo/método.

Un modificador de acceso le dice más sobre el comportamiento y el uso de ese campo. Puede decir si el campo requiere o no un objeto instanciado o si puede ser anulado.

2

Consulte el documento MSDN C# 4.0, creo que malinterpreta algo. C# no tiene una palabra como "especificador de acceso" pero llama a los modificadores o modificadores de acceso para los modificadores que se usan para controlar el nivel de acceso.

Espero que esta ayuda.

actualización

pienso, esta pregunta como usted me pregunta que lo que diferencia entre paquete y espacio de nombres es. Depende de qué idioma o profesor utilices o creas.Nada está mal en el mismo tipo como esta pregunta.

Según la experiencia (y el significado de las palabras), el modificador de acceso debe significar controlar el acceso como público o privado. Por otro lado, los Especificadores de acceso deberían ser la súper clase de modificador de acceso que significa que incluye otras palabras clave como estático, final, de solo lectura o algo así.

PS. Tanto C#, VB.NET y Java, usan el modificador de acceso para palabras clave como públicas o privadas. Por otro lado, C++ usa el especificador de acceso para la misma palabra clave.

Modifiers (C# 4.0)

Access Levels in Visual Basic (VB.NET 2010)

Controlling Access to Members of a Class (Java)

Access Specifiers (C++ 2010)

+0

En realidad, encontré esto también. Voy a votar mejor esto. Pero me refería al término en general y no al específico de C#. (A pesar de la etiqueta C#. Lo siento). –

+0

Consulte mi actualización. Debería ser una respuesta lo suficientemente buena para resumir tu pregunta sin respuesta. :RE –

0

especificadores de acceso de una clase indica qué otras variables de clase pueden acceder en la presente clase. Los modificadores de acceso de una clase indican la misma funcionalidad de los especificadores de acceso

Cuestiones relacionadas