第十三章 変数とスコープ
変数を定数にするfinal修飾子
final修飾子を付与した変数は、値の変更ができない「定数」になります。
final int CONST_VALUE;
目次
1.final修飾子
値を変更しない変数には、final修飾子を付与しましょう。
final修飾子を付与された変数は、値の変更ができなくなります。
コーディングしていてもfinalを付与すると
やっぱり安心する。
間違えて変更するリスクがなくなるからな。
どんな感じで
使うんっすか?
final修飾子の書式
final データ型 変数名 = 値;
final修飾子の使い方
- 変数の宣言時に final修飾子付与します。
- 宣言時に初期化した場合、その後の値の変更ができなくなります。
- 宣言時に初期化しなかった場合は、最初の1回だけ代入可能です。
2.定数名は大文字のスネーク法
定数名は大文字のスネーク法での記述がお勧めです。
実際に使ってみましょう。
//Sample08_005.java
class Sample08_005{
static
final double
TAX_RATE = 1.1;
//クラス変数(定数)
static int taxInclude(int
without_tax_1){
without_tax_1 *= TAX_RATE;
return (int)without_tax_1;
}
static int tax(int
without_tax_2){
without_tax_2 *= (TAX_RATE -1);
return (int)without_tax_2;
}
public static void main(String[] args){
int without_tax_0 = 120;
System.out.println("Without tax = " + without_tax_0);
System.out.println("Tax included = " + taxInclude(without_tax_0));
System.out.println("Tax = " + tax(without_tax_0));
}
}
コマンドライン
>javac Sample08_005.java
>java Sample08_005
Without tax = 120
Tax included = 132
Tax = 12
3.エラー例
final修飾子を付与された変数の値を変更しようとするとどうなるのか試してみましょう。
//Sample08_006.java
class Sample08_006{
static final double TAX_RATE = 1.1;
public static void main(String[] args){
TAX_RATE = 1.2;//定数の変更
}
}
コマンドライン
>javac Sample08_006.java
Sample08_006.java:6:
エラー: final変数TAX_RATEに値を代入することはできません
TAX_RATE = 1.2;
^
エラー1個
わかりやすいエラーね。
これなら気づくわね。
4.ローカル変数でも使えます
final修飾子は大抵クラス変数に与えられますが、
ローカル変数でも使えます。
//Sample08_007.java
class Sample08_007{
public static void main(String[] args){
final double TAX_RATE = 1.1;
System.out.println(120 * TAX_RATE);
}
}
コマンドライン
>javac Sample08_007.java
>java Sample08_007
132.0
難しいところは特にないだろう。
よく使うので覚えておいてくれ。
チョキ。
お疲れ様でした。