Step 4: きまりごと(変数)

さて、今回はちょっと退屈な話かもしれないな。でも、覚えておかなくてはいけないJava の言語の文法についてだよ。Java言語でプログラミングをするには必要な決まり事だね!
文法ね、なんか嫌いな英語を覚えないといけないような気分になるわね。(いつも通りこの色は美樹ちゃん)
じゃあ、 わかりやすいように節に区切って説明するね。

Section 1: 変数とデータタイプ

変数は値を入れる入れ物で、プログラムの処理の過程で値を代入したり、値を参照したりする事ができる。この入れ物はメモリ上の領域で、どんな値を入れるかによって入れ物の大きさが変わる。
データタイプは、変数に入る値(データ)の型(整数や文字)のことを表します。Java言語は、C言語やC++言語と同じようにプログラム内で使用するすべての変数にどのような値が入るかをあらかじめ決めておく必要がある(変数宣言)。Java言語には、基本データタイプ参照データタイプの二種類がある。基本データタイプは整数や文字を表すための型で、以下のようなタイプがある。

基本データタイプ
値の種類
大きさ
値の範囲
初期値
 boolean 真偽
(1 bit)
true または false
false
 byte 符号付き整数
8 bit
-128 〜 127
0
 char  
16 bit
'\u0000' 〜 '\uFFFF'
'\u0000'
 short 符号付き整数
16 bit
-32768 〜 32767
0
 int 符号付き整数
32 bit
 
0
 long 符号付き整数
64 bit
 
0L
 float 符号付き単精度浮動小数点数
32 bit
仮数部 23 bit、指数部 8 bit
0.0f
 double 符号付き倍精度浮動小数点数
64 bit
仮数部 52 bit、指数部 11 bit
0.0

参照データタイプはオブジェクト(クラス、インターフェース)や配列を指す型で、クラスのインスタンスを値に持つ変数など。
基本データタイプの変数は、 その変数の領域に直接値が入るけど、参照データタイプの変数に入っている値は、実際のデータへの参照(Reference) になる。

プログラムで変数を使用する場合、変数の名前やその変数に入る値の型を使用する前に宣言しておく必要ある。宣言する場所は、使う前ならどこでもいい。しかし、変数名は、数字以外で始まる Unicode 規格の文字列でなければならない。また、Java言語がキーワードとして使用している文字列(予約語)も使用できない。名前の付け方は、変数名の先頭は小文字、クラス名の先頭は大文字を使うことが多い。

キーワード(予約語)

型を表すキーワード
boolean 論理値の型
byte 1バイトデータの型
char 文字の型
short 2バイト整数値の型
int 4バイト整数値の型
long 8バイト整数値の型
float 4バイト浮動小数値の型
double 8バイト浮動小数値の型
void 返却値がないことを表す
true
false

オブジェクトに関連するキーワード
package 所属するパッケージの宣言
import 使用するクラスやパッケージの指定
class クラス定義
interface インターフェース定義
extends 継承するスーパークラスの指定
implements 実装するインターフェースの指定
this 定義中のクラス自身
supre 定義中のクラスのスーパークラス
new コンストラクタの呼び出し
null オブジェクトが存在しない状態
instanceof 指定されたクラスのオブジェクトであるか判定

クラスやメンバーに対する修飾子のキーワード
public クラスの外からのアクセスを許可
protected パッケージ内及びサブクラスからのアクセスを許可
private クラス内のみにアクセスを許可
final 再定義できない事を示す/定数
static クラスに共通するデータ
abstract 抽象クラス/抽象メソッド
native Java 以外のモジュールに実体が存在
synchronized 一度に1つのスレッドしか入れない手続きブロックを作る
volatile スレッド間で使用される可能性のある変数
transient メンバー変数が一時的で、オブジェクトの固定的な部分ではない

制御構造に関連するキーワード
for ループブロック
do ループブロック
while ループブロック
if 条件分岐ブロック
else 条件分岐ブロック
switch 条件分岐ブロック
case 条件分岐のジャンプ先ラベルの指定
default 条件分岐のジャンプ先ラベルの指定
continue ループの先頭にジャンプ
break ループを抜ける
return メソッドの処理を抜ける

例外処理に関連するキーワード
try 例外処理の対象ブロック
catch 発生した例外に対応する処理のブロック
finally 例外の有無に関わらず実行されるブロック
throw 例外の発生
throws メソッドが発生する可能性のある例外の宣言

その他のキーワード
const 定数(使用不可)
goto 指定ラベルへのジャンプ(使用不可)

ふう〜、キーワードの一覧表作るだけでも大変だなあ〜。
たくさんあるわねえ〜。これだけキーワードがあるってことは覚えるの大変そう...
そんなことはないと思うよ、型を見ても C言語よりは、わかりやすいキーワード名になっていると思うけど(Objective-Cのキーワードに近い)。

プログラム中で使用される変数には、それが宣言された場所とどの修飾子で宣言されたかによっていくつかに分類されるんだ。それによって、その変数が利用できる有効範囲と寿命が異なるんだよ。

ローカル変数 メソッドの中、またはメソッド中のブロック(中括弧 {} で囲まれたところ)で宣言される変数。そのメソッドまたはブロック内でのみ有効で、メソッドやブロックの実行が終了すると解放される。
メンバー変数 クラス定義の中、メソッド定義の外でクラスのメンバーとして宣言された変数(クラス定義でもメソッド内で宣言された変数はローカル変数)。
宣言時に static修飾子を付けるかどうかで、クラス変数インスタンス変数かに分かれる。staticを付けるとクラス変数となり、クラスがロードされた時に作られる。そのクラスごとに共通の一つの領域が取られ、インスタンス全てがその領域を参照するので、共通の値を持つことができる。staticが無いとインスタンス変数となり、インスタンスが生成される時に作られる。インスタンスごとに別々の領域を持っている。クラス変数はクラスがアンロードされるときに解放され、インスタンス変数はインスタンスオブジェクトが参照されなくなったときに解放される。
メソッド引数 メソッドやコンストラクタに渡される引数。そのメソッドやコンストラクタ内でのみ有効で、実行が終わると解放される。基本データタイプの引数は、メソッドが呼び出されたときに値が複製されてメソッドに渡される(Passed by Value)。参照データタイプの引数は、その値が示しているオブジェクトへの参照が渡される(Passed by Reference)。
例外処理引数

例外処理に渡される引数。try文の catch節によって例外が検出された時に生成され、catchの後の例外処理を記述したブロック内だけ有効となる。

Section 2: 定数

プログラム内で使用する固定的な値である定数には、「整数」「実数」「文字」「文字列」などがある。

定数
書式
整数 10進数 0〜9 の数字。long型場合、最後に L を付ける。 26, 161L
16進数 0〜F を使用して 0x を頭に付ける。 0x1a, 0xA1
8進数 0〜7 を使用して 0 を頭に付ける。 032, 021
実数 0〜9 の数字とピリオドからなる。
float型の場合、最後に F を付ける。
double型の場合、最後に D を付ける(defualt)。
浮動小数点表記は指数部の前に E を付ける。
26.5
26.5F
26.5D
2.65E+1
文字 シングル・クォーテーションで囲まれた文字 'a', '8', ' '
文字列 ダブル・クォーテーションで囲まれた文字の集まり "miki", "あ", "A"
真偽 true(真)、false(偽) false, true
null なにも値がないことを表す。 null

エスケープ文字
内容
\b
バックスペース
\t
タブ
\n
改行
\r
キャリッジ・リターン
\f
改ページ
\"
ダブル・クォーテーション
\'
シングル・クォーテーション
\\
バックスラッシュ
\8進数
Unicode 文字

ああ、表を作るだけで疲れたので今回はこれまで!
それなら、キーワードだけでもがんばって覚えておくね!
ほいほい、それではこれで...

 
[Prev] [Next]