関数(メソッド) つづき |
|
|
関数の
ブロックね。
しかし、
同じこと何回も。
しつこい図だな。
|
 |
|
 |
だって、
その方が
覚えるもん。 |
|
|
|
|
 |
|
|
|
|
 |
 |
 |
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
関数の変数の有効範囲を
見ておこう。
関数はそれぞれ
独立したブロックで作られる。
つまり、その中が影響範囲だ。
他の関数からは使えないよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
|
|
|
 |
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
関数内で宣言された変数は、
引数を含めて、その中でだけ
有効なんだね。
関数同士はまったく
別のスコープってことね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
つまり、メイン関数で
宣言された変数は、
別の関数では使えない
ってことだ。
気をつけよう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
別の関数で使う場合は
引数で値を渡さないと
だめなんだね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
気をつけてー |
 |
|
 |
はいっ。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
関数内で宣言された変数は
値を書き換えても関数が
終わると全部消えてしまう。
例えば、
引数で受け取った値を使って
計算しても、そのままじゃ
結果は消えてしまう。
取っておきたい値は、
戻り値で呼び出し元へ戻そう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
メイン関数の中から
別の関数を呼んだ場合
引数、計算、戻り値
バケツリレーをして
メイン関数に戻さないと
結果を取って置けない
んだね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
 |
だから
戻り値が
必要なんだね。 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
この関数内で
宣言された変数を
ローカル変数と言うよ。
関数の中、つまり
その場所の中(ローカル)
でしか使えない変数
だからだね。
覚えておいて。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
ローカルは
「地方」や
「地元」とか
の意味ね。 |
|
めもめも |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
それから、
引数の有効範囲は
関数の中だけ。
引数は、関数が始まると、
値は既に入った状態になってる。
後は普通の変数と同じように
使えるからね。
値の変更ももちろん可能だよ。
覚えといてね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
さっきも
言ったけど
もう一回ねー。 |
 |
|
 |
はい。
重要なことは
何回もね。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
あと重要な事。
関数が違えば、
変数は同じ名前が
使えるよ。
もちろん引数もね。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
はい、
ラストー |
|
お互いの
変数は
使えないし。 |
 |
|
|
|
|
 |
|
 |
|
別の関数で同じ変数名をつけた場合の例
|
・・・ |
|
|
|
|
|
private
static int testA(int
x,int
y){ |
|
|
|
|
|
|
|
int
a = 0; |
|
|
|
int
b = 0; |
|
|
|
|
|
|
|
return
a; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private
static int testB(int
x,boolean
y){ |
|
|
|
|
|
|
|
int
a = 0; |
|
|
|
boolean
b = 0; |
|
|
|
|
|
|
|
return
a; |
|
|
|
|
|
|
|
} |
|
・・・ |
|
|
|
|
同じ色の変数は同じ名前 |
|
関数が別の場合、同じ名前の変数を宣言することができる。 |
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
ここまではOK?
まずは、この関数の
変数の有効範囲が
基本になるからね。
しっかり押さえといて。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
復習するね。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
今後、この変数の有効範囲に
クラスを使った場合の
有効範囲が追加されていくよ。
劇的に変わるからね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
ヒヒヒ。
覚悟しとく
ように。 |
 |
|
 |
ええー・・・
大丈夫かな・・・
が、がんばります。 |
|
|
な、なんちゃってー。
ちょびっと変わるけど
大丈夫。
ゆっくりやれば
たいした事ないからー。 |
 |
|
 |
もー。
びっくり
させないでー。 |
|
|