web-dev-qa-db-ja.com

アクセス指定子とアクセス修飾子の違いは何ですか?

Javaでは、アクセス指定子アクセス修飾子は同じものですか?

39
sgokhales

「アクセス修飾子」は、 Java言語仕様 で使用されるprivateprotectedおよびpublicの公式用語です。 「アクセス指定子」は Java API doc で同義的に使用されますが、これに気づいたのはこれが初めてです。 JLSの用語に固執する方がおそらく良いでしょう。

41

Sun Java Docsを参照すると、両者は同じように見えます:

5
codaddict

Java以外のc ++プログラマが使用する用語Access指定子。 In Java公式にはAccess Modifierを使用します。

例:private、staticでクラスを宣言すると、コンパイラは次のようにエラーメッセージを明確に表示します。
enter image description here

3
Premraj

Javaには、基本的に2種類の修飾子があります。

  1. Javaアクセス修飾子
  2. Java非アクセス修飾子

Javaアクセス修飾子とJavaアクセス指定子は同じもので、publicprivateprotectedです。

1
Tamana

私によると、はい、両方の用語は同じものを指し、交換可能に使用されます。

0
missingfaktor

一部の古い言語では、C++などのpublic、private、protected、およびdefaultはアクセス指定子と見なされ、他のすべてはアクセス修飾子と見なされますが、Javaには指定子の用語はありません。したがって、パブリック、プライベート、保護、デフォルト、最終、抽象、静的、strictfp、同期、ネイティブ、一時、および揮発性はすべて修飾子のみです。

簡単なテストは、次のコードをコンパイルするときです

プライベートクラスTest {}

ここでは修飾子privateは許可されないというコンパイル時エラーが発生します。これは、他の修飾子にも当てはまります。たぶんJavaコンパイラ(javac)はすべてを「修飾子」と見なします。

0
raghavanm

そのJDI参照は、Java仕様で使用される用語 'アクセス指定子'を見たことがある唯一の場所です。そこでも、public/protected/private/packageは '修飾子'と呼ばれます。 Javaで「アクセス指定子」という用語を使用する理由はまったくありません。これは明らかに、何千ものページのうちの1ページでの間違いにすぎません。

0
user207421