近年、プログラミングの注目度は一気に高まり、プログラミングを学習してエンジニアになる方が急増しています。そんな中Javaについて色々と調べていると、Javaってそもそも何なんだろう・・・・。Javaで何ができるようになるんだろう。 と疑問に思う方もいるのではないでしょうか。
この記事では、そもそもJavaとはどういったプログラミング言語なのか?
次の3つについて解説していきます。
・Javaの特徴・用途
・Javaで作れるもの
・JavaでRPGゲーム
Javaとは?
Javaとは、プログラミング言語の一つ。現在、200種類以上のプログラミング言語がある中で、昔から良く使われており、Googleが開発に用いている「Google三大言語(Java、C++、Python)」の一つでもあります。応用力がある言語として昔から根強い人気を誇り、日本でも昔から変わらず人気が高い言語です。
Javaの人気が根強いのは、基本的にどんな環境でも使える言語だというのが大きいでしょう。システム開発、Web開発、アプリケーション開発と、使える場面が多岐にわたり、さまざまな開発に利用されているからです。特に、大企業での大規模システム開発やAndroidアプリの開発を得意としています。
また、Javaがさまざまなプログラミング言語の元になっているのも、ほかの言語と比較して優れている点です。
ちなみに、Javaによく似た名前のプログラミング言語に、JavaScriptがあります。実はこの2つ、名前こそよく似ていますが、全く別のプログラミング言語です。
Javaは業務システムやWebサービス・Android向けアプリの開発に使われますが、JavaScriptはWebブラウザで上で色を変えたりポップアップ表示をさせるというよな、動きがあるWebページの開発に使われることが多い言語です。
Javaの特徴
Javaの主な特徴は、次のとおりです。
・どんなコンピュータでも使えること
・オブジェクト指向であること
どんなコンピュータでも使えること
Javaの最大の特徴は「JVM(Java Virtual Machine:Java仮想マシン)」で動いていることです。Java仮想マシンとはその名前の通り、Javaのために擬似的に作り出されたマシンのこと。このマシン上で、Javaは動作します。
Javaは、Java仮想マシンが動作するコンピュータならどんなコンピュータ上でも利用できます。
OSがMacでもWindowsでもLinuxでもOK。どんな環境でもJavaは動作するのです。
オブジェクト指向であること
Javaを使ってプログラムを作るには、どんな小さなものでも「オブジェクト指向」という考え方が必要になってきます。
オブジェクト指向とは?
オブジェクト指向とは、モノ(オブジェクト)同士を関係させ、組み立てていくプログラミングの考え方のこと。
Javaで開発できるもの
Javaを使えば、主に下記の6つを開発できます。
1.業務システム開発
2.Androidアプリ開発
3.Webアプリケーション
4.Webサイト
5.ゲーム開発
6.組み込みシステム
1.業務システム開発
Javaで制作できるアプリの代表的なものに「業務システム」があります。オンラインで動作するもので、例えば運送会社の配送システムや、金融の取引システムなどもJavaで作られています。業務システムでは多数の情報を管理するためにデータベースを使用します。
2.Androidアプリ開発
Googleが提供するAndroid自体がJavaで動いており、Androidアプリを作る時にもJavaを使います。
3.Webアプリケーション
Javaは、業務システムのような組織内のシステムだけでなく、Webサービスを支えるアプリの開発もできます。Twitterのような大規模なWEBサービスなどもJavaで開発できます。
4.Webサイト
Webサイトを介したさまざまなWebサービスは、現代の暮らしになくてはならない存在です。 Webサイトはさまざまな言語を組み合わせて構築されており、ユーザーが目にする画面(フロントサイド)に表示されるのはHTMLやCSSといった言語が使われていますが、処理を行うサーバー側(バックエンド)のプログラムにはPHPやRuby、Javaが使われていることが多くあります。
5.ゲーム開発
Javaではゲーム開発もできます。人気のクラフトゲーム「Minecraft」は、Javaで開発されています。
6.組み込みシステム
Javaの開発が始まったのは1991年のこと。開発のきっかけは、実は家電製品でした。当時はC++を使い開発されることが多かった家電製品やカー用品でしたが、家電製品の進化に合わせてプログラムを書き替えねばならず、困難を極めていたのです。
1996年、初めてJava1.0が発表され、以来、多くの家電製品に組み込まれるシステムにJavaが使われるようになりました。ブルーレイディスクプレーヤーやカーナビゲーションシステム、洗濯機や冷蔵庫、テレビなど多くの家電製品でJavaが採用されています。
Javaのメリット
Javaを学ぶメリットは、主に次の3つです。
・言語として高性能
・人気が高く日本語の参考記事や書籍などが多い
・求人数が多く仕事に直結させやすい
言語として高性能
Javaは人気の言語であるRubyやPHPなどのWeb系プログラミング言語に比べると、少し学習難易度が高いのですが、その分言語として高機能な性能を持ちあわせています。例を挙げると下記になります。
・プラットフォームに依存しない
・開発効率と保守性が高い
・ライブラリが充実している
Javaは、JVM(Java Virtual Machine:Java仮想マシン)が入っているパソコンであれば、OSに依存せず、ほぼ同じコードで動かせます。また、ライブラリが豊富なので、「これがしたい」と思いついたことに複雑な処理が必要な場合でも、すでに便利なライブラリがあったりします。
どんなに小さなプログラムを作る時でも、Javaを使う時はオブジェクト指向という考え方が必要です。オブジェクト指向は、現代のプログラミングでは必要不可欠な考え方。Javaを学べば自ずとオブジェクト指向を身につけられるでしょう。
人気が高く日本語の参考記事や書籍などが多い
Javaは多くの人が使っていて人気が高い言語だからこそ、プログラミング学習をする際に参考に見るサイトなどが多いということも表しています。簡単なエラーなら、日本語で検索すればだいたい解決できます。
日本語での参考情報が多いので、応用的な開発も進めやすいという特徴も。Javaの基本を押さえていれば、ネットを使って自分で調べて、開発を先へと進めていけます。Q&Aサイトを見ても、Javaをキーワードにした質問の数はとても多く、そこから情報を集められるのは大きなメリットの1つです。
求人数が多く仕事に直結させやすい
ここまで説明してきたように、Javaは、人気やシェアが他の言語に比べて圧倒的に高い言語。トレンドに左右されず、10年以上前から人気が高い言語です。さらに、活用できる幅が広いというのも大きなメリットです。
Javaのデメリット
Javaでも動作しない環境がある
Javaの最大の特徴であるJVM(Java Virtual Machine:Java仮想マシン)ですが、JVMが入っていないパソコンでは、当然ですがJavaは動きません。
Javaのオブジェクト指向・設計に手間がかかる
Javaは、学習開始から習得できるまでに、大幅な時間がかかる言語です。プログラミング言語の仕組みを理解することが難しいというのは勿論ですが、仕事にするためには学習範囲はプログラミング言語の学習だけにとどまらないからです。
オブジェクト指向で開発するJava言語は、オブジェクトを作成する必要があります。そのため、簡単な機能を作るだけなら、かえって手間がかかってしまいます。中途半端な技術で下手な設計をすると、根本から作り直すような状況に陥る可能性も。ネットワークやハードウェア系の知識がないと「仕事として成り立たない」こともあります。
Javaでプログラムを実行してみよう!
Javaで実際にプログラムを書いてみる!
まずはJavaでプログラムを書きます。HTMLなら.html、CSSなら.css、そしてJavaファイルの拡張子は「.java」です。
まずは簡単なRPGゲームを作成してみます。
コピペで実行できると思うので良かったら試してみてください。
import java.util.Scanner;
public class SimpleRPG {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("簡易RPGを始めます!");
System.out.print("プレイヤーの名前を入力してください: ");
String playerName = scanner.nextLine();
int playerLevel = 1;
int playerHP = 100;
int playerMaxHP = 100;
int playerExp = 0;
int playerExpToLevelUp = 100;
String playerWeapon = "木の剣";
while (true) {
System.out.println("===========================");
System.out.println(playerName + " (Lv." + playerLevel + ")");
System.out.println("HP: " + playerHP + "/" + playerMaxHP);
System.out.println("Exp: " + playerExp + "/" + playerExpToLevelUp);
System.out.println("武器: " + playerWeapon);
System.out.println("===========================");
System.out.println("1. 戦う");
System.out.println("2. 休息する");
System.out.println("3. ゲームを終了する");
System.out.print("選択してください: ");
int choice = scanner.nextInt();
if (choice == 1) {
int monsterHP = 50;
System.out.println("モンスターが現れた!");
while (monsterHP > 0 && playerHP > 0) {
// プレイヤーの攻撃
int playerDamage = (int) (Math.random() * 20) + 10;
monsterHP -= playerDamage;
System.out.println(playerName + "が" + playerDamage + "のダメージを与えた!");
// モンスターの攻撃
if (monsterHP > 0) {
int monsterDamage = (int) (Math.random() * 15) + 5;
playerHP -= monsterDamage;
System.out.println("モンスターが" + monsterDamage + "のダメージを与えた!");
}
}
if (playerHP <= 0) {
System.out.println("ゲームオーバー! " + playerName + "は力尽きました...");
break;
} else {
System.out.println("モンスターを倒しました!経験値を獲得しました!");
playerExp += 50;
if (playerExp >= playerExpToLevelUp) {
playerLevel++;
playerExp = 0;
playerExpToLevelUp *= 2;
playerMaxHP += 50;
playerHP = playerMaxHP;
System.out.println("レベルアップ!HPが全回復しました!");
}
}
} else if (choice == 2) {
playerHP = playerMaxHP;
System.out.println("休息してHPが全回復しました!");
} else if (choice == 3) {
System.out.println("ゲームを終了します。お疲れ様でした!");
break;
} else {
System.out.println("無効な選択です。もう一度選択してください。");
}
}
scanner.close();
}
}
Javaで書いたソースコードをコンパイルする
書いたソースコードをJVMが実行できる形式に変換します。これをコンパイルといいます。コンパイルするには、ターミナルでプログラムのある場所に移動し、下記のコマンドを実行します。
>javac プログラムファイル名
先ほど作成したSimpleRPG.javaを、Windows付属のターミナルであるコマンドプロンプトを使用してコンパイルしてみます。
コンパイルするとフォルダの中に拡張子が「.class」のSimpleRPG.classファイルができています。
Javaで出来上がったクラスファイルを実行する
最後にクラスファイルを実行します。ターミナルで下記のコマンドを実行します。
>java クラス名
「cd C:\Users\java」エクスプローラーの階層をコピーして「cd」の後にコピペします。
ターミナルにファイルがある場所を確認させる作業です。「cd ○○・・・」はよく使いそうなので覚えておきましょう。
そしてターミナルに「java SimpleRPG」と入力することでいよいよコードが実行されます。
>cd C:\Users\java
>java SimpleRPG
[実行結果]
実行!簡単RPGゲーム開始!!
「java SimpleRPG」と入力して「Enter」キーでゲームが始まりました!
1を入力して「Enter」キー。戦ってみます!
休息すると体力が全回復するので死ぬまで休まずに働いてみた。
途中でレベルが上がりしぶとく生きていたがとうとう力尽きた。
???「ゲームオーバー・・・勇者あきよ、死んでしまうとは情けない。」
とここで気が付いたがプレイヤーネームがおかしい・・ん?
名前を日本語で入力していたのが原因・・これは恥ずかしいミス、、!
おすすめ情報!
今回、お仕事の関係でJavaを触る機会がありJavaについて調べたり、実際にコーディングしてみたりしたがJavaおもろい!!僕が初心者のころ、プログラミングってどんなか考えていたのはJava系だったと思う。だが、やはり素人の知識には限界がある、、!と感じた。
もちろん独学でやっていける天才もいると思うが僕は天才じゃなかったので必要な知識を調べるだけで時間を浪費したり、これは効率悪いなと・・・
ぶっちゃけると独学の知識だけじゃ現場では通用しないですよね、、!
そこでいま、誰かに教わりたい方必見です!
『ウズウズカレッジ』開発エンジニアを目指す未経験者を対象とした就職サポート付きITスクールです。
月額44,000円(税込)〜破格のサブスクモデル〜 もっと気軽にITスキルを身につけたいけど、どれも高額でなかなか手が出ない…。 そういったIT学習希望者は世の中にたくさんいます。 弊社では、もっとお手頃に、気軽に、自分のペースでITスキルを身につけられるサービスです。
他にも「あみだくじ」や「迷路」などいろんなゲームが簡単に作成できます!
そちらも記事にしていきますのでどんなゲームか気になったらぜひ読んでみてね!
今日はここまでです!以上
コメント