Difference between access specifier and access modifier

24,644

Solution 1

In this context, you can think of access specifiers as protection specifiers -- they specify where a variable can be accessed from. By contrast, access modifiers are completely different; they specify how variables should (or should not) be accessed; e.g. read-only, volatile, etc.

i.e., a variable can be public but read-only, or it can be private and writable -- the access specifiers have nothing to do with the modifiers.

However, I'm a little surprised that the terminology is for C#, since Microsoft actually calls public and private "access modifiers", and it calls volatile and readonly just plain "modifiers".

Solution 2

As far as I can see, there is no difference at all between the terms. The MS C++ documentation for example uses both terms for the same thing.

Solution 3

I believe an access specifier determines the visibility for a certain field / method.

An access modifier tells you more about the behavior and use of that field. You can say whether or not the field requires an instantiated object or if it can be overriden.

Share:
24,644
Robin Maben
Author by

Robin Maben

LinkedIn Profile Github Profile Other Thoughts

Updated on November 22, 2021

Comments

  • Robin Maben
    Robin Maben over 2 years

    I've read around on the internet and I've heard people say

    Access specifiers ::

    The access specifier determines how accessible the field is to code in other classes. Access ranges from totally accessible to totally inaccessible. You can optionally declare a field with an access specifier keyword: public, private, or protected.

    Access Modifiers ::

    You can optionally declare a field with a modifier keyword: final or volatile and/or static and/or transient, abstract, etc.

    Is there any difference at all? Because most definitions for access modifiers and access specifiers state the same thing.. which seems so ambiguous.