访问说明符和访问修饰符之间的区别

我在互联网上读过,我听过有人说

访问说明符::

访问说明符确定字段在其他类中编码的可访问性。 访问范围从完全可访问到完全无法访问。 您可以选择声明具有访问说明符关键字的字段:public,private或protected。

访问修饰符::

您可以选择使用修饰符关键字声明一个字段:final或volatile和/或static和/或transient,abstract等。

有什么不同吗? 因为访问修饰符和访问说明符的大多数定义都表示相同的东西……这看起来很模糊。

在此上下文中,您可以将访问说明符视为保护说明符 – 它们指定可以从中访问变量的位置。 相比之下,访问修饰符完全不同; 它们指定应该(或不应该)访问变量的方式; 例如只读,易失性等

即,变量可以是公共的但只读,或者它可以是私有的和可写的 – 访问说明符与修饰符无关。

但是,我对C#的术语感到有点惊讶,因为微软实际上调用了publicprivate访问修饰符 ”,它只调用volatilereadonly只是简单的“ 修饰符 ”。

据我所知,这两个术语之间没有任何区别。 例如,MS C ++文档同时使用这两个术语。

请参阅MSDN C#4.0文档,我想你误解了一些东西。 C#没有像“访问说明符”这样的单词,但它为用于控制访问级别的修饰符调用修饰符访问修饰符

希望这有帮助。

更新

我想,这个问题就像你问我包和命名空间之间的区别。 这取决于您使用或相信的语言或教授。 像这个问题一样,没有什么是错的。

根据经验(以及单词的含义),访问修饰符应该意味着控制访问,如公共或私人。 另一方面,访问说明符应该是访问修饰符的超类,这意味着它包括其他关键字,如static,final,readonly或类似的东西。

PS。 无论是C#,VB.NET还是Java,它们都使用访问修饰符来表示公共或私有关键字。 另一方面,C ++使用相同关键字的访问说明符。

修饰符(C#4.0)

Visual Basic中的访问级别(VB.NET 2010)

控制对类成员的访问(Java)

访问说明符(C ++ 2010)

我相信访问说明符确定某个字段/方法的可见性。

访问修饰符会告诉您有关该字段的行为和用法的更多信息。 您可以说该字段是否需要实例化对象,或者是否可以覆盖它。

类的访问说明符指示其他类变量可以在当前类中访问的内容。 类的访问修饰符表示访问说明符的相同function