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

SESSION 11 その27
メンバ変数(フィールド) つづき
  メンバ変数(フィールド)の記述場所

まずは
メンバ変数の書く場所。

メンバ変数を書く場所は、
通常、クラス宣言のすぐ下辺り。

つまり、ブロックの先頭に
まとめて宣言する。

一般的に
まとめて
先頭ね。
 
はいっ、

先頭でまとめて宣言ね。
 

メンバ変数(フィールド)の記載場所
 
・・・      
    public class KQMain {  
       
        //********************************************  
        // 定数  
        //********************************************  
        //入力・表示処理モード  
        private static final int EXEC_MODE_QUIZ = 1;//問題処理モード  
        private static final int EXEC_MODE_CHECK = 2;//解答処理モード  
        private static final int QUIZ_MAX = 3;//問題数  
       
        //********************************************  
        // 変数  
        //********************************************  
        private static boolean loopFlg = true;//ループフラグ  
        private static int inputNum = 0;//入力番号  
        private static int execMode = EXEC_MODE_QUIZ;//処理モード(問題処理モードで開始)  
       
        private static int nowQuizNum = 0;//現在出題番号  
        private static int correctTotal = 0;//正解数  
       
      public static void main(String[] args) {
   
 
 
        }  
       
        private static int checkAnswerData(int seikaiBangou,int kaitouBangou,int seikaiGoukei){  
   
 
 
        }  
       
        private static int scanInputData(){  
   
 
 
        }  
       
        private static void execModeQuiz(){  
   
 
 
        }  
       
        private static void execModeCheck(){  
   
 
 
        }  
       
    }  
・・・    
通常、クラスの先頭にまとめて宣言する。


別に、
関数と関数の間とか下でも
宣言できる。

位置はどこに書いても同じ。
どの関数からでも使えるよ。

でも、
分かりづらくなるだけだし、
普通しないからやめること。
できるけど、
しない方が
いいんだね。
イミなーし
はーい
 

メンバ変数(フィールド)の記載場所の例
 
・・・      
    public class KQMain {  
       
        //********************************************  
        // 定数  
        //********************************************  
       
        //********************************************  
        // 変数  
        //********************************************  
       
      public static void main(String[] args) {
   
関数より下で宣言されているメンバ変数ても全部使える
 
        }  
       
        private static int checkAnswerData(int seikaiBangou,int kaitouBangou,int seikaiGoukei){  
   
関数より下で宣言されているメンバ変数ても全部使える
 
        }  
       
        //入力・表示処理モード  
        private static final int EXEC_MODE_QUIZ = 1;//問題処理モード  
        private static final int EXEC_MODE_CHECK = 2;//解答処理モード  
        private static final int QUIZ_MAX = 3;//問題数  
       
        private static int scanInputData(){  
   
関数より下で宣言されているメンバ変数ても全部使える
 
        }  
       
        private static void execModeQuiz(){  
   
関数より下で宣言されているメンバ変数ても全部使える
 
        }  
       
        private static void execModeCheck(){  
   
関数より下で宣言されているメンバ変数ても全部使える
 
        }  
       
        private static boolean loopFlg = true;//ループフラグ  
        private static int inputNum = 0;//入力番号  
        private static int execMode = EXEC_MODE_QUIZ;//処理モード(問題処理モードで開始)  
       
        private static int nowQuizNum = 0;//現在出題番号  
        private static int correctTotal = 0;//正解数  
       
    }  
・・・    
メンバ変数は各関数の上や下など、ブロック内のどこでも宣言することができる。
どこの位置に書いても、クラス内の全ての関数から使える。

ただし、一般的にしないのでやらないこと。


今までと
同じね。
ただし
メンバ変数内には
順番がある。


上に書いた変数ほど
先に評価されるよ。
 
定数と変数の順番は
気をつけないとね。
  そっか。
 

  メンバ変数(フィールド)の書式

変数の書き方は、今は
まず先頭に private static
を書く。

内容が分からなくても、
そのまま先頭に書いといてくれ。

あとは今までの変数と同じ。
はいっ。

分からないけど
おまじない書いておくね。
クラスの
おまじないね。。。

もうちょっと
辛抱ね。
は-い。
 

メンバ変数(フィールド)の書き方1
 
・・・      
        private static boolean loopFlg = true;  
・・・    
今は private static を先頭につける。あとは通常の変数と同じ。


ただし、メンバ変数は
初期化が必須じゃない
んだ。

初期化しないでもエラーに
ならない。

その場合、Javaで規定されている
デフォルト値で初期化されるよ。
ここ
ポイントね。
親切だねー。
自動的に初期化
してくれるんだ。

整数型は「0」、
boolean型は「false」で
初期化されるんだね。
 

メンバ変数(フィールド)の書き方2
 
・・・      
        private static boolean loopFlg; falseで初期化される
・・・    
初期化は必須ではない。変数にセミコロンをつけるだけでもいい。
その場合、自動的に型ごとのデフォルト値で初期化される。
(例の場合はboolean型なのでfalseに初期化される。)
 
 
メンバ変数(フィールド)の初期値一覧
 
 
変数の型 初期化値
整数型(byte、short、int) 0
float 0.0f
double 0.0d
char '¥u0000'
boolean false
参照型
(class型、配列型、
インターフェース型)
null
 

  メンバ変数(フィールド)の有効範囲

それから
変数の有効範囲

このクラスのブロック内
全てで有効だ。


これはファイル内では
一番広いスコープだからね。
これ以上、外には書けないよ。
すごい
広いスコープ
なんだね。
もちろん
定数も決まりは
いっしょだよ。
 
 
クラスの変数の有効範囲(クラス内)


うーん・・・

正確には
少し違ってるんだよな。

static付いてるから
ある意味もっと広い
スコープなんだよね。
グローバルって感じ?

説明って難しいなあ。。。
クラスやるまで勘弁ねー。

心の声。。。

???

どうしたの
なぽちゃん?

 
 

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