活動報告

新着記事

カテゴリー

キーワード検索

2018.01/29 プログラミング(12)

C#では、オブジェクトをクラスと呼び、プログラミングするときには、クラスを幾つか作ることになる。その幾つかのクラスの中には、他のクラスを内包したクラスも存在する。

 

これは問題解決するときに、問題を幾つかの課題に分けて解決する状況に似ている。このとき問題そのものもクラスとみなすことができ課題もクラスとなる。問題解決するとは、幾つかの課題が解決されて問題が解かれるので、問題というクラスには、幾つかのクラスが含まれることになる。

 

課題も同様で、他の課題と独立した事象の課題もあれば、他の課題と複雑に絡み合った課題も存在する。ここで問題をうまく解くには、可能な限り、各課題をシンプルにできて、他の課題は、一つの課題を解決したときと同じ手法で解決できる状態の解法を見いだすことである。

 

すなわち問題に幾つかの課題が含まれていても、ある一つの課題の解法が見いだせれば、他の課題も同様の解法で解決できる状態は、一つの課題の問題と同じような状態だ。この場合、全ての課題を考える必要は無く、一つの課題を可能な限り汎用化して解法を考えることが重要になる。

 

これをC#のプログラミングで説明すると、幾つかのクラスが必要だが、各クラスの振る舞いは似ているので、一つのクラスを汎用化して設計して、他のクラスはそのクラスの「継承」として作る、という説明になる。

 

この継承という概念は、オブジェクト指向の重要な特徴の一つで、継承という工夫によりプログラミングの生産効率が大変高くなった。また、クラスの継承で別のクラスを生成する、という手順でプログラミングすれば、プログラムの可読性も高まる。

 

すなわち継承により新たに書き加えた部分を実装したクラスは、その新たに追加する部分に注力して設計すれば良い。問題解決のシーンで説明すれば、類似問題については類似の方法で解くことを意味する。

(注)実装とか継承とか普段使いの日本語ではない言葉がオブジェクト指向のプログラミング言語では出てくる。このような、やや堅苦しく難解と思われる言語の意味するところを身につけるには、慣れるより仕方がない。ちなみにクラスの継承とは、元のクラスの性質(プロパティだけでなくフィールドやメソッドなどもすべて)を引き継ぐことであり、実装とはそれらを備える意味である。引き継いだなら備えているのは当然という突込みをしていると、馬から落馬する的表現になれることができない。

カテゴリー : 一般

pagetop