ホーム » スタッフ » 斉藤徹 » オブジェクト指向プログラミング・ガイダンス

2011年4月
« 3月   5月 »
 12
3456789
10111213141516
17181920212223
24252627282930

最近の投稿(電子情報)

アーカイブ

カテゴリー

オブジェクト指向プログラミング・ガイダンス

専攻科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] ) ;
}