データ型と変数


■ 変数とは

変数は、コンピュータ内でデータを格納する場所に名前がついたものです。 プログラムを実行する際には、しばしばデータを一時的に覚えて置く場所が必要になってきます。これを変数と呼びます。変数を使う必要があるプログラムでは、あらかじめ変数を使うことを宣言して置く必要があります。これを変数の宣言と呼びます。

変数を宣言する際には、格納されるデータの内容によって宣言をする名称が少し異なります。これをデータ型と呼びます。Javaの基本データ型には、次のような型があります。

>>
型分類基本型種類データ型サイズ値の範囲初期化
基本データ型数値型整数byte8ビット-128 〜 +127値代入
short16ビット-32768 〜 +32767
int32ビット- 2147483648〜 +2147483647
long64ビット-19桁 〜 +19桁
実数 float32ビット+-1.4239846 E-45〜+- 1.4239847 E+37
double64ビット-小数以下17桁E-324 〜 E+308
文字型 文字char16ビット半角1文字
String -複数の文字
論理型論理値boolean -true またはfalse
参照型配列型 参照情報 - -基本型の連続new演算子
クラス型- -クラスおよびサブクラスから生成されたオブジェクト
インタフェース型- -インタフェースを実装するクラスから生成されたオブジェクト

上記のうちString(文字列)は、基本データ型とは多少異なります。正確には基本データ型から作られたデータ型と言えます。そのためにデータ型名の頭文字Sが大文字であることに注意して下さい。しかし、利用方法は、基本データ型と変わりありませんのでここに掲載しておきます。
識別子命名の慣例

■ 変数の宣言

変数宣言は、例えば次のようにデータ型と変数を記述します。
       int  tuki;
       String  aisatu;

      データ型   変数名;

上記では、「int型のtukiという名前の変数を定義する」と「String型のaisatuという名前の変数を定義する」の2つが記述されています。始めの行のように記述することで、tukiという名前のついたint型の数値が格納できる場所がコンピュータの中に確保されます。2行目のように記述することで、aisatuという名前のついた文字列が格納できる場所がコンピュータ内に確保されます。

このような定義をプログラムのどこに書くかということですが、次のように、一般的にはメソッドの始めの方に記述します。

public class Aisatu2{
    public static void main(String args[]) {
	String aisatu;
	int kion;

	aisatu="こんにちわ!";
	kion=24;

	System.out.println(aisatu);
	System.out.println("今日は、 " + kion + "度でとても良い秋晴れですね。");
    }
}
■ 変数の初期化

変数定義された直後には、変数内にはどのような値が入っているか分かりません。 それで、通常は確かな値を代入しておく処理をします。これを初期化と言います。 初期化は、上記のプログラム例ですと、以下の2行の部分です。
	aisatu="こんにちわ!";
	kion=24;
これは、「『こんにちわ!』という文字列をaisatuという変数に代入する」という意味です。また下の行は、「24という値をkionに代入する」という意味です。

ここでは、"等しい"という意味ではありません。=の右側の値を左側の変数に"代入する"という意味です。したがって、=のことを代入演算子と呼びます。

次のように、変数の宣言と同時に初期化をすることもできます。

public class Aisatu3{
    public static void main(String args[]) {
	String aisatu="こんにちわ!";
	int kion=24;

	System.out.println(aisatu);
	System.out.println("今日は、 " + kion + "度でとても良い秋晴れですね。");
    }
}
■ データ型の変換や操作

  1. 数値の変換
    数値を格納できるデータ型は、いくつかの種類があります。 そのため利用されている途中で、データ型を変更したい場合があります。 その場合は、次のような方法で型変換をすることができます。
    • 代入を使う
      上記のkionは整数型ですが、それをプログラムの途中で実数型に変換し、24.5度などもう少し詳しい値にしたい場合は、次のように記述することができます。
      public class Aisatu3{
          public static void main(String args[]) {
      	String aisatu="こんにちわ!";
      	int kion=24;
                        float kion2;
      
      	System.out.println(aisatu);
      	System.out.println("今日は、 " + kion + "度でとても良い秋晴れですね。");
                         kion2=kion;
                         System.out.println("今日は、 " + kion2 + "度でとても良い秋晴れですね。");
          }
      }
      
      このプログラムを実行すると、次のように表示されます。
      [egi@taro]$ java Aisatu3
      こんにちわ!
      今日は、 24度でとても良い秋晴れですね。
      今日は、 24.0度でとても良い秋晴れですね。
      [egi@taro]$ 
      
    • キャスト演算子を使う
      これは、次のように変数の前に ()でデータ型を示し、変換する方法です。
      public class Aisatu3{
          public static void main(String args[]) {
      	String aisatu="こんにちわ!";
      	int kion=24;
      
              System.out.println(aisatu);
              System.out.println("今日は、 " + kion + "度でとても良い秋晴れですね。");
              System.out.println("今日は、 " + (float)kion + "度でとても良い秋晴れですね。");
          }
      }
      
      このプログラムを実行しても、上記と同じように表示されます。

  2. 文字列の連結
    文字列と文字列をつなぎあわせて、新しい文字列を作成することができます。
              aisatu1="こんにちわ!";
              aisatu2="お元気ですか?";
              aisatu3="すっかり秋になりましたね。";
                                     :
               aisatu4=aisatu1+aisatu2;
               aisatu5=aisatu1+aisatu3+"寒いくらいです。";
    
    上記の、aisatu4には、「こんにちわ!お元気ですか?」が格納され、aisatu5には、「こんにちわ!すっかり秋になりましたね。寒いくらいです。」と格納されます。 このように、文字列が含まれた+演算は、加算ではなく文字列と文字列の連結操作となります。

  3. 数値を文字列に
    文字列の連結操作を利用して、数値型に格納されている値を文字型に変換することができます。
              int suchi=1234;
              String moji;
                      :
              moji=""+suchi;
    
    ここで、""は値のない文字を意味し、上記のmojiには、「1234」という文字が格納されることになります。

プログラミング / 江木