Java言語のコメント、基本データ型と変数、参照型、リテラルについて学習します。
カリキュラムのサンプル コードは、「Javaコードの実行」に示す手順で実行して確認できます。コメント
コメントには 「//
」で始まる1行だけのコメントを書く行コメント、「 /*
」と「*/
」 で囲まれた複数行のコメントを書くブロックコメントがあります。
// これは行コメントです。
/* これはブロックコメントです。
1.
2.
*/
基本データ型と変数
基本データ型は次の通りで、それぞれのデータのビット長が異なります。
- boolean : true または false。真偽値
- char : 16ビットの整数(0~65535)として文字を表現
- byte : 符号付8ビット整数
- short : 符号付16ビット整数
- int : 符号付32ビット整数
- long : 符号付64ビット整数
- float : 32ビット浮動小数点数
- double : 64ビット浮動小数点数
変数は、数値や文字列などを保存でき、また変数に保存した値を取り出して参照できます。
変数の宣言として、それぞれの変数を区別するために変数名を付ける必要があります。そして変数に格納される値のデータ型を指定します。格納する値があらかじめ決まっている場合は、変数の宣言と同時に値を代入できます。
boolean flag = 1;
char c1 = 'も';
byte b = -128;
short s = 32767;
int i = 10;
long l = 100;
float f = 1.1234F;
double d = 1.1234;
配列は、複数の同じ型の変数(=要素)を並べて集めたもので、配列で定義された変数が配列変数となります。
例えば、int型の配列(要素数は10個)を作成する例を次に示します。配列を表すには、基本データ型名の後ろに「[]」を付与します。
int[] data = new int[10];
格納されたデータにはそれぞれ「インデックス」(=複数ある要素から1つを特定することが出来るように、要素には先頭から順に割り当てた番号)が付与されます。要素のインデックスは「0」からスタートし、要素数が10個の配列では、インデックス「0」~「9」で要素にアクセスできます。
data[0] = 10;
System.out.println(data[0]); // 結果:10
int型の配列(要素数は10個)を配列変数「data」として定義し、インデックス「0」に「10」を設定した場合を説明すると、次のようになります。
配列のサイズは「length」フィールドで取得できます。
System.out.println(data.length); // 10
配列は宣言時にまとめて初期化できます。たとえば、次のように要素として1、2、3、4、5を持つint型の配列を作成します。
int[] data2 = { 1, 2, 3, 4, 5 };
配列の要素として配列を指定でき、これにより、多次元配列を生成できます。多次元配列にアクセスするには、次元の数だけブラケットを連ねます。次のサンプルコードでは、「 data3」は二次元配列で定義され、
int[][] data3 = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
System.out.println(data3[0][2]); // 3
上記のサンプルコードでは、次のように処理し、「data3[0][2]」により「3」を取得します。
参照型
参照型は、基本データ型と違って変数がデータを持つのではなく、データの保存されている参照値を持ちます。基本データ型と参照型の比較を次に示します。
参照型は、値を代入して利用するためにオブジェクトの生成(オブジェクト化)が必要になり、先に述べた配列の他、クラスなどがあります。
クラスについて説明します。クラスはオブジェクトの設計図となるプログラムで、クラスに属する変数を記述するフィールドと実行可能なコードを記述するメソッドで構成されます。実際に使用する場合には、クラスをnew演算子を使用して、オブジェクト化してオブジェクトを作成します。このオブジェクト化を複数回数実行すると、その実行ごとにオブジェクトが作成できます。
参照型であるクラスとしてラッパークラスについて説明します。
基本データ型にはクラスのようにメソッドは用意されていませんので、基本データ型に対して操作を行ったりすることはできません。ラッパークラスは、基本データ型の値を持つことができ、色々なメソッドを用意したクラスが用意されています。
次のように基本データ型毎に対応するラッパークラスがそれぞれ用意されています。
基本データ型 | ラッパークラス |
---|---|
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
次のように基本データ型からnew演算子を使用してオブジェクトへ変換します。次のサンプルコードでは、「num」に「5」が設定され、この変数をIntegerでnewしているので、「i」には「5」が設定されます。
int num = 5;
Integer i = new Integer(num); // i = 5
「intValue」メソッドはオブジェクトが持つ値を int 型の値として返します。また「 Integer 」クラスには値を long 型の値として返す「 longValue 」メソッドや double 型の値として返す 「doubleValue」 メソッドなども用意されています。
Integer i = new Integer(16);
int val = i.intValue(); // val = 16
リテラル
基本データ型はそれぞれ対応するリテラル表記(=特定のデータ型による値を直接表記する際の書式)を持っています。
- 真偽値リテラル : trueとfalse
- 文字リテラル : 文字型 (char 型) のリテラルは引用符 (シングルクォート) ‘ で囲み、文字列型 (String 型) のリテラルは二重引用符 (ダブルクォート) ” で囲む。
- 整数リテラル : 200や042 (0 で始まると 8 進数)、0xF3F (0x で始まると16 進数) など。普通の整数値は int 型として扱い、整数に L を付けるとlong 型。
- 浮動小数点リテラル:10 進数形式 では18.、1.8e1、180.0e-1など (eは指数部)。小数点のある数値は double 型で、 F を付けるとfloat 型。
データ設定時のコンパイルエラー
次のようにint型データにlong型データ「10L」を設定しようとするとエラーになり、インテンションが表示されます。
float f = 4.5;
int i = 10L;
いくつかの特殊文字は、エスケープシーケンス(=通常の文字列では表せない特殊な文字や機能を、決められた特別な文字の並びで表す)で表現できます。
エスケープシーケンス | 説明 |
---|---|
\n | 改行 |
\t | 水平タブ |
\r | 同じ行の先頭に戻る |
\’ | シングルクォーテーション |
\” | ダブルクォーテーション |
\0 | ヌル |
int i = 123;
int j = 0x11; // j = 17
int l = 010; // l = 8
String s = "はじめまして\nこんにちは"; // エスケープシーケンス:\n
本節の説明は以上になります。