Programming Methodology 7〜9

この一週間の隙間時間を使いながら、三回分の講義を視聴しました。一応、各回毎にメモを取っていたのですが、ここに書き起こすのを怠ってしまいましたので、今回はまとめて書いてしまいます。

第七回目は、methodについて語られていました。以下、箇条書きします。

  • 数学の関数とは違う
  • methodにparameterを渡す、すると何かがreturnされる
  • methodの中では、何らかのcomputeが行なわれている
    • Mathクラスを使った事例
  • everything is function or method
    • CDプレーヤーに、CDを入れて再生ボタンを入れる
    • どんな曲が流れるかはCD次第
    • CDがparameter/曲がreturnValue/CDプレーヤーがmethod
  • receiver.name(arguments)
    • argumentsがparametersとなり、これによってreceiverオブジェクトに
    • 何らかの作用が起こる。または、何かのreturnValueが返る
  • voidはspecialType。何もvalueを返さない関数
  • logical operation
    • 演算子の一種
    • これが式の中で使われていたらboolean型を返す


第八回目は、methodの特徴について、以下のようなことが述べられていました。

  • information hiding
    • 処理の複雑さを軽減してくれる
    • 全てのメソッドの実装を気にしなくてもいい
    • ブラックボックスとして扱う
  • stack frame
    • メソッドの呼び出し
    • 引数とパラメータ、呼び出し元と呼び出し先の値は異なる(intの場合、コピーされる)
    • 新しいstackの中特有の変数
    • stack内の処理が終わったら、そのstackは破棄される(元の処理に戻る)

また、オブジェクト内で利用されるinstance variableについても触れられていました。

  • instance variable
    • 状態を持つ
    • 計算した後も、その状態に意味がある
    • local variableは、計算後の状態はない
    • オブジェクト内で生成され、どのメソッドでも使える


第九回目は、クラスの実装(Implementing Class)について語られました。

  • 全てのClassはObjectを継承している
  • public/privateの違い
    • 外からアクセスできるか否か
  • eclipseでClassを作る
  • constructorを実装
    • クラス名と同じ名前
    • コンストラクタは何も返さない
    • オブジェクトを初期化する
    • パラメータとiVar(instance variable)が同じ名前の場合
      • thisをつけないと、ローカル変数だと判断される
      • iVarだと示す場合は、thisをつける
  • instance variableの実装
    • クラス内で使う変数
    • この講義では、ファイルの最後で定義している
  • メソッドの実装
    • local variableを使いながら処理を書く
    • publicにして外部に公開する
  • Classの使い方
    • newを使ってオブジェクトを生成する
    • 必要に応じてパラメータを渡す
  • オブジェクトについて
    • methodのパラメータとして渡すことができる
    • 渡されるのはオブジェクトのコピーではない
    • referenceが渡される(オブジェクトそのものが渡される)
    • どこに何があるかわかるから、それができる
    • intなどの場合は、それができない
  • Class variable
    • 環境の全てで共有される
    • staticを使う
    • 今回は、そこまで詳しい話は出てこなかった