Java/キーワードと識別子

出典: フリー教科書『ウィキブックス(Wikibooks)』


キーワードと識別子[編集]

キーワード(Keyword)と識別子(Identifier)は、プログラミング言語において重要な概念です。

  1. キーワード:
    • キーワードは、プログラミング言語において特別な意味を持つ単語です。
    • これらの単語は通常、言語の構文や機能を定義するために使われます。
    • 一般的なキーワードには、条件分岐(if、else、switch)、ループ(for、while)、データ型(int、float、string)、関数定義(function、def)、クラス定義(class)、そして予約語(reserved words)などがあります。
    • キーワードは通常、変数名や関数名として使用することはできません(PL/Iのような少数の例外はあります)。
  2. 識別子:
    • 識別子は、プログラム内でのデータやオブジェクトを一意に識別するための名前です。
    • 変数名、関数名、クラス名などが一般的な識別子の例です。
    • 識別子は通常、プログラミング言語の構文ルールに従って命名されます。
    • 一般的な命名規則には、識別子がアルファベットまたはアンダースコアで始まり、その後にアルファベット、数字、アンダースコアの組み合わせが続くというものがあります。
    • 識別子は通常、キーワードとは区別されます。つまり、キーワードと同じ名前は識別子として使用できません。

Javaにおけるキーワードと識別子[編集]

キーワード(Keywords):[編集]

Javaのキーワードは、言語の構文や機能を定義するために予約された単語です。 これらの単語は変数名やメソッド名として使用することはできません。

ReservedKeyword[編集]

ReservedKeyword
キーワード 分類 説明
abstract クラス修飾子
  1. 抽象クラスを定義
  2. 抽象メソッドを定義
assert アサーション アサーションを定義
boolean データ型 真偽値のデータ型を定義
break 制御構文
  1. ループ文を中断
  2. switch文を中断
byte データ型 8ビットの整数型のデータ型を定義
case 制御構文 switch文内の個々のケースを定義
catch 例外処理 例外を捕捉し処理
char データ型 文字のデータ型を定義
class クラス クラスを定義
const 互換性 Javaでは使用されません。
continue 制御構文 ループ内で次の反復処理に進むためのキーワード。
default 制御構文 switch文のデフォルトのケースを定義
do 制御構文 ループを定義
double データ型 浮動小数点数のデータ型を定義
else 制御構文 条件が偽の場合に実行されるブロックを定義
enum 列挙型 列挙型を定義
extends クラス修飾子 クラスが別のクラスを拡張することを示すための修飾子。
final クラス修飾子
  1. 変数の再代入禁止
  2. メソッドのサブクラスによるオーバーライド禁止
  3. クラスの継承禁止
finally 例外処理 try-catch-finally構文で、必ず実行されるブロックを定義
float データ型 単精度浮動小数点数のデータ型を定義
for 制御構文
  1. for (初期化式; 条件式; 更新式) 文
  2. for (要素の型 変数名 : 配列またはコレクション) 文
goto 互換性 Javaでは使用されません。
if 制御構文 条件文を定義
implements クラス修飾子 インターフェースを実装するための修飾子。
import パッケージ 別のパッケージのクラスやインターフェースをインポート
instanceof 演算子 オブジェクトが特定の型のインスタンスであるか?
int データ型 整数のデータ型を定義
interface クラス修飾子 インターフェースを定義するための修飾子。
long データ型 長整数のデータ型を定義
native クラス修飾子 ネイティブメソッドを定義するための修飾子。
new 演算子 新しいオブジェクトを作成
package パッケージ クラスやインターフェースのグループを定義
private アクセス修飾子 メンバーがクラス内でのみアクセス可能であることを指定するための修飾子。
protected アクセス修飾子 クラスのサブクラスからのアクセスを制限するための修飾子。
public アクセス修飾子 クラスやメンバーがどこからでもアクセス可能であることを指定するための修飾子。
return 制御構文 メソッドから値を返すためのキーワード。
short データ型 短整数のデータ型を定義
static クラス修飾子
  1. 静的変数 (static variables)を宣言
  2. 静的メソッド (static methods)を定義
  3. 静的初期化ブロック (static initializer block)を定義
  4. 静的ネストしたクラス(static nested class)を定義
strictfp クラス修飾子 浮動小数点演算の結果をプラットフォームに依存せずに制御するための修飾子。
super クラス 親クラスのコンストラクタやメソッドを呼び出すためのキーワード。
switch 制御構文
  1. switch文を定義
  2. switch式を定義
synchronized クラス修飾子 スレッドセーフな実装を定義するための修飾子。
this クラス 現在のオブジェクトを参照
throw 例外処理 例外をスロー
throws 例外処理 メソッドが例外をスローする可能性があることを宣言
transient クラス修飾子 シリアライズされる際に、変数を無視するための修飾子。
try 例外処理 例外が発生する可能性があるコードブロックを定義
void データ型 メソッドが戻り値を持たないことを示すためのキーワード。
volatile クラス修飾子 変数が複数のスレッドから変更される可能性があることを示すための修飾子。
while 制御構文 ループを定義
_ (underscore) 予約 将来の可能性を考慮してパラメータ宣言で予約されています。
この表は、Javaのキーワードをアルファベット順に並べ、各キーワードの分類と説明を示しています。

ContextualKeyword[編集]

ContextualKeyword
キーワード 分類 説明
exports モジュール モジュールが外部に提供するパッケージを指定
module モジュール モジュールを定義
non-sealed シールドクラス 非シールドクラスを定義
open モジュール モジュールやパッケージ、クラスが開かれた(拡張可能な)ものであることを示すためのキーワード。
opens モジュール パッケージまたはモジュール内の特定のパッケージを開くためのキーワード。
permits シールドクラス sealedクラスが他のクラスを継承することを許可
provides モジュール サービスプロバイダーがサービスの実装を提供
record レコードクラスを定義
requires モジュール モジュール間の依存関係を宣言
sealed シールドクラス シールドクラスを定義
to モジュール providesキーワードで指定されたサービスプロバイダーを、特定のサービスに提供
transitive モジュール モジュール間の依存関係を伝播させるためのキーワード。
uses モジュール サービスを使用
var ローカル変数宣言における型推論
with クラス extends句やimplements句で、クラスやインターフェースに合成のクラスを指定
yield 制御構造 ジェネレーターメソッドから値を生成

この表は、Java 9から導入された新しいキーワードや機能を、アルファベット順に並べ、各キーワードの分類と説明を示しています。

識別子(Identifiers)[編集]

Javaの識別子は、クラス、変数、メソッドなどに付けられる名前です。識別子のルールは次のようになります。

  • 最初の文字は文字またはアンダースコア(_)で始まります。
  • 残りの文字は文字、数字、アンダースコアのいずれかである必要があります。
  • 大文字と小文字は区別されます。
  • キーワードを識別子として使用することはできません。

例えば、次のような識別子があります:

  1. className: クラスの名前。
  2. variableName: 変数の名前。
  3. methodName(): メソッドの名前。

これらのキーワードと識別子を適切に使用することで、Javaのコードを明確で理解しやすいものにすることができます。