広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English
 

SESSION 7 その11
定数(ていすう)

さっ、じゃあ、休憩はおしまい。
一気に見ていくぞ。

まずは定数(ていすう)だ。

よろしくお願いしますっ。

 
 


定数(ていすう)
値を変えられない変数だ。

作り方は簡単。変数の宣言時に、
型の前に
final を付ければいい。

final int DATA_X = 8; ってな。

定数は、全部大文字と
アンダーバーで書くんだね。


変数の型の前に宣言するんだ。

別に大文字で
書かないでも
できるけどね。

書くようにすること。
はいっ。

でも、ゲームに
どうやってこれを
使うんだろう。
 
定数の宣言と初期化 定数を宣言する場合、型の前にfinalキーワードを書く


これで、初期化時の値が固定に
なって書き換え不可になる。

この場合 DATA_X  は 8 になった
ってことだ。

つまり、値と同じだな。

定数はゲームでも
よく使われるから覚えておこう。

DATA_Xは、数字の8に
なっちゃったんだ。


注意
読んでね。
ゲームに
使われるんだ。

あーあ、
早くゲーム
作りたいな・・・。
 

定数の注意点
 
    定数名はすべて半角英数の大文字で書くのが慣例。
2単語以上で作る場合、「_」(アンダーバー)でつなげる。
   
  final int DATA_X = 8;    
         
    定数は値と同じように使える。読み取り専用の変数と言える。    
final int DATA_X = 8;//整数の8と同じ

System.out.println("DATA_X の値は" + DATA_X );
 
    宣言時以外の値の変更は不可。値の代入はできない。    
  final int DATA_X  = 8;
DATA_X  = 44;
   
         
    変数を途中から定数に変更は不可。その逆も不可。    
  int DATA_X  = 8;
final DATA_X  = 99;
   
 


んー、でも、
数字の 8 と同じ意味なら
普通に 8 って書けば
いいのに・・・。

なんかあんまり使い道
ないような・・・。
ゲームにも
全然関係
ないよね・・・

ゲーム
作りたいな・・・。
やっぱ、
ちょっと
疲れてきてる?
ゲームでもよく使うって
言っただろ。すごい便利なんだぜ。

あー、例えば、ゲームでの
使われ方は・・・・
ほら、この例を見てくれ。

コードにゲームのマップのサイズを
書くとするだろ。
見てみろ、定数を使った場合と
どっちの方がいい?

これならマップサイズを
書いてある部分が一目瞭然
だろ。

あくまでも「例」のコードだから
処理内容は気にしないでね。
 

サンプルコード 定数の使用例(定数使用)
 
・・・      
020   //マップサイズを定数で定義  
021 final int MAP_WIDTH = 100;//マップ幅
022 final int MAP_HEIGHT = 40;//マップ高さ
023      
024   //*******************************  
025   //マップデータ初期化  
026   //*******************************  
027   //イベントマップ作成  
028 byte[][] eventMap = new byte[MAP_HEIGHT][MAP_WIDTH];
029   //表示マップ作成  
030   byte[][] mainMap = new byte[MAP_HEIGHT][MAP_WIDTH];  
031            
032   //マップサイズを設定  
033   String mapSizeWidth = Integer.toString(MAP_WIDTH);  
034   String mapSizeHeight = Integer.toString(MAP_HEIGHT);  
035      
036   //ユーザーのマップサイズをセット  
037   setMapMinY(0);  
038   setMapMaxY(MAP_HEIGHT);  
039      
040   //マップ変動用初期値セット  
041 int moveMapWidth = MAP_WIDTH;
043   int moveMapHeight = MAP_HEIGHT;  
・・・      

このコードはサンプルです。入力しても動きません。


サンプルコード 定数の使用例(定数未使用)
 
・・・      
020   //マップサイズを定数で定義  
021 //final int MAP_WIDTH = 100;//マップ幅
022 //final int MAP_HEIGHT = 40;//マップ高さ
023      
024   //*******************************  
025   //マップデータ初期化  
026   //*******************************  
027   //イベントマップ作成  
028 byte[][] eventMap = new byte[40][100];
029   //表示マップ作成  
030   byte[][] mainMap = new byte[40][100];  
031            
032   //マップサイズを設定  
033   String mapSizeWidth = Integer.toString(100);  
034   String mapSizeHeight = Integer.toString(40);  
035      
036   //ユーザーのマップサイズをセット  
037   setMapMinY(0);  
038   setMapMaxY(40);  
039      
040   //マップ変動用初期値セット  
041 int moveMapWidth = 100;
043   int moveMapHeight = 40;  
・・・      

このコードはサンプルです。入力しても動きません。


しかも、初期化の値を一つ書き換える
だけで、一斉に全部の場所のサイズを
変えることができる。

こうしなかったら、マップサイズに変更が
ある度に、全部の場所を探して、
書き換えてかないとだめなんだぜ。

おまけに、入力間違いも減らせる。

それに、定数にしておけば、
間違って途中で値が書き換えられる
心配もなくなる。

な、いいこと尽くめだろ。

すっごーい!!


すごいテクニックだね!

なっなっ
 


サンプルコード 定数の使用例(定数値書き換え)
 
・・・      
020   //マップサイズを定数で定義  
021 final int MAP_WIDTH = 999;//マップ幅 値を999に変更
022 final int MAP_HEIGHT = 999;//マップ高さ 値を999に変更
023      
024 //*******************************
025   //マップデータ初期化  
026   //*******************************  
027   //イベントマップ作成  
028 byte[][] eventMap = new byte[MAP_HEIGHT][MAP_WIDTH];
029   //表示マップ作成  
030   byte[][] mainMap = new byte[MAP_HEIGHT][MAP_WIDTH];  
031            
032   //マップサイズを設定  
033   String mapSizeWidth = Integer.toString(MAP_WIDTH);  
034   String mapSizeHeight = Integer.toString(MAP_HEIGHT);  
035      
036   //ユーザーのマップサイズをセット  
037   setMapMinY(0);  
038   setMapMaxY(MAP_HEIGHT);  
039      
040   //マップ変動用初期値セット  
041 int moveMapWidth = MAP_WIDTH;
043   int moveMapHeight = MAP_HEIGHT;  
・・・      

定数一箇所の変更で、すべての値が書き換えられる。

このコードはサンプルです。入力しても動きません。


別にすごい
テクニックって
わけじゃ・・・
例えば、
変数と定数の使い分けだと、
 
勇者の
エネルギー
変数 変動するから
マップの
サイズ
定数 どの面も同じ
サイズだから
 
みたいな使い分けをするんだよ。
 
す、すごいね、すごいね!

なんか、ものすっごく
ゲームっぽい!!!
ゲームっぽくなってきた気がする!

そっかー、定数も重要なんだね!

なんか、すごく楽しくなってきた。。。
 


うーんとね-、
えーと、
マップサイズ
どれぐらいに
しようかな・・・。

勇者の
エネルギーはねー。
  はあ・・・

ガキのお守り
は大変だ。

 
予約語

Javaでもう
使っちゃってる
単語って事だよ。
次は予約語だ。

予約語とは、
Javaの言語仕様で
予約済みの単語だ。
 
 

あっ、予約語って、
変数名に使えない名前
に入ってたよね?

 
 


そうそう。変数名に限らず、
どこにも使っちゃだめ。

使えても紛らわしいからだめ。

ただし、変数名とかに
finalBaby とか、一部分に使うのは
問題ないよ。

一覧表を見てくれ。
これがJava6の予約語だ。

今後のバージョンで追加される
可能性もあるよ。
あっ、finalとかintとか
見たことあるのが入ってるね。

うーん・・・。
意外と少ないんだね。

もう見たのが
結構入ってる
だろ。
  てへへ

なんか
進んだ気に
なっちゃうね。。。
 

予約語一覧(Java6まで)
予約語は全て英小文字
 
abstract continue for new switch
assert default if package synchronized
boolean do goto private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catche extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
 
 
予約語には含まれないがJavaで使用済みの単語
null true false

グレーは、既に一回は学習したもの


ブロックのおもちゃだって、
基本ピースは少ないだろ。
でも、無限の世界を構築できる。


この内容は、これからのセッションで、
徐々に勉強していくよ。

今は「あー、こんなのがあるんだ。」
程度に見ておいてくれ。

「進んだ気に
なった。」
・・・だって。
これで?

ククク・・・
  な、何よー
その笑い。

夢みたって
いいでしょー!

 
 

広告
home もくじ 前のページを読む 次のページを読む
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -
広告