Loading article…

Javaプログラミング言語では、キーワードは言語で事前に定義された意味を持つ68の予約語[1]のいずれかです。このため、プログラマーは、変数、メソッド、クラスの名前、またはその他の識別子としてなどの一部のコンテキストでキーワードを使用することができません。[2]これらの68のキーワードのうち、17はコンテキストでのみ予約されており、標準の予約語とは異なり、識別子として使用できる場合があります。言語での特別な機能のため、Javaのほとんどの統合開発環境では、キーワードを簡単に識別できるように、構文の強調表示を使用してキーワードを別の色で表示します。
Javaキーワードのリスト
_- Java 9で追加されたアンダースコアはキーワードとなり、変数名として使用できなくなりました。[3]
abstract- 定義のないメソッドは抽象として宣言する必要があり、そのメソッドを含むクラスも抽象として宣言する必要があります。抽象クラスはインスタンス化できません。抽象メソッドはサブクラスで実装する必要があります。abstract キーワードは変数やコンストラクターでは使用できません。抽象クラスには抽象メソッドがまったく必要ではないことに注意してください。
assert( J2SE 1.4で追加)[4]- アサートは、Java プログラム内に配置された述語 (真偽ステートメント) を記述し、開発者がその場所で述語が常に真であると考えていることを示します。実行時にアサーションが偽と評価された場合、アサーション エラーが発生し、通常は実行が中止されます。アサーションは実行時にデフォルトで無効になっていますが、コマンド ライン オプションまたはクラス ローダーのメソッドを使用してプログラムで有効にすることができます。
boolean- ブール変数を「true」または「false」の値のみに定義します。デフォルトでは、ブール プリミティブ型の値は false です。このキーワードは、メソッドがプリミティブ型の値を返すことを宣言するためにも使用されます
boolean。
break- 現在のループ本体の実行を終了するために使用されます。
- ブロックを突破するために使用されます
switch。
byte- キーワード
byteは、8ビットの符号付き2の補数整数を保持できるフィールドを宣言するために使用されます。[5] [6]このキーワードは、メソッドがプリミティブ型の値を返すことを宣言するためにも使用されますbyte。[7] [8]
case- ブロック内の文には、
switch1つ以上のラベルcaseまたはdefaultラベルを付けることができます。switch文は式を評価し、一致するラベルに続くすべての文を実行します。[9] [10]caseを参照してください。switch
catchtryブロックおよびオプションのブロックと組み合わせて使用しますfinally。ブロック内のステートメントは、ブロックcatchによって特定の種類の例外がスローされた場合に実行する処理を指定しますtry。
char- Java ソース ファイルの文字セットの任意の文字を保持できる文字変数を定義します。
class- 特定の種類のオブジェクトの実装を定義する型。クラス定義では、インスタンスとクラスのフィールド、メソッド、内部クラスを定義し、クラスが実装するインターフェースとクラスの直接のスーパークラスを指定します。スーパークラスが明示的に指定されていない場合は、スーパークラスは暗黙的に指定されます
Object。class キーワードは、 Class .classの形式で使用して、そのクラスのインスタンスを必要とせずに Class オブジェクトを取得することもできます。たとえば、new String().getClass()の代わりにString.class を使用できます。
continue- 現在のループ本体の終了時にプログラムの実行を再開するために使用されます。ラベルが続く場合は、
continue囲んでいるラベル付きループ本体の終了時に実行を再開します。
default- キーワードはオプションでswitch文
defaultで使用して、指定された値に一致するものがない場合に実行される文のブロックにラベルを付けることもできます。 [9] [10]を参照してください。また、キーワードはJavaアノテーションでデフォルト値を宣言するためにも使用できます。Java 8以降では、キーワードを使用して、インターフェースがメソッドの実装を提供できるようにすることができます。caseswitchdefaultdefault
do- キーワード
doは、 と組み合わせて使用され、 do-whileループwhileを作成します。これは、ループに関連付けられた文のブロックを実行し、 に関連付けられたブール式をテストします。式が と評価された場合、ブロックが再度実行されます。これは、式が と評価されるまで続きます。[11] [12]whiletruefalse
double- キーワードは、64ビット倍精度IEEE 754浮動小数点数
doubleを保持できる変数を宣言するために使用されます。[5] [6]このキーワードは、メソッドがプリミティブ型の値を返すことを宣言するためにも使用されます。[7] [8]double
else- キーワードは、ブール式をテストするif-else文を作成するため
elseに使用され、式が と評価された場合、 に関連付けられた文のブロックが評価されます。式が と評価された場合、 に関連付けられた文のブロックが評価されます。[13] [14]iftrueiffalseelse
enum( J2SE 5.0で追加)[4]- 列挙型を宣言するために使用される Java キーワード。列挙型は基本クラスを拡張します
Enum。
extends- クラス宣言ではスーパークラスを指定するために使用され、インターフェース宣言では 1 つ以上のスーパーインターフェースを指定するために使用されます。クラス X は、クラス Y にフィールドまたはメソッドを追加するか、クラス Y のメソッドをオーバーライドすることによって、クラス Y を拡張して機能を追加します。インターフェース Z は、メソッドを追加することによって 1 つ以上のインターフェースを拡張します。クラス X はクラス Y のサブクラスであると言われ、インターフェース Z は拡張するインターフェースのサブインターフェースであると言われます。
- また、ジェネリックの型パラメータの上限を指定するためにも使用されます。
final- 一度定義すると、後で変更したり派生したりすることはできません。具体的には、final クラスはサブクラス化できず、final メソッドはオーバーライドできず、final 変数は実行されたコマンドの左側の式として最大 1 回しか出現できません。final クラス内のすべてのメソッドは暗黙的に です
final。
finally- キーワードによって以前に定義されたブロックのステートメント ブロックを定義するために使用されます
try。例外がスローまたはキャッチされたかどうか、またはキーワードを使用して実行がブロックまたはブロックの途中でメソッドを終了したかどうかに関係なく、ブロックおよび関連する句のfinally実行が終了した後にブロックが実行されます。trycatchtrycatchreturn
float- キーワードは、32ビット単精度IEEE 754浮動小数点数
floatを保持できる変数を宣言するために使用されます。 [5] [6]このキーワードは、メソッドがプリミティブ型の値を返すことを宣言するためにも使用されます。[7] [8]float
for- キーワードは、変数の初期化、ブール式、および増分を指定するfor ループ
forを作成するために使用されます。最初に変数の初期化が実行され、次にブール式が評価されます。式が と評価された場合、ループに関連付けられた文のブロックが実行され、次に増分が実行されます。次にブール式が再度評価され、式が と評価されるまでこれが続けられます。[15]truefalse
- J2SE 5.0以降では、キーワードを使用して、配列またはオブジェクトを指定する、
forいわゆる「拡張forループ」を作成することもできます。ループの各反復では、配列またはオブジェクト内の異なる要素を使用して、関連付けられたステートメントブロックを実行します。[15 ]IterableIterable
if- キーワードは、ブール式をテストするif文を
if作成するために使用されます。式が と評価された場合、if文に関連付けられた文のブロックが実行されます。このキーワードは、 if-else文を作成するためにも使用できます。を参照してください。[13] [14]trueelse
implements- クラス宣言に含まれ、現在のクラスによって実装される 1 つ以上のインターフェイスを指定します。クラスは、インターフェイスによって宣言された型と抽象メソッドを継承します。
import- ソース ファイルの先頭で使用して、後で参照するクラスまたはJava パッケージ全体を指定します。参照にパッケージ名を含めません。J2SE 5.0 以降では、
importステートメントでstaticクラスのメンバーをインポートできます。
instanceof- オブジェクト参照を最初のオペランドとして受け取り、クラスまたはインターフェイスを 2 番目のオペランドとして受け取り、ブール値の結果を生成するバイナリ演算子。演算子は
instanceof、オブジェクトのランタイム型がクラスまたはインターフェイスと割り当て互換性がある場合にのみ true と評価されます。
int- キーワード
intは、32ビットの符号付き2の補数整数を保持できる変数を宣言するために使用されます。[5] [6]このキーワードは、メソッドがプリミティブ型の値を返すことを宣言するためにも使用されますint。[7] [8]
interface- 抽象メソッドまたはデフォルト メソッド、定数 ( ) フィールド、およびインターフェイスのみを含むインターフェイスを宣言するために使用されます。これは、キーワードを使用してインターフェイスを宣言するクラスによって後で実装できます。Java では多重継承が許可されていないため、インターフェイスを使用してこれを回避することができます。インターフェイスは、別のインターフェイス内で定義できます。
static finalstaticimplements
long- キーワード
longは、64ビットの符号付き2の補数整数を保持できる変数を宣言するために使用されます。[5] [6]このキーワードは、メソッドがプリミティブ型の値を返すことを宣言するためにも使用されますlong。[7] [8]
native- メソッド宣言で使用され、メソッドが同じJavaソースファイルではなく別の言語で実装されていることを指定します。[8]
new- クラスまたは配列オブジェクトのインスタンスを作成するために使用されます。この目的でキーワードを使用することは必ずしも必要ではありません ( Scalaの例を参照)。ただし、キーワードには 2 つの目的があります。メソッドとクラス名に異なる名前空間を存在させること、新しいオブジェクトが実際に作成され、それが実行時型であることを静的かつローカルに定義することです (コードに依存性を導入する可能性もあります)。
package- Java パッケージは、類似のクラスとインターフェースのグループです。パッケージは、
packageキーワードを使用して宣言されます。
private- キーワード
privateはメソッド、フィールド、または内部クラスの宣言で使用され、プライベートメンバーには同じクラスの他のメンバーのみがアクセスできます。[17]
protected- キーワード
protectedはメソッド、フィールド、または内部クラスの宣言で使用されます。保護されたメンバーには、そのクラスのメンバー、そのクラスのサブクラス、または同じパッケージのクラスからのみアクセスできます。[17]
public- キーワード
publicはクラス、メソッド、またはフィールドの宣言で使用され、パブリッククラス、メソッド、およびフィールドにはどのクラスのメンバーからもアクセスできます。[17]
return- メソッドの実行を終了するために使用されます。その後に、呼び出し元に返されるメソッド定義に必要な値が続く場合があります。
short- キーワード
shortは、16ビットの符号付き2の補数整数を保持できるフィールドを宣言するために使用されます。[5] [6]このキーワードは、メソッドがプリミティブ型の値を返すことを宣言するためにも使用されますshort。[7] [8]
static- フィールド、メソッド、または内部クラスをクラスフィールドとして宣言するために使用されます。クラスは、そのクラスのインスタンスがいくつ存在するかに関係なく、クラスフィールドのコピーを 1 つ保持します
static。また、メソッドをクラスメソッドとして定義するために使用されます。クラスメソッドは、特定のインスタンスではなくクラスにバインドされ、クラスフィールドに対してのみ操作できます。別のクラスまたはインターフェイスのメンバーとして宣言されたクラスとインターフェイスは、static動作上トップレベルクラスです。[18]
super- 継承は基本的に、Java で動的バインディングまたは実行時ポリモーフィズムを実現するために使用されます。継承が出現するクラスによって継承されたクラスのメンバーにアクセスするために使用されます。サブクラスがスーパークラスのオーバーライドされたメソッドと非表示のメンバーにアクセスできるようにします
super。キーワードは、コンストラクターからスーパークラスのコンストラクターへの呼び出しを転送するためにも使用されます。 - また、ジェネリックの型パラメータの下限を指定するためにも使用されます。
switch- キーワードは、およびと
switch組み合わせて使用され、変数を評価し、その値を特定の値(パターンを含む)と照合し、そのに関連付けられた文のブロックを実行するswitch文を作成します。値に一致するものがない場合、によってラベル付けされたオプションのブロックが実行されます(含まれている場合)。[9] [10] switchキーワードは、非予約語と組み合わせて使用してswitch式を作成することもできます。casedefaultcasecasecasedefaultyield
synchronized- メソッドまたはコードブロックの宣言で使用され、現在のスレッドがコードを実行している間にオブジェクトのミューテックスロックを取得します。 [8]静的メソッドの場合、ロックされるオブジェクトはクラスのです。同じオブジェクトを操作するスレッドは一度に最大で 1 つしかそのコードを実行しないことを保証します。実行が同期コードを終了すると、ミューテックスロックは自動的に解除されます。フィールド、クラス、およびインターフェースはsynchronizedとして宣言できません。
Class
this- 出現するクラスのインスタンスを表すために使用されます。
thisクラス メンバーにアクセスしたり、現在のインスタンスへの参照として使用したりできます。このthisキーワードは、クラス内の 1 つのコンストラクターから同じクラス内の別のコンストラクターに呼び出しを転送するためにも使用されます。
throw- 宣言された例外インスタンスがスローされます。これにより、
catch割り当て互換の例外タイプを処理するために、キーワードによって宣言された最初の囲み例外ハンドラを使用して実行が続行されます。現在のメソッドでそのような例外ハンドラが見つからない場合、メソッドは戻り、呼び出しメソッドでプロセスが繰り返されます。スタック上のどのメソッド呼び出しでも例外ハンドラが見つからない場合、例外はスレッドのキャッチされていない例外ハンドラに渡されます。
throws- メソッド宣言で使用され、メソッド内で処理されずにプログラムの次の上位レベルに渡される例外を指定します。 のインスタンスではないメソッド内のキャッチされない例外はすべて、キーワード
RuntimeExceptionを使用して宣言する必要がありますthrows。
transient- インスタンスフィールドがオブジェクトのデフォルトのシリアル化形式の一部ではないことを宣言します。オブジェクトがシリアル化されると、その非一時インスタンスフィールドの値のみがデフォルトのシリアル表現に含まれます。オブジェクトがデシリアライズされると、一時フィールドはデフォルト値にのみ初期化されます。デフォルトの形式が使用されない場合、たとえばクラス階層でserialPersistentFields
transientテーブルが宣言されている場合、すべてのキーワードは無視されます。[19] [20]
try- 例外処理を持つステートメントのブロックを定義します。ブロック内で例外がスローされた場合
try、オプションのcatchブロックは宣言された例外タイプを処理できます。また、例外がスローされたかどうかに関係なく、実行がブロックと節をfinally終了したときに実行されるオプションのブロックを宣言することもできます。ブロックには、少なくとも 1 つの節またはブロックが必要です。trycatchtrycatchfinally
void- キーワード
voidはメソッドが値を返さないことを宣言するために使用されます。[7]
volatile- フィールド宣言で使用され、スレッド間での変数の変更の可視性を保証します。 揮発性変数のすべての読み取りはCPUキャッシュからではなくメインメモリから読み取られ、揮発性変数へのすべての書き込みはCPUキャッシュだけでなくメインメモリに書き込まれます。[21]したがって、メソッド、クラス、およびインターフェイスはvolatile として宣言できず、ローカル変数やパラメータも同様に宣言できません。
while- キーワードはwhile ループを
while作成するために使用され、ブール式をテストし、式が と評価された場合にループに関連付けられた文のブロックを実行します。これは、式が と評価されるまで続行されます。このキーワードはdo-while ループを作成するためにも使用できます。を参照してください。[11] [12]truefalsedo
予約済み識別子
次の識別子はコンテキスト キーワードであり、一部のコンテキストでのみ制限されます。
exports
module
non-sealed- シールクラスを拡張するクラスまたはインターフェースが未知のクラスによって拡張できることを宣言するために使用されます。[22]
openopenspermits- permits句は、sealedクラスを拡張することが許可されるクラスを指定します。[22]
providesrecord
requires
sealed- シールされたクラスまたはインターフェースは、それを許可されたクラスおよびインターフェースによってのみ拡張または実装できます。[22]
totransitiveusesvar- 型名として使用できない特別な識別子(Java 10以降)。[23]
when- 声明の追加チェックとして使用される
case。[24] withyield- ラベル付きステートメントグループ(例:)を使用するときに、スイッチ式の値を設定するために使用されます
case L:。[25]
リテラル値の予約語
true- ブールリテラル値。
false- ブールリテラル値。
null- 参照リテラル値。
未使用
const- Javaではキーワードとして予約されていますが、
const使用されず、機能もありません。[2] [26] Javaで定数を定義するには、finalキーワードを参照してください。
goto- Javaではキーワードとして予約されているが、
goto使用されず機能もない。[2] [26]
strictfp( J2SE 1.2で追加)[4]- Javaではキーワードとして予約されていますが、
strictfp廃止されており、もはや機能はありません。[27]以前は、このキーワードは移植性を確保するために浮動小数点計算の精度と丸めを制限するために使用されていました。[8]
参照
参考文献
- ^ 「Java プラットフォーム、Standard Edition Java API リファレンス」。
- ^ abc 「Java 言語仕様 - セクション 3.9: キーワード」。Java言語仕様。Oracle。2018年 8 月 21 日。2018年12 月 25 日閲覧。
- ^ 「アンダースコアの扱い」。JEP 302: ラムダ残り物。
- ^ abc 「Java 言語キーワード」。Javaチュートリアル。Sun Microsystems, Inc. 2017 年 7 月 24 日閲覧。
- ^ abcdef 「プリミティブ データ型」。Javaチュートリアル。Sun Microsystems, Inc. 2008 年 2 月 14 日。2008 年 12 月 3 日に閲覧。
- ^ abcdef フラナガン2005、22ページ。
- ^ abcdefg 「メソッドから値を返す」。Javaチュートリアル。Sun Microsystems, Inc. 2008 年 2 月 14 日。2008年 12 月 3 日閲覧。
- ^ abcdefghi Flanagan 2005、66–67 ページ。
- ^ abc 「switch ステートメント」。Javaチュートリアル。Sun Microsystems, Inc. 2008 年 2 月 14 日。2014 年 12 月 18 日閲覧。
- ^ abc フラナガン2005年、46-48頁。
- ^ ab 「while 文と do-while 文」。Javaチュートリアル。Sun Microsystems, Inc. 2008 年 2 月 14 日。2008 年 12 月 3 日閲覧。
- ^ フラナガン2005、48-49頁を参照。
- ^ ab 「if-then および if-then-else ステートメント」。Javaチュートリアル。Sun Microsystems, Inc. 2008 年 2 月 14 日。2008 年 12 月 3 日に閲覧。
- ^ フラナガン 2005、44-46頁。
- ^ ab 「for ステートメント」。Javaチュートリアル。Sun Microsystems, Inc. 2008 年 2 月 14 日。2008 年 12 月 3 日閲覧。
- ^ フラナガン 2005年、50-54頁。
- ^ abc 「クラスのメンバーへのアクセスの制御」。Javaチュートリアル。Sun Microsystems, Inc. 2008 年 2 月 14 日。2008年 12 月 3 日閲覧。
- ^ 「ネストされたクラス (Java™ チュートリアル > Java 言語の学習 > クラスとオブジェクト)」。
- ^ 「Java オブジェクトシリアル化仕様バージョン 1.5.0」。Sun/Oracle。2004 年。1.5 クラスのシリアル化可能なフィールドの定義。2010年 9 月 16 日に取得。[永久リンク切れ ]
- ^ Grosso, William (2001 年 11 月 21 日)。「Java RMI: シリアル化」。ONJava。O'Reilly Media。serialPersistentFields の宣言。2010 年 9 月 16 日閲覧。
- ^ 「Java Volatile キーワード」。
- ^ abc 「Sealed Classes」。docs.oracle.com。Oracle Corporation 。 2021年8月7日閲覧。
- ^ 「第3章 語彙構造」。docs.oracle.com 。2018年12月25日閲覧。
- ^ 「第14章 ブロック、ステートメント、パターン」。
- ^ 「Switch 式」。docs.oracle.com。Oracle Corporation。2020年 12 月 27 日閲覧。
- ^ フラナガン 2005、20ページより。
- ^ 「JEP 306: 常に厳密な浮動小数点セマンティクスを復元する」。
外部リンク
- Gosling, James ; Joy, Bill ; Steele, Guy ; Bracha, Gilad (2005 年 6 月)。Java 言語仕様 (第 3 版)。Addison - Wesley Professional。ISBN 978-0-321-24678-3. 2008年12月3日閲覧。
- Flanagan, David (2005 年 3 月)。Java in a Nutshell (第 5 版) 。O'Reilly Media。ISBN 978-0-596-00773-7. 2010年3月3日閲覧。
