メインメニューを開く

差分

オブジェクト指向プログラミング

2,872 バイト追加, 2012年7月3日 (火) 13:58
ページの作成:「'''オブジェクト指向プログラミング'''(Object Oriented Programming, OOP)とは、オブジェクト指向というデザインパターンの...」
'''オブジェクト指向プログラミング'''(Object Oriented Programming, OOP)とは、[[オブジェクト指向]]という[[デザインパターン]]の一種を用いて[[プログラミング]]を行うことである。

== オブジェクト指向プログラミングとオブジェクト指向プログラミング言語 ==
よく誤解されていることだが、オブジェクト指向プログラミングは「[[オブジェクト指向プログラミング言語]]」を用いて[[プログラミング]]を行うことではないという点に注意すること。

[[オブジェクト指向プログラミング言語]]を用い、その原則に従えば自然とオブジェクト指向プログラミングになるが、大半の[[オブジェクト指向プログラミング言語]]では意図して[[ソースコード]]を記述することで[[手続き型プログラミング言語]]のように書くこともできる。

たとえば[[C Sharp|C#]]において全ての[[クラス]]の中身が[[静的メソッド]]だけというような[[ソースコード]]は、誰がどう見ても[[オブジェクト指向]]ではないのでオブジェクト指向プログラミングとは呼ばない。このような記述形式は[[プログラミング言語]]の形態を問わず、[[Hello World]]のような簡単なサンプルプログラムではよく見かける事例であるが、希に宗教上の理由により意図して全てを[[手続き型プログラミング言語]]のように書いている人もいる。
<source lang="csharp">
class AppMain {
public static void Main(string[] args) {
Hello("hoge");
}

public static void Hello(string name) {
Console.WriteLine("hello," + name);
}
}
</source>

また、[[オブジェクト指向プログラミング言語]]を使わずとも、[[オブジェクト指向]]の考え方に沿った[[ソースコード]]の記述形式であればオブジェクト指向プログラミングである。

このような[[オブジェクト指向プログラミング言語]]を用いないオブジェクト指向プログラミングの実例としては、主に[[C言語]]によって書かれた[[Linux]]および[[UNIX]]界隈で未だに使われ日夜肥大化を続けている[[X Window System]]、そしてその上で動く[[GNOME]]および関連プロジェクトの根底として使われている[[GObject]]などが有名である。

なお、これら例の[[ソースコード]]は[[オブジェクト指向プログラミング言語]]で育った[[プログラマー]]からしたら狂気のように感じることであろう。

== 関連項目 ==
* [[オブジェクト指向]]
* [[オブジェクト指向プログラミング言語]]

== 参考文献 ==
<references/>

== 外部リンク ==

{{stub}}
匿名利用者