В чем разница между спецификаторами доступа и модификаторами доступа? - PullRequest
38 голосов
/ 10 февраля 2010

В Java описатели доступа и модификаторы доступа - это одно и то же?

Ответы [ 9 ]

41 голосов
/ 10 февраля 2010

«модификатор доступа» - это официальный термин для private, protected и public, используемый в спецификации языка Java . «спецификатор доступа» используется как синоним в Java API doc , но я впервые заметил это. Вероятно, лучше придерживаться термина JLS.

5 голосов
/ 10 февраля 2010

Ссылаясь на Sun Java Docs, они оба кажутся одинаковыми:

3 голосов
/ 09 января 2016

Термин Спецификатор доступа , используемый программистами с ++, не работающими в Java. Официально в Java мы используем Access Modifier .

Например: когда мы объявляем класс с закрытым статическим, компилятор ясно показывает сообщение об ошибке следующим образом: enter image description here

1 голос
/ 22 мая 2012

Java имеет в основном 2 типа модификаторов:

  1. модификаторы доступа к Java
  2. Java-модификаторы отсутствия доступа

Модификаторы доступа к Java и спецификаторы доступа к Java - это одно и то же: public, private, protected.

0 голосов
/ 26 августа 2014

В некоторых старых языках публичные, приватные, защищенные и по умолчанию, такие как C ++, рассматриваются как спецификаторы доступа, а все остальное рассматривается как модификатор доступа, но в Java нет терминологии для спецификатора, все по умолчанию считается только модификатором. Таким образом, общедоступные, закрытые, защищенные, стандартные, окончательные, абстрактные, статические, строгие, синхронизированные, нативные, временные и изменчивые являются только модификаторами.

Простой тест для этого, когда мы компилируем следующий код

Тест частного класса { }

мы получим ошибку во время компиляции, говорящую, что приватный модификатор здесь не разрешен. Это верно и для других модификаторов. Возможно, компилятор java (javac) видит все как «модификатор».

0 голосов
/ 19 декабря 2012

Используя спецификатор доступа, мы определяем, кто может получить доступ к нашему классу / методу и переменной (или тому, с чем мы используем спецификатор доступа). в основном описатель доступа Java имеет четыре типа -

  1. публично: - Видимо миру,
  2. личное: - Доступно только для класса,
  3. Защищено: - Видимо для пакета и всех подклассов, а также
  4. по умолчанию: - Доступно для пакета

Но модификатор доступа - это свойства класса / метода / переменной. Модификатор доступа пяти типов

  1. final: - для завершения реализации классов, методов и переменных
  2. static: - для создания методов и переменных класса
  3. Синхронизация и изменчивые модификаторы: - которые используются для потоков
  4. abstract: - для создания абстрактных классов и методов
  5. переходная
0 голосов
/ 15 февраля 2010

Эта ссылка на JDI - единственное место, где я когда-либо видел термин «спецификатор доступа», используемый в спецификации Java.Даже там public / protected / private / package также называют «модификаторами».На самом деле нет смысла использовать термин «спецификатор доступа» в Java, это просто ошибка на одной странице из многих тысяч.

0 голосов
/ 10 февраля 2010

Технически говоря, private, public, protected и default рассматриваются как спецификаторы доступа. Они имеют дело с , кто может ... вопросов. Модификаторы afaik являются изменчивыми, окончательными, статическими, переходными и т. Д. Они имеют дело с how .. аспект.

0 голосов
/ 10 февраля 2010

По моему мнению, оба термина относятся к одной и той же вещи и используются взаимозаменяемо.

...