【独学】はじめてのAndroidプログラミング – 4.2 Java言語の基礎(字句、値、変数)

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演算子を使用して、オブジェクト化してオブジェクトを作成します。このオブジェクト化を複数回数実行すると、その実行ごとにオブジェクトが作成できます。

参照型であるクラスとしてラッパークラスについて説明します。

基本データ型にはクラスのようにメソッドは用意されていませんので、基本データ型に対して操作を行ったりすることはできません。ラッパークラスは、基本データ型の値を持つことができ、色々なメソッドを用意したクラスが用意されています。

次のように基本データ型毎に対応するラッパークラスがそれぞれ用意されています。

基本データ型ラッパークラス
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble

次のように基本データ型から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

本節の説明は以上になります。

タイトルとURLをコピーしました