オブジェクトの生成と初期化とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > オブジェクトの生成と初期化の意味・解説 

オブジェクトの生成と初期化

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/04 03:18 UTC 版)

Smalltalk」の記事における「オブジェクトの生成と初期化」の解説

オブジェクト生成には #new セレクター使ったメッセージを使う。他の言語違いnew演算子ではない。 |object|object := Example new. "Exampleクラスオブジェクト「new」メッセージ送りオブジェクト生成。" Smalltalk ではクラスオブジェクトメソッドもインスタンスオブジェクトのメソッド同様に派生クラスによる再定義が可能である。このため new メソッドを再定義し初期化処理記載する事が出来る。new メソッドを再定義してしまうとオブジェクト生成自体不可能になるように思われるが、本来 new メソッドは #basicNew セレクター使ったメッセージBehavior送ってオブジェクト生成しているためオブジェクト生成手段がなくなるわけではないこのため new メソッドを再定義しても 「basicNew」メッセージBehaviorに送ることでインスタンスオブジェクト生成することが出来る。 ただし、実際初期化new メソッド使われる事は多くない実際に慣習としてクラス作者新たに登録したインスタンス・クリエイションと呼ばれる new とは別の初期化メソッド使用される。インスタンス・クリエイションは一般的なクラスオブジェクトメソッドであり、そのメソッド内部「new」メッセージその他のインスタンス・クリエイションを使って初期化済みオブジェクト生成する役割持っているだけで基本的にその他のメソッド変わらない一般的にinstance creationというプロトコル登録される。 | number |number := Number readFrom: '10'. "readFrom:がインスタンス・クリエイション". Smalltalk では1個のセレクター対し1個のオブジェクトから複数メソッド関連付けられないため 「new」メッセージの送信によりできる初期化は1個のオブジェクトにつき一通り初期化だけである。このため複数のインスタンス・クリエイションを用意することで用途応じた複数初期化方法提供しているのである。インスタンス・クリエイションは一般的なメソッドのひとつでしかないこのためインスタンス・クリエイション持つクラスオブジェクトはアブストラクト・ファクトリーとして機能する具体的に次のように使われる。 defaultDatabase"既定データベースクラスオブジェクト定義した派生クラスで再定義可能なメソッドオーバーライドされた際は、必ずしもクラスオブジェクト返されるとは限らずインスタンス オブジェクト返される場合もある。"^ PostgreSQL. database"databaseへの接続返すメソッド。 defaultDatabaseにより返されPostgreSQL対し、インスタンス・クリエイションである #connect:セレクター使ったメッセージ送られPostgreSQLのインスタンスオブジェクトが生成される。 ただし、defaultDatabaseは、派生クラスによって再定義できるため、#connect:セレクター使ったメッセージが 必ずしもPostgreSQLクラスオブジェクト送られるとは限らない。"^ self defaultDatabase connect: self configuration. また、Smalltalk はクラスメソッドを上書きできるため、インスタンス・クリエイションを次の様に実装する事で基本的な初期化処理派生元のクラス任せることができる。 x: aX y: aY^ self newx: aX;y: aY. 上記は、2次元座標用のクラスオブジェクトのインスタンスオブジェクトを初期化する派生元のクラスオブジェクト実装されたインスタンス・クリエイションである。このクラスオブジェクト継承した2次元座標用のクラスオブジェクトでは#x:y:セレクター使ったメッセージ対応するメソッド実装する必要はない。インスタンス・クリエイションを利用したパターンSmalltalk では広く利用され、いたる所で見ることが出来る。

※この「オブジェクトの生成と初期化」の解説は、「Smalltalk」の解説の一部です。
「オブジェクトの生成と初期化」を含む「Smalltalk」の記事については、「Smalltalk」の概要を参照ください。

ウィキペディア小見出し辞書の「オブジェクトの生成と初期化」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「オブジェクトの生成と初期化」の関連用語

オブジェクトの生成と初期化のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



オブジェクトの生成と初期化のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのSmalltalk (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS