Java 9のJShellでクラスとオブジェクトを作成する方法をわかりやすく解説
JShellは、Java 9で新たに導入されたJavaシェルツールです。Java初の公式REPL(Read-Evaluate-Print-Loop:読み込み・評価・出力・繰り返し)アプリケーションとして提供されています。このツールを活用すると、ステートメント、ループ、式などの簡単なJavaプログラムやロジックを、その場で実行・評価することが可能です。
Java REPLはコマンドプロンプト上で手軽なプログラミング環境を提供し、入力されたコードを読み取り、評価し、その結果を出力します。コンパイルやクラスファイルの作成を意識することなく、対話形式でJavaコードを試せるのが大きな特徴です。
以下の例では、コマンドプロンプトを使ってJShell上でクラスとオブジェクトを作成する手順を紹介します。
クラスを作成する例
jshell> class Employee {
...> private String name;
...> Employee(String name) {
...> this.name=name;
...> }
...> String getName() {
...> return name;
...> }
...> void setName(String name) {
...> this.name=name;
...> }
...> }
| created class Employeeこの例では、Employeeクラスを定義しています。プライベートフィールドnameを持ち、コンストラクタとゲッター(getName())、セッター(setName())を実装しています。クラスの定義が完了すると、JShellは「created class Employee」というメッセージを表示して、クラスが正常に作成されたことを知らせます。
オブジェクトを作成してメソッドを呼び出す例
jshell> Employee emp = new Employee("Adithya")
emp ==> Employee@4b952a2d
jshell> emp.getName()
$3 ==> "Adithya"続いて、newキーワードを使ってEmployeeクラスのインスタンスを生成し、変数empに代入しています。オブジェクトの生成に成功すると、JShellはオブジェクトの参照情報を出力します。その後、emp.getName()を呼び出すことで、コンストラクタに渡した名前「Adithya」が正しく返されていることが確認できます。
このようにJShellを使えば、クラス定義からインスタンスの生成、メソッドの動作確認までを、コマンドライン上で手軽に検証できます。小さなコード断片の動作確認や学習用途に非常に便利なツールです。
-
Java 9のJShellでスニペットを保存・編集・削除する方法
Java Shell、通称JShellは、Java 9で正式に導入された公式のREPL(Read-Evaluate-Print-Loop)ツールです。対話型シェルを提供し、main()メソッドを作成したり、コードを実行前にコンパイルしたりすることなく、迅速なプロトタイピングやデバッグを行うことができます。JShellは、コマンドプロンプトで「jshell」と入力するだけで簡単に起動できます。この記事では、JShellで作成したスニペット(コード断片)を保存、編集、削除する方法を解説します。スニペットを保存する(/save)スニペットのソースコードをファイルに保存するには、「/save [-al
-
Javaで抽象クラスのインスタンスは生成できる?参照変数の正しい使い方を解説
結論から言うと、抽象クラス(abstract class)のオブジェクト(インスタンス)を直接生成することはできません。ただし、抽象クラス型の参照変数を作成することは可能です。この参照変数は、抽象クラスを継承した派生クラス(サブクラス)のオブジェクトを参照するために使われます。抽象クラスとは何か抽象クラスとは、実装の詳細を隠蔽し、機能の定義だけをユーザーに見せるための仕組みです。Javaの抽象クラスには、デフォルトの動作を実装したインスタンスメソッドを持たせることもできます。設計段階である程度の実装が確定していて、かつ一部の処理をサブクラスに委ねたい場合に、抽象クラスを選択するのが適切です。サ