Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のJShellで式・変数・メソッドを定義する方法を徹底解説

JShellは、Java 9から導入されたRead-Evaluate-Print Loop(REPL)ツールです。宣言、ステートメント、式を入力すると即座に評価し、その結果をすぐに表示してくれます。コマンドプロンプトから起動して利用できるため、小さなコードの動作確認や学習に非常に便利です。

この記事では、JShellにおける式(Expression)変数(Variable)メソッド(Method)の定義方法を順番に解説します。

式(Expression)の定義

JShellでは、有効なJavaの式であれば何でも入力できます。算術演算、文字列操作、メソッド呼び出しなどが含まれ、入力した瞬間に評価されます。評価結果は自動的にJShellが生成する変数に代入され、これらの変数には$記号が接頭辞として付与されます。

jshell> 10 * 5
$1 ==> 50

jshell> 77 % 3
$2 ==> 2

jshell> $1 + $2
$3 ==> 52

jshell>

上記の例では、「10 * 5」の結果が自動的に変数$1に、「77 % 3」の結果が$2に格納されています。さらに、既存の変数$1と$2を組み合わせた新しい式も評価でき、その結果は$3に保存されます。

変数(Variable)の定義

JShellで定義する変数は、通常のJavaプログラムで定義する場合とまったく同じです。一度変数を定義すれば、そのセッションが終了するまでスコープ内に存在し続けます。

jshell> String str = "Tutorialspoint"
str ==> "Tutorialspoint"

jshell> str
str ==> "Tutorialspoint"

jshell>

文字列型の変数「str」を定義した後、再度参照しても同じ値が保持されていることがわかります。

メソッド(Method)の定義

メソッドも、Javaクラス内で定義するのと同じ要領でJShellに定義できます。JShellセッション内で作成されたメソッドは、そのセッションを終了するまでいつでも何度でも呼び出すことが可能です。

jshell> int sum(int x, int y) {
   ...> return x + y;
   ...> }
| created method sum(int,int)

jshell> sum(10,20)
$2 ==> 30

jshell>

複数行にわたるメソッド定義では、継続行を示す「...>」プロンプトが表示され、定義の完了後に「created method」というメッセージが出力されます。その後、定義したメソッドsum()を呼び出すと、計算結果が自動的に変数$2に格納されます。

まとめ

JShellを使えば、式の評価、変数の定義、メソッドの作成をすべて対話形式で素早く試すことができます。コンパイルや実行環境の構築なしにJavaコードを検証できるため、APIの動作確認や学習用途において非常に強力なツールです。

  1. Java 9のJShellでスニペットを保存・編集・削除する方法

    Java Shell、通称JShellは、Java 9で正式に導入された公式のREPL(Read-Evaluate-Print-Loop)ツールです。対話型シェルを提供し、main()メソッドを作成したり、コードを実行前にコンパイルしたりすることなく、迅速なプロトタイピングやデバッグを行うことができます。JShellは、コマンドプロンプトで「jshell」と入力するだけで簡単に起動できます。この記事では、JShellで作成したスニペット(コード断片)を保存、編集、削除する方法を解説します。スニペットを保存する(/save)スニペットのソースコードをファイルに保存するには、「/save [-al

  2. Javaの定数とは?finalキーワードを使った定義方法を徹底解説

    定数とは何か定数(constant)とは、一度値を代入すると、その後変更することができない変数のことです。Javaには定数を直接扱うための組み込み機能は用意されていませんが、「final」キーワードを使うことで簡単に定数を実現できます。定数を使うメリット定数を活用することで、プログラムの意図が明確になり、コードの可読性が大きく向上します。他の開発者がコードを読んだときにも、値が変わらないことが保証されているため、理解しやすくなります。さらに、定数はJVM(Java Virtual Machine)やアプリケーションによってキャッシュされるため、パフォーマンスの向上にもつながります。finalキ