このコンテンツでは深く扱いませんが、ざっくりとJavaを使う上で前提となる知識を復習しておきましょう。
Javaのソースコードとなるファイル名は、クラスと同じにしなければいけません。また大文字と小文字を組み合わせたクラス名になることも覚えておきましょう。
注意点として、日本語のファイル名を付けることは避けましょう。
ちなみに、Javaの最新バージョンである21からクラスやpublic static void main()
を略記が使えます。
クラスを省き、void main()
と書き換えられますが、バージョンによって動かない場合があるので、基本的に伝統的な書き方で進めます。
そもそも変数についてイメージが曖昧な人は、**「値(データ)を入れて保持するための箱」**をイメージすればOKです。
その箱の中にある値を使いたいときに使う、そのために変数が必要ということになります。
では早速、変数宣言をしてみましょう。
このように、name
という名前で変数を宣言した後、値(データ)を代入(箱に入れる)して使えるようにしました。
これをコンパイル(コンピュータ用に変換)してみると、以下のようになります。
結果として、「私の名前は山田太郎です。」が出力されます。
先述のコードで、変数宣言においてname
という名前にしましたが、String
というデータ型を示しています。
データ型とは、プログラムが理解できるデータの種類を表現したものです。Javaは、静的型付け言語という種類のプログラミング言語のため、変数宣言にはデータ型も一緒に宣言します。
よく使われるデータ型には以下のようなものがあります。
true
、またはfalse
で表現される真偽値データ型は変換できます。しかし、いくつか悪手が存在するため、頭に入れておきましょう。
まず、基本的な考え方を示します。以下のように、宣言した型として代入する必要があります。
上記のように、宣言した変数に対して、代入される値が宣言時の型以外のものだとエラーが出ます。
ただし絶対的なものではなく、Javaが良きに計らってくれるケースもあります。その例は以下です。
まず、float
型の変数a
は、本来であれば2.0f
のように書きます。しかし、これをJavaは自動的に読み取って2.0f
として扱ってくれるのです。
さらに、double
型の変数b
にfloat
型の変数a
を代入しています。これもまた、自動的にdouble
型である2.0
として扱ってくれます。
これは、Javaの数値を扱う型における許容量の大きさに基づく自動変換です。
大きさは以下のような関係にあります。
キャストという強制的にデータ型変換するテクニックもありますが、基本的に使用禁止と考えてください。
データの欠損が発生する可能性もあるため、キャストが必要な時点で、正しい変数宣言とデータ型の使用ができていないと認識しましょう。
コードレビューで指摘できるように、キャストの使い方を下記に例として挙げます。
出力結果を見るとわかる通り、4.5
の内、小数点以下である.5
が欠損します。
Javaには、変数名として使ってはいけない単語が存在しています。
これを予約語と呼び、Javaでは特別な意味を持つため、変数名として利用できません。
たとえば、先ほどのコードにも出てきたpublic
やclass
、static
、void
などは予約語です。以下に一覧を列挙します。
Javaの予約語 | ||||
---|---|---|---|---|
abstract | continue | for | new | switch |
assert | default | goto | package | synchronized |
boolean | do | if | private | this |
break | double | implements | protected | throw |
byte | else | import | public | throws |
case | enum | instanceof | return | transient |
catch | extends | int | short | try |
char | final | interface | static | void |
class | finally | long | strictfp | volatile |
const | float | native | super | while |
さらに、変数には「初期化」と呼ばれる書き方と、「定数」と呼ばれる書き方があります。
これらも簡単に見ていきましょう。
まずは変数の初期化です。
最初に見たコードでは、name
の後に値を代入していましたが、今回のage
には最初から値が入っています。
この書き方のことを「変数の初期化」と言います。1行にまとめられるのですっきりとした書き方ができます。
次に定数です。 通常、変数は再代入が可能となっています。例を見てみましょう。
このように、先に宣言したage
を上書きできます。
プログラミングでは、宣言したいけど上書きを許可したくない、という場面が数多く登場します。そういったときに使えるのが定数です。
例を見てみましょう。
これをコンパイルしてみましょう。
そうすると、以下のようなエラーが出ます。
このように、コンパイル時にエラーとして出力されるようになります。
定数として定義しておけば、コンパイル時に気づくので変更したくない値に対してミスしなくなります。
今回はJavaの変数宣言を紹介しましたが、これからプログラミングを勉強するというときにはどの言語でも変数宣言を使います。
先に説明した通り、Javaは静的型付け言語のため、データ型を書いてあげなければいけないという一手間が必要ですが、これは安全性の高いプログラミングにおいて非常に重要です。
慣れてくると、いつ定数を使えばいいか、どのように変数を使っていけばよいかが自然と身につくので、頭でしっかり書き方を覚えておきましょう。