プログラミング自主学習 39日目 Enum/Object
Enum
データーの中には限定された値を持っていうデータがある。例えば、曜日は月~日まで7つの値を、季節は4つの値を持っている。このように限定された値をもっているデータタイプを列挙型(Enumeration type)という。ヒープ領域にメモリが保存される参照型データーでもある。
public enum Season {
SPRING,
SUMMER,
AUTUMN,
WINTER
}
列挙タイプSeasonの列挙定数(Enumeration Constant)は、SPRINGからWINTERまで4つだ。
列挙定数は慣習的に大文字で表記する。
シングルトーン(一つのインスタンス)とも活用される。
時間の問題上、実習時の例題をアップロードする。翻訳はされていない。
object
オブジェクトは、物理的に存在し、他のものと認識して区別できるものだ。
自動車というのは車、エンジンなどの共通的な何からの典型的な概念としても存在するが、様々な色や種類があり、分特徴によって分けられる。トラック、バス、スポーツカーなど色々なものがあるように、区別ができるためだ。
人間も同じだ。人間という概念は共通認識でもあるが、黒人、白人など人間でありながらも様々な個性があるため、オブジェクトだ。
こういったオブジェクトはオブジェクト特有の状態(statement)と行動(behavior)をもっている。プログラミングではこれを属性(field)と行動(method)と呼ぶ。
また、現実のすべての現状もオブジェクトとオブジェクトの相互作用に成り立っている。
例えば、人間が計算機が何かを計算する際すら、計算機の足し算機能を利用し、
計算機はその結果をリターンする。
このような相互作用の手段をモソッドと呼び、オブジェクトが他のオブジェクトの機能を使用することをメソッドを呼び出す(call)という。
>メソッドの基本的な形はメソッド名(引数)だ。
格好の中に実際の引数を入れる。直接入れる数が実引数(argument)であり、
入れる前の仮想のテンプレートを仮引数(parameter)という。
add(int x, int y) int x, int yはparameter
add(10,20) -> 10+20 -> return 30 10,20はargument
メソッドは引数を必要なメソッドと必要ではないものがある。
例)getInstance();
OOTの特徴
カプセル化
オブジェクトのデータ(field)と動作(メソッド)を一つに組み、実際の具現内容を外部に隠すことだ。外部のオブジェクトは内部のオブジェクトの仕組みが分からず、オブジェクトが提供するfieldとmethodのみ利用できる。
カプセル化する理由は、外部からのアクセルよりオブジェクトが損なうことが防ぐためだ。
そのため、接近修飾子(access modifier)を使用する。
継承
スーパークラスのフィールドとメソッドを使用できる。
メリット
1)コードの再使用性
2)効率(スーパクラスを修正することでサブクラスは修正が要らない)
多態性/多形性
色々な名前で他の効果が出せる。また、詳しくはわからないが、インタフェースが典型的な多態性を活用して一例だ。
Discussion