【Java】変数とは?宣言方法や使い方まとめ【現役エンジニアが解説】

2021年12月5日

シン

フリーランスエンジニア【経歴】新卒で配送業▶︎販売員▶︎プログラミングスクール卒業▶︎会社員プログラマー1.5年▶︎独立|保有資格:Oracle認定Java Silver|サイトのテーマ:市場価値の高いITエンジニアを輩出する|大阪在住29歳

本記事の内容

  • Javaの変数の概要
  • Javaの変数の使い方7STEP
  • Javaの変数と定数の違い

プログラミングでは変数が使用されます。変数とは一体何で、どのような役割があるのでしょうか。今回はプログラミング言語Javaの変数について解説してまいります。

僕自身は大阪のWebシステム開発会社で、現役のJavaエンジニアとして勤務していますので、これからお伝えする情報の信ぴょう性はあるかと思います。

本記事をお読みいただければ、Javaの変数についての基本を押さえることができるでしょう。

先に結論を言うと、変数とは、データを入れておく為の場所になります。

変数はプログラミングをする上で必要不可欠なものですので、ぜひこの記事で理解を深めてみてください。

Javaの変数の基本概要

まずはJavaの変数の基本概要を解説いたします。

  • 変数とは
  • 変数のデータ型一覧
  • 変数の命名規則

その①:変数とは

変数とは、データを格納しておく場所のことを言います。よく箱のイメージに例えられますね。変数に数値や文字列などのデータを入れておくことで、後から変数を使って値を呼び出したり、使い回すことができます。プログラミングをする上で、変数は必要不可欠のものです。

その②:変数のデータ型一覧

変数には、数値や文字列、trueやfalseといった真偽値等のデータ型が存在します。データ型とは、主に下記の通りです。

String文字列型4バイト
int整数型4バイト
booleanブーリアン型1バイト
byteバイト型1バイト
short短整数型2バイト
long長整数型8バイト
double倍精度浮動小数点数型8バイト
float単精度浮動小数点数型4バイト
char文字型2バイト

データ型は、どんな値を入れるのかによって使い分けていきます。Javaでは、Stringとintとbooleanがよく使われますね。

その③:変数の命名規則

変数は、基本的に誰が見てもわかりやすいような名前にすべきです。とはいえ、わかりやすければいいと言うわけではなく、変数には命名規則があります。命名規則は下記の通りです。

  • 先頭は数字から始めることはできない
  • 単語間は先頭を大文字にする

変数は日本語をつけることもできますが、多くの現場では英数字で付けられることが多いです。

Javaの変数の使い方【7STEP】

実際に変数の宣言から、簡単な計算方法について解説していきます。

以下の7STEPで解説します。

  • 変数の宣言方法
  • 変数の宣言場所
  • 変数の初期化
  • 変数の上書き
  • 変数の比較方法
  • 変数で計算する方法

順番に見ていきましょう。

STEP①:変数の宣言方法

変数を使うにはまず、変数の宣言をします。宣言は、下記のようにします。

データ型 変数名 ;

変数はデータ型を記述した後に、変数名をつけていきます。最後は必ずセミコロン(;)をつけるルールとなっています。

下記は実際の変数宣言の例です。

String str;
int num;
boolean flg;

STEP②:変数の宣言場所

では変数は実際にどこに宣言すればいいのでしょうか?変数は、フィールド、もしくはメソッドの中に記述します。

class Test1 {
  static int num; // ここがフィールド
  
  public static void main(String[] args) {
   int num; // ここがメソッドの中
  }
}

STEP③:変数の初期化

変数の初期化とは、宣言した変数に初期値を代入することを言います。こちらは下記をご覧ください。

int num;
int num = 0;

上記の通りです。ちなみに変数の宣言と初期化は、同時にすることもできます。

int num = 0;

一つ注意点としては、クラスのフィールドに宣言した変数は、自動的に初期化される点です。

class Test1 {
  static int num;
  
  public static void main(String[] args) {
   System.out.println(num);
  }
}

上記はフィールドに宣言した変数です。上記を実行すると、初期化を行なっていないですが、値が出力されます。

実行結果:

0

もう一つ、わかりやすい例をあげていきます。下記は、メソッドの中に宣言した変数です。こちらも初期化を行なっていないですが、先程のフィールドに宣言した変数とは別に、エラーが発生します。

class Test1 {
  static int num;
  
  public static void main(String[] args) {
   System.out.println(num);
  }
}

実行結果:

>javac Test1.java
Test1.java:5: エラー: 変数numは初期化されていない可能性があります
   System.out.println(num);
                      ^
エラー1個

フィールドに宣言した変数は、自動的に初期化されます。そしてメソッドの中に宣言した変数は、自動的に初期化されません。この違いにより、メソッドの中に宣言した変数はエラーが出てしまったということになります。もしこれが大規模なシステムとかであれば、大変なことになってしまいますね。

なので変数は必ず使う時だけ宣言をし、初期化をしておきましょう。そして使わなくなった変数は、消しておきましょう。

STEP④:変数への値の代入方法

変数に値を代入する方法についてみていきましょう。

class Test1 {
  static int num;
  
  public static void main(String[] args) {
   num = 10;
   System.out.println(num);
  }
}

上記を解説しますと、フィールドに宣言した変数numに、mainメソッドで10を代入しています。そしてnumを出力した結果が下記になります。

実行結果:

10

他にも、メソッドで宣言した変数に値を代入することも可能です。

class Test1 {

  public static void main(String[] args) {
   int num = 0;
   num = 100;
   System.out.println(num);
  }
}

上記はメソッドで変数numを宣言し、同時に初期化を行い、次に100を代入しました。

実行結果:

100

STEP⑤:変数の上書き

変数の上書きについてみていきましょう。変数は一度値を代入したとしても、同じ変数に再度値を代入することで、値の上書きをすることができます。

class Test1 {

  public static void main(String[] args) {
   int num = 0;
   num = 100;
   num = 10000;
   System.out.println(num);
  }
}

上記は変数numに100を代入した後に、10000を再代入しています。こうすることで、最初に定義した変数numに入っていた100の値が、10000に上書きされます。

実行結果:

10000

STEP⑥:変数の比較方法

変数の比較方法について解説していきます。プログラミングでは、変数の値を比較することがよくあります。たとえば変数Aの値はBよりも大きいかどうか比較したい時とかです。わかりやすい例をあげるなら、Web画面で入力された年齢が20歳未満かどうかを知りたい時も、比較が用いられますね。

そして変数の比較は、関係演算子というものを使用していきます。

演算子役割
>a > baがbよりも大きければtrue。それ以外はfalseになる。
<a < baがbよりも小さければtrue。それ以外はfalseになる。
>=a >= baがb以上であればtrue。それ以外はfalseになる。
<=a <= baがb以下であればtrue。それ以外はfalseになる。
!=a != baとbが等しくない場合はtrue。それ以外はfalseになる。
==a == baがbと等しければtrue。それ以外はfalseになる。

では実際に比較してみます。

class Test1 {

  public static void main(String[] args) {
   int a = 10;
   int b = 15;
   
    System.out.println(a > b);
    System.out.println(a < b);
    System.out.println(a >= b);
    System.out.println(a <= b);
    System.out.println(a != b);
    System.out.println(a == b);
  }
}

実行結果:

false
true
false
true
true
false

STEP⑦:変数で足し算などの計算方法

変数を使って計算をする方法を解説していきます。プログラミングで計算をするには、四則演算子を活用していきます。四則演算とは、足し算や引き算、掛け算や割り算のことです。

演算子役割
+足し算
-引き算
*掛け算
/割り算
%割り算の余り

では四則演算を用いて計算を行っていきましょう。

class Test1 {

  public static void main(String[] args) {
   int a = 6;
   int b = 3;

    System.out.println(a + b);
    System.out.println(a - b);
    System.out.println(a * b);
    System.out.println(a / b);
    System.out.println(a % b);
  }
}

実行結果:

9
3
18
2
0

足し算と引き算は簡単ですね。掛け算に関しては、数学では×が用いられますが、プログラミングでは*が使われます。また%は割り算の余りの値が求められます。

補足ですが=は数学では等しいという意味になりますが、プログラミングでは代入を意味しています。x = 10;は、数学ではxと10は等しいですが、プログラミングでは10をxに代入するということです。

ここまで理解できれば、基本は押さえられています。変数の使い方は以上です。

Javaの変数と定数(final)の違いとは

変数は値を再代入して、中身の値を変えることができるという解説をしました。一方、定数は中身の値を変えることができないものになります。ここでは定数について解説していきますね。

変数と定数の違い

変数は中身の値を上書きすることができますが、定数は値を変えることができません。定数は決まった値を入れて、その値を上書きされたくない場合に使用します。

定数は下記の様にfinalを付けて定義します。

final データ型 変数名 = 値;
final int a = 6;

では実際に定数を上書きしようとしてみます。

class Test1 {

  public static void main(String[] args) {
    final int a = 6;
    a = 10;
    System.out.println(a);
  }
}

実行結果:

>javac Test1.java
Test1.java:5: エラー: final変数aに値を代入することはできません
    a = 10;
    ^
エラー1個

上記の通りで、エラーが発生しました。

定数を使うメリット

定数は、クラスやメソッドに使うこともできます。定数を使うメリットは、クラスを継承されたくない場合や、メソッドをオーバーライドされたくない時に役立つ点です。開発の規模が大きくなると、予期せぬ代入がされてバグが発生してしまう可能性がでてきます。そんな時に定数が役に立つということです。

Javaの変数の使い方:まとめ

Javaの変数について解説してまいりました。プログラミングにおいて変数はよく使われますので、繰り返し読んで覚えてみてくださいね。

今回は以上です。