Java基本(変数と型)
業務で使用しているJavaについて、基本を学び直すようにしている。せっかくなので、勉強したことをnoteにまとめていきたいと思う。
今回は初回ということで変数と型についてまとめていきたい。
変数
変数の宣言
# <構文>
var 変数名 = 値
# 以下は例
var name = "田中一郎"
複合演算子
# 演算と変数への割り当てを複合した演算子
n *= 5
# 複合演算子としては以下のようなものがある
a += b # 足し算
a -= b # 引き算
a *= b # 掛け算
a /= b # 割り算
a++,++a # aに1を足す(インクリメント)
a--,--a # aから1を引く(デクリメント)
尚、インクリメントのa++は「aの値を返してから、1を足して足す」、
++aは「aに1を足してから、その結果を返す」と違うので注意。
型
変数の型
Javaは静的型付け言語のため、型を指定する必要がある。
$$
\begin{array}{l:r:r}
型&型の種類&実際の値\\ \hline
int&整数&0, 10, 400 \\
double&実数&1.41, 0.0, 3.14 \\
boolean&論理値&true, false \\
char&文字&'t', 'あ' \\
String&文字列&"test"
\end{array}
$$
int型やdouble型など小文字で始まっている型は基本型(またはプリミティブ型)と言われる。一方で、大文字で始まっているString型はクラスになっており、そういった基本型でない型をまとめて参照型という。
また、クラスとなっているString型の値には、メソッドを呼び出すことができる。
変数の型を指定する
# <構文>
型 変数名 = 値
# 以下は例
String a = "ちくわ"
ちなみに、型の代わりにvarを使用した場合は、右の値から型を推測して、変数の型が決められる。これを型推論という。
以前、業務で使用していたJVM系言語のgosuで初めて見た時、「なんぞこれ?」と思ったのは良い思い出。
文字型であるcharの特徴
char型は文字列の中の文字を扱う型になるが、これは0から65535までの整数を扱う型であり、それぞれの数値に割り当てられた文字を表現する。例えば、32という数値は小文字の「a」を表す。
数値の型変換
数値を型変換するにはキャストを使う。
# iは「123」
int i = 123
# int型の値をdouble型に割り当てても、dは「123.0」と実数になる
# 変数iに変数dを割り当てようとするとJavaではエラーとなる
double d = i
# そのため、変数dを変数iに代入するには型変換(キャスト)が必要
# キャストするには以下のようにコードを書く
int i = (int) d
# <構文>
(型) 値
文字列の数値変換
Javaでは数値型の間だけでキャストが可能となっており、他の型同士での変換にはキャストではなく、変換処理を使用する必要がある。文字列をint型にするのはInteger.parseIntメソッドを利用する。
# 文字列を数値に変換する
int a = Integer.parseInt("10")
同じようにdouble型を数値に変換するには以下のようにコードを書く。
# 実数型を数値に変換する。
double d = Integer.parseDouble("12.3")
余談だが、カンマ区切りの数字はNumberFormatクラスを使う。
java.text.NumberForamat.getInstance.parse("12,345")
数値を文字列に変換
文字列から数値の変換では、Integer .parseIntメソッドを使用したが、数値から文字列への変換も同様に変換処理が必要となる。
数値から文字列への変換はStringクラスのvalueOfメソッドを使用する。
# 数値を文字列に変換する
s = String.valueOf(123)
型の役割とは
型は単に動かすだけであれば不要で、プログラマーがしっかりと「これは文字列、あれは数値」と把握していれば十分だが、チームで開発するケースが多いJavaではプログラムを作成した人が型を把握しているだけでは十分とはいえない。
他のプログラマーがプログラムを見た時に、変数等が文字列なのか数値なのかを把握できるようにしておく必要がある。また、保守している内に変更が正しく反映されなかったり、整数を扱うはずの変数に文字列を渡していないといったことが起こることもあるので型を書くことは重要なプログラマの仕事と考えていい。
予期していない値が値として連携されていないか、型を書くことでチェックをコンピュターが行えるようにしているのが型システムのメリットとなる。
この記事が気に入ったらサポートをしてみませんか?