BlueJとGreenfoot:Javaを学ぶのに最適なIDE

あなたはJavaを学びたいと言っています。それは気の遠くなるような言語かもしれません。あなたが新しいプログラマーなら、それは侵入できないようにさえ思えるかもしれません。しかし、あなたは深呼吸をして、それをやってみる決心をします。さて、まず最初に:あなたはあなたが読んだそれらの統合開発環境(IDE)の1つを必要とします。間もなく作成されるJavaアプリケーションを編集、ビルド、実行、デバッグ、およびデプロイできる単一のアプリケーション。

Eclipse、NetBeans、IntelliJのコミュニティエディションなど、人気のある無料のJavaIDEがいくつか利用できます。いずれかを選択し、ダウンロードしてインストールすると、非常に短い時間で、JavaとIDEの2つのことを学ぶ必要があることに気付きます。あなたが選んだ開発ツールは、それがあなたを助けることになっている言語と同じくらい侵入不可能です。

初心者向けに特別に設計された2つのIDEであるBlueJとGreenfootを入力してください。これらは、ロンドンのキングスカレッジに拠点を置くチームの製品です(ただし、チームメンバーは、オーストラリアとデンマークの大学に所属している場合があります)。BlueJとGreenfootの作成者は、初心者を圧倒しないように機能セットとインターフェイスデザインを選択しました。

実際、主任開発者であるNeil Brownが説明しているように、BlueJとGreenfootの機能は「...ユーザーがアクセスすると明らかになります」。あなたはプールの最深部に投げ込まれません。したがって、どちらもJava言語だけでなく、その言語でアプリケーションを構築するために必要なツールと手法を簡単に紹介します。

BlueJでJavaを学ぶ

BlueJは1999年に初めて登場し、単にBlueと名付けられました。当時、それは開発環境であり、言語でもありました。Javaが登場すると、Javaを言語として使用してツールが再構築され、名前がBlueJに変更されました。

BlueJのエディションは、Linux、MacOS、およびWindows用に存在します。BlueJも一般的な形式で提供されます。JARファイルとしてパッケージ化されているため、BlueJはJavaをサポートする任意のシステムにインストールできます。BlueJの現在のバージョン(この記事の執筆時点では4.2.2)にはJDK 11以降が必要であるため、64ビットオペレーティングシステムで実行する必要があります。以前は32ビットバージョンが存在していましたが、現在は開発されていません。

BlueJ(およびGreenfoot)が、昨年入手したRaspberry Pi 4にプリインストールされているのを見つけたとき、私は最初にそのことに気づきました。その後、BlueJが2015年からRaspberryPiにインストールされていることを知りました。

BlueJでプロジェクトを開くと、さわやかでまばらなウィンドウが表示されます。上部にメニューバー、大きなワークベンチ領域の左側にツールバー、下に小さなオブジェクトベンチペインがあります。ツールバーのボタンを使用すると、クラスを作成したり、継承関係を定義したり、クラスをコンパイルしたりできます。プロジェクトクラスは、一種の簡素化されたUML図としてワークベンチに表示されます。BlueJは本格的なビジュアル開発環境ではありませんが、プログラム内のエンティティ間の関係を確認できますが、見失うことはありません。コードの。

ワークベンチのクラスアイコンをダブルクリックすると、そのソースがエディターで開き、スコープの強調表示という別の視覚的な支援が表示されます。スコープの強調表示を使用すると、ネストされたコードブロックが文字通りさまざまな色の背景で強調表示されるため、クラスfor内のメソッド、メソッドif内のforループ、そのループ内のステートメントなどでカバーされる領域をすばやく確認できます。コード構造が即座に明らかになります。

ワークベンチでクラスを右クリックすると、新しいメニューが表示され、クラスの性質と構成に応じて、クラスをコンパイルし、その内容を調べ、対応するテストクラスを作成し(これについては後で詳しく説明します)、実行できます。クラスメソッド、またはクラスのオブジェクトをインスタンス化します。ここでは、BlueJの双方向性が中心になります。

クラスは個別にコンパイルできます。単一のクラスを変更した場合は、プロジェクト全体を再構築する必要はありません。クラスメソッドの実行を選択すると、ダイアログがポップアップし、メソッドの入力を求めるプロンプトが表示されます。入力を入力して[OK]をクリックすると、別のダイアログが表示され、戻り値とそのデータ型が表示されます。

クラスをインスタンス化すると、新しいオブジェクトを表すアイコンがオブジェクトベンチに表示されます。クラスと同様に、オブジェクトアイコンを右クリックして、オブジェクトの内容を調べることができます。個々のオブジェクトインスタンスメソッドを実行することもできます。入力引数を入力し、戻り値を表示するためのダイアログが(上記のように)表示されます。

BlueJは、デバッガーなしでは完全なIDEにはなりません。 BlueJでは、他のIDEと同じ方法でデバッガーブレークポイントを設定できます。エディターで、ターゲットのソースコード行の左側にある列をクリックするだけです。実行中にブレークポイントがトリガーされると、BlueJのデバッガーポップアップが開き、スレッド、コールスタック、ロックスタティック、インスタンス変数、および使い慣れたデバッグコントロール(ステップ、ステップイン、続行、停止)が表示されます。繰り返しになりますが、BlueJのすっきりとしたプレゼンテーションは、あなたと目前のタスクの間にありません。

上記のように、BlueJはクラスアイコンの右クリックメニューからテストクラスを作成できます。自動作成されたクラスは、スケルトンJUnitテストクラスです(JUnit 4はBlueJと統合されています)。これは、空のコンストラクター、、setUp()およびtearDown()メソッドで構成されています。エディターでクラスのソースを開いてテストメソッドを作成するか、一連のダイアログを介してテストメソッドの作成をガイドする一種の組み込みウィザードを使用できます。

同様に、BlueJは、JavaFXおよびSwingグラフィカルアプリケーションの作成を支援します。チュートリアルが提供されており、JavaFXチュートリアルを実行すると、BlueJの「ライブ」オブジェクトでメソッドを実行する機能を使用することの本当の利点が明らかになります(アプリケーションの実行中)。グラフィカルコンポーネントでメソッド呼び出しの結果を実際に確認できます。

BlueJの組み込みのインタラクティブなチュートリアルは、あなたを地面から離します。さらに多くの教材が必要な場合は、BlueJの作成者であるMichaelKöllingが共同執筆した本Objects First with Javaは、開発環境としてBlueJを使用して、Javaでのオブジェクト指向プログラミングへの初心者のアプローチを示しています。

GreenfootでJavaを学ぶ

同じ作成者であるMichaelKӧllingによってBlueJ上に構築されたGreenfootは、BlueJよりも特殊なIDEです。BlueJは大学レベルの入門プログラミングコースの設定でよく使用されますが、Greenfootは若いユーザーを対象としています。14歳という若さ。若い視聴者の注意を引き付けて保持するために、Greenfootは「シンプルなJavaIDEおよびアニメーションフレームワーク」として作成されました。つまり、ゲームを構築するためのものです。

Greenfootを理解するには、まずその用語を学ぶ必要があります。Greenfootプロジェクトは「シナリオ」です。すべてのシナリオには、ゲームの競技場である「世界」があります。「アクター」が住む二次元のコンテナです。ここで注意してください。Greenfootアクターは、同じ名前の特定の種類のオブジェクト指向の並行プログラミングエンティティではありません(//en.wikipedia.org/wiki/Actor_modelを参照)。Greenfootアクターは、ゲームの重要な要素です。

Greenfootアクターには、属性とメソッド(特性と動作)があります。アクターの特徴の1つは、そのアクターを表すために世界に表示されるアイコンです。Greenfootには、開始するためのさまざまなアクターイメージが付属しています。または、独自のイメージを作成してインポートすることもできます。

Greenfootの視覚的な配置は、BlueJの鏡像です。Greenfootのメインウィンドウは世界です。その右側には、垂直ツールバーにプロジェクトクラスの継承図が表示されます。通常、ツールバーには2つの継承「ツリー」があります。1つは基本Worldクラスをルートとし、もう1つは基本クラスをルートとしActorます。派生クラスは、これら2つのルートから分岐します。

BlueJと同様に、クラスのアイコンをダブルクリックすると、関連するソースがエディターウィンドウで開きます。GreenfootエディターはBlueJのものと同じですが、BlueJのほとんどすべてがGreenfootの下で実行されているため、驚くことではありません。そのため、GreenfootのエディターにはBlueJのスコープの強調表示があり、GreenfootのデバッガーはBlueJのデバッガーとまったく同じように機能します。

エディターでクラスを変更すると、継承図のアイコンがクロスハッチングされます。これは、オブジェクトをインスタンス化するために使用する前に、クラスを再コンパイルする必要があることを示しています。さらに、そのクラスから派生した世界のすべてのオブジェクトがぼやけて(シャープなレリーフではなくなり)、現在は古くなっていることを示します。幸い、BlueJと同様に、クラスを個別にコンパイルできます。

アクターをインスタンス化したら、そのアイコンをワールドのウィンドウペインにドラッグアンドドロップすることで、アクターをワールドに配置できます。厳密に言えば、アクターのメソッドを呼び出す前に、アクターをワールドに配置する必要はありません。アクターを右クリックして、呼び出すメソッドを選択します。メソッドに入力パラメーターが必要な場合は、パラメーターを指定できるダイアログが開きます。

俳優が動きを持っているためには、グリーンフットの世界に時間が流れなければなりません。しかし、それはデジタルの世界なので、時間は内部時計の刻みで進みます—更新ループ。2つのボタン(ActとRun)は、そのループの実行を制御します。[実行]ボタンをクリックすると、ループが1回実行されます。[実行]をクリックすると、ボタンが[一時停止]になり、ボタンをもう一度クリックして停止するまでループが実行されます。もちろん、これらのボタンは、ゲームのテストとデバッグに非常に役立ちます。

シナリオの開発セッションを一時停止する必要があり、中断したところから再開したい場合は、世界を救うことができます(これは思ったほど劇的ではありません)。Greenfootは、世界のアクターの場所と状態をキャプチャし、アクターのコンストラクターによって呼び出されるメソッドの情報をエンコードします。結論:次にGreenfoot IDEを起動したときに、ステージが再構築されます。

ゲームプレイ中に、2人の俳優が衝突するとどうなりますか?または何かが爆発しますか?ゲームには効果音が必要です。Greenfootは.wavファイルをシナリオにインポートでき、メソッドを使用すると、特定のイベントがトリガーされたときにそれらのサウンドを再生できます。GreenfootWebサイトのさまざまなチュートリアルで提供されているサウンドを借りることを妨げるものは何もありません。ただし、独自に作成したい場合は、Greenfootにサウンドレコーダーが組み込まれています。レコーダーの編集機能はシンプルですが使いやすいです。これは基本的に「キャプチャアンドトリム」システムです。

最後に、Greenfootのチュートリアルで提供されているもの以外のゲームのアイデアが必要な場合、GreenfootのWebサイトには、世界中のユーザーによって作成およびアップロードされたシナリオがたくさんあります。オンラインでプレイできるものもあります。品質は当然のことながらむらがありますが、ゲームの多様性はGreenfootの多様性を証明しています。

プロJavaプログラミングへの足がかり

作成者のMichaelKӧllingによると、BlueJは通常、大学の入門プログラミングコースで使用されますが、Greenfootは高校での使用に適しています。それでも、Javaの独学への道を歩んだばかりであれば、年齢に関係なく、どちらのIDEからも十分なマイレージを得ることができます。

すでに述べたチュートリアル以外にも、BlueJとGreenfootのWebサイトにはかなりの量のサポート資料があります。BlueJの教科書についてはすでに触れました。Greenfootの教科書、Greenfootを使用したプログラミング入門もあります。(購入情報については、Webサイトを参照してください。)

どちらのIDEも、製品対応のエンタープライズレベルのJavaアプリケーションの構築には適していません。しかし、Javaを初めて使用する人のための導入手段として、すべてのチェックボックスをオンにし、ツールバーやメニューの複雑さに負担をかけません。これらは、プロフェッショナルグレードのJava開発への堅実でスムーズな足がかりです。