#Java入門その1
今回はJavaとはどんな言語なのかと、簡単なプログラムを書いて見ます。
##Javaとは
オブジェクト指向型のプログラミング言語です。
特に業務用システムの構築に適していると言われていて、世界で最も使われているプログラミング言語の一つです。
###特徴
・まず、どんなコンピュータ上でも動作します。
このことをプラットフォーム非依存と呼んだりします。JavaはJava仮想マシンという擬似的に作り出されたマシン上で動作します。
わかりづらいのでGoogle Chromeを考えて見てください。
Google Chromeも似ていて、仮想OS上で動作します。そのため、windowsでもMacでも使用することができます。
Javaも同じで、Java仮想マシン上で動作します。そのため、windowsでもMacでも使用することができます。
・オブジェクト指向型プログラミング
これはC#やPythonのような、 クラスを作っていくプログラミングということです。
有名なオブジェクト指向型プログラミングに、Java,C++,Python,JavaScript,Ruby,Swiftなどがあります。(なので、これらが扱えると割と楽に理解ができます。)
引用:https://www.tiobe.com/tiobe-index/
上のように、Javaは長年好きなプログラミング一位二位をC言語争うくらいに人気です。(僕はC言語派ですが)
現に、専門学校などで学習するプログラミング言語はJavaが多いです。最近は機械学習に長けているPythonや、Webアプリケーション制作に長けているJavaScriptが支持を伸ばしていますが、Javaには到底及ばない人気があります。
###何が作れるか
・企業の業務システム
・Androidアプリ
・Webアプリケーション
TwitterはJavaで作られています。
・ゲーム
MinecraftはJavaで作られています。
まぁ、基本的に作ることができるものはPythonとかと同じですが、圧倒的に実際に企業などで使われているという面が強いです。
##実際に書いてみる
実際にJavaでHello Worldを書いて見ましょう。
VSCodeで新しくファイルを作る
↓
名前をhelloworld.javaにする
↓
次を書いてみる
class Hello{
public static void main(String[] args) {
System.out.println("hello_world");
}
}
↓
ターミナルを開いて書いたプログラムのある階層まで移動する。
↓
java helloworld.java と打ってエンターキーを押す
これでhelloworld
と出力されるはずです。
説明します。
まず、Javaでは必ずクラスを書いて、そこで関数を呼び出して実行させます。
今回はHello
というクラスを作って、そこでmain関数を呼び出しました。
System.out.println("//")
でカッコ内の文字を出力させることができます。
ちなみに、print
とprintln
の違いは改行するかしないかです。
ためしに、System.out.println("//")
とSystem.out.print("//")
を書き比べてみてください。
ex1-1
自分の名前を出力してみましょう
###mainって何
このpublic static void main (String[] args)
からはじまるブロックをmainメソッドといいます。
Javaは、必ずこのmainメソッドからプログラムが開始されます。
###classって何
pythonでは、必ずclassを書かなければプログラムが成立しない!ということはありませんでした。
しかし、Javaはひとつのプログラムに必ず一つ以上のクラスが存在しなければいいけません。
クラスがあって -> メソッド(関数)があって -> 文があります。
この形をガチガチに決められているのがJavaです。
##変数宣言
以下がJavaの主な変数です。
名前 | 値の範囲 | c#では |
---|---|---|
boolean | true/false | bool |
char | 文字 | char |
string | 文字列 | string |
int | 4バイトの整数 | int |
float | 4バイト単精度浮動小数点数 | float |
double | 8バイト倍精度浮動小数点数 | double |
うえでみてわかるとおり、変数の名前はc#とほぼ同じです。
ちなみにpythonのように動的な型付けはしてくれないので、自分で型を宣言します。
バイト、とかビット、とかはそのうちやると思うのでいまは詳しく説明しません。
気になったら調べてみましょう。
ちなみに、1バイトは8ビットというのは常識なので、覚えておいたほうが良いです。
では実際にJavaで変数宣言してみましょう。
class sample1{
public static void main(String[] args){
int number = 10;
System.out.println("numberの値は" + number + "です。");
}
}
//出力結果
numberの値は10です
あまり説明は不要かもしれませんが、int型に10をいれて出力しています。
ex1-2
・私の年齢は(/実際の年齢/)です、という文を書いてみましょう。
・floatとdoubleは何が違うのでしょうか?調べてみましょう。また、doubleでは出力できるけど、floatではエラーが起こる数字をみつけてみましょう。
##キーボードからの入力
C#やpyhtonに比べて、javaの入力はとてつもなくめんどくさいです。
pythonでキーボードから入力を待って、入力されたものを出力する文は以下のようなものでした。
x = input()
print(x)
とても簡単。これをJavaで書くと以下のようになります。
import java.io.*;//入力を使うときに必要
class input_test{
public static void main(String[] args)throws IOException{//mainの後ろにthrows IOExceptionを記述
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//お決まりで書く文
String str = br.readLine();//br.readLine()で入力を待って、strに格納する
System.out.println(str);//出力
}
}
とんでもなく長い文になりました。
import java.io.*;
public static void main(String[] args)throws IOException
BufferedReader ここの変数は何でも良い = new BufferedReader(new InputStreamReader(System.in));
を記述しなくてはいけません。
これはもう、短縮する方法とかは特にないので、そもそもこういうもんだ、と思って諦めて書くしかありません。
###入力された文字列をint型に変更する
上記のプログラムはString str
に代入されているとおり、文字型で出力しています。
int型に直すためには以下を追加します。
import java.io.*;//入力を使うときに必要
class input_test{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int nubmer = Integer.PerseInt(str);//これを追記
System.out.println(number);//numberに変える
}
}
これでString型のstrがint型のnumberに変更されました。
試しにabc
と入力して見てください。「数字を入力してくれ」というエラーが出て実行できないはずです。
ちなみに、String型をdouble型に直すには、
double num = Double.parseDouble(str);
と記述します。
ex1-3
・自分の名前と年齢を入力して出力するプログラムを書いて見ましょう。
・昨日は何月何日何曜日ですか?という画面が出力され、自分で答えを打ち込んで回答を返してくれるプログラムを書いて見ましょう。