LINE2019.08.05今この記事をご覧になっているあなたは、Javaで挫折したと感じていることでしょう。実は私もJavaで挫折した経験があるんです。今現在はマスターしており、こうしてJavaに関する記事をたくさん書いています。そこで、僕がJavaを挫折したポイントや、克服したポイントを紹介することで、今この記事をご覧になっているあなたにとってJava克服のヒントになればと思います。インスタンスこのJavaのインスタンスを理解のがどうしてもできなくて、どうにも苦労しました。「new」って何?どうしてもこの疑問が解決できませんでした。インスタンス化はしてるけど、実はよくわかっておらず、毎回原因不明のエラーに泣かされました。インターフェース「import」文を書かないとエラーが消えない。「import」文に書かれている内容がどういう意味をもっているのかがわからない。ここでさらに挫折しました。実装クラス最後に「実装クラス」です。これはいわゆる「implements」文です。この「implements」文のあとには、インターフェースと呼ばれるクラスを記述するのですが、このインターフェースもよくわからず挫折しました。Javaを克服したポイントそんな挫折の道を辿ってきた僕がJavaを克服できたわけは、「クラス」というものを理解できたことにあります。Javaはクラスを理解するべしJavaを理解するには、この「クラス」を理解することが最重要となります。「クラス」を理解することで、オブジェクト指向も理解することができます。すべてはこの「クラス」にあると言ってもいいでしょう。クラスは部品の設計図もっというと、クラスは部品の設計図で、インスタンスは設計図を基に作られた部品です。{//車を停止させる}}「Car」というクラスを作り、車の発車・停止を行う2つの関数を作りました。これが「Car」という部品の設計図になります。{Car.run();//エラー}}実はこのプログラムだと、「13」行目でエラーになってしまいます。いうと、クラスはあくまでも設計図なので、設計図を発車させることはできませんよね。そこでインスタンスが必要になるんです。先ほどインスタンスは設計図を基に作られた部品と言いました。インスタンス化を行うことで車という部品を作ることができるんです。それが以下のプログラムになります。車を作成car.run();//これでOK}}こうすれば、設計図を基に作られた車を発車することになるので、エラーになりません。設計図の段階では車は実体化されていない、つまり構想段階ですが、これをインスタンス化することで車という実体のあるものにする。それがインスタンス化です。いう意味を持っています。これでクラスとインスタンスは理解できたでしょうか。スタティックはすでに作られた部品ではスタティックとはなんでしょうか。タイトルにも書いてある通り、スタティックはすでに作られた部品ということになります。これもOK}}「Car」が一体なんの設計図かを教える際に、「name」というスタティックな関数を用いました。スタティックで宣言すると、「name」という関数はすでに作られたものになるので、インスタンスから呼ぶ必要がありません。インスタンスから呼ぶことも可能です。いう状況でスタティックを使用するのでしょうか。スタティックはすでに作られたものと言いました。単体で使用されてもいいものということになります。人種の名前やキーコード、国の名前など、汎用的なものを表す際に使われることになります。抽象クラスは抽象的な設計図という、そのまんまのタイトルではありますが、これが真意なんです。ベンツとポルシェの設計図を書くとします。ベンツもポルシェも、どちらも「車」であるため、必ず発車・停止のプログラムは必要になります。そこで抽象クラスです。ベンツを発車させる}}「Car」クラスを「abstract」を使って抽象クラスとして宣言しました。「Benz」クラスは「Car」クラスを継承します。抽象クラス内に宣言された「abstract」関数は、継承した「Benz」クラス内で必ずオーバーライドしなくてはなりません。実はここが重要で、個人開発だとあまり恩恵を感じづらいのですが、複数人で開発する際では威力を発揮することになります。いうのも、複数人で開発する際にもし抽象クラスを使わないような設計を行っていたとすると、「車」で絶対に必要となる処理の記述で不備が出てしまう可能性が出てきてしまいます。発車・停止の処理が必ず必要なのはわかりきってはいますが、より複雑なプログラムになってくるとすべてを把握することが難しくなるので、抽象クラスを使うことでその問題を解決します。インターフェースは部品に機能を追加する次にインターフェースです。タイトルは「インターフェースは部品に機能を追加する」ですが、プログラムを見た方が理解が早いと思うので、以下のプログラムをご覧ください。ベンツを発車させる}}このように、ベンツに「空を飛ぶ機能」と「ワープする機能」を追加しました。このように、インターフェースを使うことで、ある部品に自由に追加の機能を実装することが可能になります。実装する内容もクラスによって違ったものにすることが可能なので、例えばポルシェの「ワープ機能」は3回しか使えないようにしたり、「空を飛ぶ機能」をベンツより性能を低くすることもできます。最後に、Javaはクラスの集合体であることを理解します。Javaでは数えきれないくらいのクラスが標準で装備されており、こういったクラスを駆使することで様々なアプリケーションを形作っていきます。クラスは「ただ」あるのではなく、役割によって分類がなされています。そのため、標準ライブラリのプロジェクトは無数のフォルダによって分類・管理されています。具体的には、「java」というフォルダの中に様々なフォルダが存在することになります。java.util.クラス名;こういった記述をすると思いますが、実はこれはクラスファイルのパスを示しています。いったように、Javaに存在する無数のクラスは管理されており、標準ライブラリが形作られています。あとがきいかがでしょうか。Java克服のヒントになってくれたら嬉しいです。上記の記事でも書いた通り、JavaFXが使えないと実は困るんですよね。OpenJDKではJavaFXの機能がありませんが、代わりにOpenJFXをダウンロードし、設定することでJavaFXの機能がOpeんJDJava【Java】例外処理をする時に使える「instanceof」演算子Javaで例外処理をする際に、「try-catch」文を使いますが、今回はその「catch」文の中に書くと便利な「instanceof」演算子を使ったプログラムを紹介します。instanceJava【JavaFX】簡易HTMLエディタを作りながら、JavaFXの使い方を解説JavaFXを用いた簡易HTMLエディタを作るやり方を紹介します。最終的な完成イメージはこちらです。こんな感じのHTMLエディタを作っていきます。2.0でJava【OpenJDK】Javaが有償化、でもJavaはちゃんと無償で使えます!Javaが有償化され、もうJavaは使えないのではと思う方が多いと思います。2018年9月にリリースされた「OpenJDK11」はその名の通り「オープンソース」なので無償で使用することが出来ます。このゲームではプレイヤーのHPを5として、もしHPが0になったらゲームを終了させます。HPバーは入門では扱いませんのでご了承ください。コメントをキャンセルメールアドレスが公開されることはありません。R1カテゴリーJavaJavaFXJavaScriptPythonRこのサイトの管理人IT系だんしプログラミングが大好きな人。趣味でゲームやツール製作をしながら、プログラミング記事を書き続けています。