プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也 クラス 抽象データ型を直接表現したもの. 関数を構造体の中に入れたものと考えてもよい. struct List { int list[LIST_MAX]; int num = 0; }; void init_list(struct List *lp) { lp->num = 0; } int get_list_num(struct List *lp) { return lp->num; } : class List { int list[LIST_MAX]; int num = 0; void init_list(void) { num = 0; } int get_list_num(void) { return num; } : } クラスの定義 クラスは,メンバ変数(フィールド)とメンバ関数 (メソッド)によって構成される. class List { int list[LIST_MAX]; int num = 0; } void init_list(void) { num = 0; } int get_list_num(void) { return num; } : メンバ変数 メソッド クラスの利用 オブジェクト指向ではあるクラスを型とみなしたときの変数を インスタンス(オブジェクト)と呼ぶ. インスタンスは利用者側が生成する. インスタンスのメンバへは”.”でアクセスする. #include “list.h” : struct List l1, l2; init_list(&l1); init_list(&l2); : class List l1 = new class List(); class List l2 = new class List(); l1.init_list(); l2.init_list(); : 利用者側でListクラスのインスタンスを生成. カプセル化のまとめ クラス: データとその操作をカプセル化したもの. (モジュール×構造体?) オブジェクト: クラスを実体化したもの.クラスを型とみなしたときの変数に 相当. メンバ変数: クラスが持つ変数. メソッド: クラスが持つ関数. オブジェクト指向の考え方 プログラムをオブジェクトの塊と見る. C言語: プログラムを関数(手続き)の塊と見る. 関数型言語: プログラムを(数学的な)関数の塊と見る. 人工知能型言語: プログラムを知識(論理式)の塊と見る. オブジェクト メッセージ オブジェクトとメッセージ オブジェクト同士はメッセージで互いに情報をやり取りする. オブジェクトはお互いに相手の中身を知らない. オブジェクトの型をクラスという. クラス
© Copyright 2024 ExpyDoc