専攻科2年向けのオブジェクト指向プログラミングの授業のガイダンス。 最初に授業内容の説明として、大きなプログラムを作るにあたって、分業・再利用が しやすくするためのテクニックとしての、隠蔽化・継承という概念があり、 最終的に、UMLなどの説明をすることを紹介。 その他、レポート中心での内容などを説明する。 受講者は、EIのOB3人+E科OB1人。
最初にオブジェクト指向の概念を説明するために、プログラム言語の歴史を紹介し、 FORTRANで手続き、COBOLで構造体、ALGOLで構造化プログラミングが現れた あたりを説明し、Simulaで シミュレーションの記述としてオブジェクト指向が使われ始めたことを紹介。 また、Smalltalkで、 GUI環境の構築で有用性が認知され、X11,Windowsなどのプログラミングに 波及していったことを紹介。 その元になったのが、C言語にオブジェクト指向を取り入れたC++であり、 これから Java が派生していったことを説明する。
CからC++へ
例年であれば、他学科でC言語理解の浅い人向けの説明を行うけど、今年は構造体なら 理解していそうなので、例年よりはハイペース。以下のようなプログラムを示し、 オブジェクト・メソッド・インスタンス・クラスといった用語を紹介。
struct Person { // オブジェクト(データの構造) char name[ 20 ] ; int age ; } ; void set( struct Person* p , char s[] , int a ) { strcpy( p->name , s ) ; // 初期化メソッド(データの操作) p->age = a ; } void print( struct Person* p ) { // 表示メソッド printf( "%s %d\n" , p->name , p->age ) ; } void main() { struct Person saitoh ; // saitohインスタンス(具体化) struct Person family[2] ; set( &saitoh , "saitoh" , 46 ) ; set( &family[0] , "mitsuki" , 11 ) ; print( &saitoh ) ; print( &family[0] ) ; }