読者です 読者をやめる 読者になる 読者になる

オブジェクト指向は難しい

私はJavaを使っていました。
現在はc#をメインに使っています。

Javaからc#への移行はあまり難しくはなかったです。
それは両方とも比較的書き方が似ているからです。

そして何よりも両方ともオブジェクト指向
元に考え作られた言語だからです。

ではオブジェクト指向とは何か?

難しいですよね。


オブジェクト指向を説明できる人は
なかなかいないと思います。
私もまだまだオブジェクト指向
勉強途中であります。

簡単に言うとオブジェクト指向
プログラミングをパソコン的に考えるのではなく、
人間が使いやすいように
物として扱うと言うことです。

物?

人間も犬も猫も机も椅子も

全て物です。

だからこそ全てオブジェクトになるんです。
私たちが認識しているものは全てオブジェクトなんです。

《継承》
具体的なクラスは一般的なクラスの性質を引き継ぐ。
犬や猫の例で見てみましょう。
一般的なクラスは動物
具体的なクラスは犬、猫
犬も猫も動物であります。
だから両方とも鳴きますよね。
犬ならわんわん。
猫ならにゃーにゃー。
動物クラスには鳴くと言うメソッドがあります。
その動物クラスを継承して
犬、猫はそれぞれの鳴き方をします。

何をやるかはブラックボックスで与えた値に対して、ある計算をして返却させることです。
例えば掛け算のクラスがあるとします。
そこに2つの数を渡すとそれを掛けた値を返却してくれます。
呼び出す方は掛けた値を返却してくれればいいだけです。
中のロジックがどうなってるかは関係ありません。
ただ返却値が合っていればいいんです。
だから5と3が引数の場合は
「5*3」でも「5+5+5」でもどっちでもいいんです。
返却値が正しければ。

どんな場合でも同じ動作をする事。ただし、その呼び出し元により異なる。
例えば、遊園地の入場料を知りたい場合があります。
子供は300円。
大人は500円。
高齢者は400円。
子供が僕の入場料は?とメソッドを呼び出せば300円が表示されます。
大人が呼び出せば500円。
高齢者が呼び出せば400円。
同じメソッド名であるにもかかわらず、
呼び出す人が変わる事で
表示させる金額が異なる事をいいます。

簡単に書きましたが、
簡単です。
難しく考えるのではなく、
頭を柔らかくして柔軟に考えましょう。
いたってシンプル。
シンプルだからわかりにくい。

実際のプログラミングに落とし込む場合は
設計が重要になり、
これはオブジェクト指向には向いてないな
と思う事があるかと思います。

全ての物はオブジェクトですから
全てオブジェクト指向で書く事ができます。

是非とも仕事、プライベートで
プログラミングをする時になったら
思い出してみてください。