「オブジェクト指向プログラミング」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | '''オブジェクト指向プログラミング''' | + | '''オブジェクト指向プログラミング'''(Object Oriented Programming, OOP)とは、[[オブジェクト指向]]という[[デザインパターン]]の一種を用いて[[プログラミング]]を行うことである。 |
− | |||
− | |||
− | |||
== オブジェクト指向プログラミングとオブジェクト指向プログラミング言語 == | == オブジェクト指向プログラミングとオブジェクト指向プログラミング言語 == | ||
よく誤解されていることだが、オブジェクト指向プログラミングは「[[オブジェクト指向プログラミング言語]]」を用いて[[プログラミング]]を行うことではないという点に注意すること。 | よく誤解されていることだが、オブジェクト指向プログラミングは「[[オブジェクト指向プログラミング言語]]」を用いて[[プログラミング]]を行うことではないという点に注意すること。 | ||
− | |||
[[オブジェクト指向プログラミング言語]]を用い、その原則に従えば自然とオブジェクト指向プログラミングになるが、大半の[[オブジェクト指向プログラミング言語]]では意図して[[ソースコード]]を記述することで[[手続き型プログラミング言語]]のように書くこともできる。 | [[オブジェクト指向プログラミング言語]]を用い、その原則に従えば自然とオブジェクト指向プログラミングになるが、大半の[[オブジェクト指向プログラミング言語]]では意図して[[ソースコード]]を記述することで[[手続き型プログラミング言語]]のように書くこともできる。 | ||
− | たとえば[[C Sharp|C#]]において全ての[[クラス]]の中身が[[静的メソッド]]だけというような[[ソースコード]]は、[[クラス]]の存在はただの[[名前空間]]となった[[手続き型プログラミング]]であり、誰がどう見ても[[オブジェクト指向]]ではないのでオブジェクト指向プログラミングとは呼ばない。このような記述形式は[[プログラミング言語]]の形態を問わず、[[Hello World]] | + | たとえば[[C Sharp|C#]]において全ての[[クラス]]の中身が[[静的メソッド]]だけというような[[ソースコード]]は、[[クラス]]の存在はただの[[名前空間]]となった[[手続き型プログラミング]]であり、誰がどう見ても[[オブジェクト指向]]ではないのでオブジェクト指向プログラミングとは呼ばない。このような記述形式は[[プログラミング言語]]の形態を問わず、[[Hello World]]のような簡単なサンプルプログラムではよく見かける事例であるが、希に宗教上の理由により意図して全てを[[手続き型プログラミング言語]]のように書いている人もいる。 |
<source lang="csharp"> | <source lang="csharp"> | ||
class AppMain { | class AppMain { | ||
23行目: | 19行目: | ||
</source> | </source> | ||
− | |||
また、[[オブジェクト指向プログラミング言語]]を使わずとも、[[オブジェクト指向]]の考え方に沿った[[ソースコード]]の記述形式であればオブジェクト指向プログラミングである。 | また、[[オブジェクト指向プログラミング言語]]を使わずとも、[[オブジェクト指向]]の考え方に沿った[[ソースコード]]の記述形式であればオブジェクト指向プログラミングである。 | ||
このような[[オブジェクト指向プログラミング言語]]を用いないオブジェクト指向プログラミングの実例としては、主に[[C言語]]によって書かれた[[Linux]]および[[UNIX]]界隈で未だに使われ日夜肥大化を続けている[[X Window System]]、そしてその上で動く[[GNOME]]および関連プロジェクトの根底として使われている[[GObject]]などが有名である。 | このような[[オブジェクト指向プログラミング言語]]を用いないオブジェクト指向プログラミングの実例としては、主に[[C言語]]によって書かれた[[Linux]]および[[UNIX]]界隈で未だに使われ日夜肥大化を続けている[[X Window System]]、そしてその上で動く[[GNOME]]および関連プロジェクトの根底として使われている[[GObject]]などが有名である。 | ||
− | なお、これら例の[[ソースコード]]は[[オブジェクト指向プログラミング言語]]で育った[[プログラマー]] | + | なお、これら例の[[ソースコード]]は[[オブジェクト指向プログラミング言語]]で育った[[プログラマー]]からしたら狂気のように感じることであろう。 |
== 関連項目 == | == 関連項目 == | ||
* [[オブジェクト指向]] | * [[オブジェクト指向]] | ||
* [[オブジェクト指向プログラミング言語]] | * [[オブジェクト指向プログラミング言語]] | ||
− | |||
== 参考文献 == | == 参考文献 == | ||
− | + | <references/> | |
+ | |||
+ | == 外部リンク == | ||
{{stub}} | {{stub}} |