Javaの変数とは?宣言方法や使い方を現役エンジニアが解説

2021年12月5日

プログラミング

シン

フリーランスエンジニア|Oracle認定Java Gold保有|全日本SEO協会認定 SEO検定全級保有(1〜4級)|プログラミング、エンジニア、SEO情報を発信|大阪在住

本記事の内容

  • 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の変数について解説してまいりました。

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

今回は以上です。

  • この記事を書いた人

シン

フリーランスエンジニア|Oracle認定Java Gold保有|全日本SEO協会認定 SEO検定全級保有(1〜4級)|プログラミング、エンジニア、SEO情報を発信|大阪在住