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

SESSION 11 その26
メンバ変数(フィールド) つづき
  メンバ変数(フィールド)の概要

今回、
クラスのブロックで宣言した変数を
メンバ変数(フィールド)
というんだ。

この変数はクラス内全てで
有効になる変数だ。
これは定数の場合も同じね。


今回の場合だと、
プログラムを実行している間
変数はずっと存在し続けるよ。
一番外のブロックで
宣言したから
全部の関数で使える
んだね。

この変数は緑色に
なるんだね!
そういうこと。
やっぱり
クラスに
関係してる
んだ。
 

メンバ変数(フィールド)の例
 
・・・      
    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(){  
   
 
 
        }  
       
    }  
・・・    
関数のブロックの外、
つまり、クラスのブロックに書けば共通の変数になる。
赤い部分がメンバ変数(フィールド)


 
メンバ変数の初期化は
最初の一回だけ。

どの関数よりも
一番先に初期化されるよ。
 
メイン関数より先に
初期化されるんだ。
  一番上で
宣言してる
んだもんね。
 
 
メンバ変数(フィールド)の初期化
 
・どの関数よりも先に初期化される
・最初の1回だけ初期化される
・それ以降は初期化されない
・初期化は必須ではない


前の関数の
続きから
計算できるよ。
それ以降は
初期化されないからね。

メンバ変数はどの関数からでも、
値を読むだけじゃなく、
変更することもできる。

つまり、
どこかの関数で変えた値が、
ずっと残ってるんだよ。


例を作ってみたよ。
難しくないから、メイン関数から
ゆっくり読んでね。
 
今までみたいに
関数が終わっても
変数は消えない
んだ。

別の関数で値を
変えられてるかも
しれないんだね。
  みんなの変数
なんだ。

なんか
変な感じー。
 
 

メンバ変数の値の変更例
 
・・・      
    public class testMain {  
       
        private static int  testCount = 0;//メンバ変数 testCount  
       
      public static void main(String[] args) {
       
            //*******************************************  
            //メイン関数から別の関数を呼んでtestCountを足す  
            //*******************************************  
       
            System.out.println("実行前のtestCountの値は:" + testCount);  
       
        //関数addAでtestCountに10を足す
        addA(); testCountは
10になった
            //結果表示  
            System.out.println("関数addAで10足しました:" + testCount);  
       
        //関数addBでtestCountに100を足す
        addB(); testCountは
110になった
            //結果表示  
            System.out.println("関数addBで100足しました:" + testCount);  
       
        }  
       
        private static void addA(){  
            //メンバ変数testCountに10を足す  
            testCount += 10; 10足す
        }  
       
        private static void addB(){  
            //メンバ変数testCountに100を足す  
            testCount += 100; 100足す
        }  
       
    }  
・・・    
別の関数が変更した変数の値をさらに加算している。
 
実行結果(出力ウィンドウ)
実行結果(出力ウィンドウ)


メンバ変数とフィールド
って言い方は・・・

やっぱり
これもメソッドと同じで
クラスの視点に関係あるの?
 
クラスを
やるまでね。

よろしこ。
そう、クラスの視点で
見た言い方だね。

今回は、両方とも
クラスの言い方だけど。。。

セッションでは、これ以降
「メンバ変数」って言うよ。


「変数」ってつく方が
イメージしやすいからね。

  メンバ変数(フィールド)の詳細

じゃあ、
メンバ変数の使い方を
見ていこう。

はい。

 
 
 

メンバ変数(フィールド)の詳細


・記述場所
・書式
・変数の有効範囲
・動作の流れ

 
 

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