Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
object - Maple のオブジェクトの概要
オブジェクトについて
オブジェクトはデータとプロシージャのカプセル化を行うプログラミング要素です。クラスはオブジェクトのグループの内容 (データとプロシージャ) を説明しています。クラスに属するオブジェクトは、クラスのインスタンスと呼ばれます。オブジェクトの内容はその要素と呼ばれます。要素には、データ要素とプロシージャ要素の 2 つがあります。オブジェクトのプロシージャ要素はメソッドと呼ばれます。オブジェクトの要素はモジュールと同様に、メンバーへのアクセスが可能な範囲を制御できます。エクスポートと宣言された要素はどこからでもアクセス可能です。ローカルと宣言された要素はオブジェクトのメソッド内部からのみアクセスできます。
Maple では、オブジェクトは module の特殊タイプです。そのため、モジュールで動作するルーチンはオブジェクトでも動作します。
オブジェクト指向プログラミングには、多くの利点があります。
クラスの実装は、エクスポートされたメソッドのインターフェースを変更せずに根本的な変更が可能です。そのため、オブジェクトを使用するコードは、内部実装の変更の際に変更する必要がありません。
オブジェクトは内蔵型なので再利用が簡単です。
オブジェクトは、標準の Maple 構文と統合可能なメソッドを定義します。そのため、ユーザーは builtin タイプのように使用できるオブジェクトを作成できます。
クラスは、一般的なエクスポートを実装できます。そのため、一般的なエクスポートのみを使用するプロシージャは、オブジェクトがどのクラスが属するかがわからなくてもすべてのクラスのオブジェクトで動作します。
Maple のオブジェクト
Maple のオブジェクトは、module 作成構文、または既存のオブジェクトをコピーして作成されます。モジュール宣言構文を使用すると、オプションオブジェクトの追加でモジュールの代わりにオブジェクトを作成します。宣言はオブジェクトによって作成されるクラスのインスタンスを定義します。local と宣言された名前はオブジェクト内部にあり、オブジェクト外部からはアクセスできません。export と宣言された名前はオブジェクトの外部からアクセスできます。既存のオブジェクトをコピーして新規オブジェクトを作成するには、Object 関数を使用します。
Maple でのオブジェクトの作成に関する詳細は、「新規オブジェクトを作成する」を参照してください。
エクスポートメソッド
エクスポートメソッドは、モジュール要素構文 (:-) ではなく標準の関数コール構文を使用して呼び出されます。オブジェクト o のメソッド m を呼び出すには、つぎのようにします。
m( o ):
以下は使用しません。
o:-m():
メソッドに関する詳細は、「オブジェクトメソッドの概要」を参照してください。
多重定義 builtin ルーチン
Maple のオブジェクトは、オブジェクトがタイプ builtin の Maple ルーチンに渡されるときに実行されるメソッドを定義できます。たとえば、オブジェクトのメソッドが map である場合は、このメソッドはオブジェクトが map 関数に渡されるときに実行されます。
オブジェクトの多重定義 builtin ルーチンに関する詳細は、「オブジェクトを多重定義する builtin ルーチン」を参照してください。
演算子
Maple のオブジェクトは、演算子を使用する際に自動実行されるメソッドを実装できます。たとえば、+ メソッドを使用するオブジェクトは加算式で使用され、オブジェクトの + メソッドが実行されます。オブジェクトは、Maple の式で自然に使用できます。
オブジェクトの演算子の実装に関する詳細は、「オブジェクトを多重定義する操作」を参照してください。
オブジェクトとタイプ
すべてのオブジェクトは type オブジェクト です。さらに、type および :: は、予想されるクラスのオブジェクトをタイプとして渡すことにより、オブジェクトが特定のクラスのインスタンスであるかどうかを判断できます。ModuleType メソッドを定義してタイプチェックを調整することができます。
特殊メソッド
特殊メソッドはクラスが定義し、特定の状況で使用します。詳細は、メソッドのヘルプページを参照してください。
ModuleCopy: ModuleCopy メソッドは、オブジェクトが Object ルーチンによってコピーされた場合に実行されます。
ModuleType: ModuleType メソッドは、オブジェクトが特定のクラスかどうかを判断する場合に実行されます。クラスは精密なタイプチェックを行うことができます。
ModulePrint: ModulePrint メソッドは、モジュールを書式を整えて印刷する場合に実行されます。
ModuleDeconstruct: ModuleDeconstruct メソッドは、オブジェクトが Maple 構文で 1 次元形式に変換される際に実行されます。
ModuleApply: ModuleApply メソッドはオブジェクトが関数コール式内で関数として使用されたときに実行されます。
ModuleLoad: ModuleLoad メソッドはオブジェクトがライブラリから読み込まれたときに実行されます。
ModuleUnload: ModuleUnload メソッドはオブジェクトが収集されたときに実行されます。
ModuleIterator: ModuleIterator メソッドは、オブジェクトの内容を繰り返すためのインターフェースを作成します。
関連項目
builtin、module、ModuleApply、ModuleCopy、ModuleDeconstruct、ModuleIterator、ModuleLoad、ModulePrint、ModuleType、ModuleUnload、Object、object,builtin、object,create、object,methods、object,operators、procedure、type
Download Help Document