[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 12699] Re: 議事録「 Java 言語仕様第3版」を読む会(第 3 回)
前橋です。
私も詳しくはないですが。
>スクリプトでは依存する宣言ほ先に書く必要がある
> --> スクリプトは不便ではないか?
> --> JavaやC#などでは可能なのに...
Rubyではクラス定義は「実行されます」。だからif文でよけたりとかもできます。
先に書く後に書くの問題ではなくて、使う前に実行されていなければ
なりません。
On 2007 Jun 11 07:12:06
"TAKAHASHI,Toru" <torutk@xxxxxxxxxxxx> wrote:
> 最初フィールド(インスタンス変数)を定義する方法がわからず、何時間も
> 悩みました。どうやらRubyでは「フィールドは定義しない。メソッドの定義
> で暗黙に(自動的に?)定義される」ということと理解しました。
インスタンスフィールドは、代入により実行時に生成されます。
よって、同じクラスであっても、インスタンスフィールドは
オブジェクトによりあったりなかったりすることがあり得ます。
>> また、Java版のコードでは package points; を宣言していますが、
>>Rubyには同様な仕組みはあるのでしょうか?
>classより大きな単位は見当たりませんでした。
importと似たような使い方として、ファイルをひとつのモジュールとして
requireすることはできます。
moduleはJavaで言えば「実装が書けるinterface」的な紹介が
されることが多いわけですが、
include(Javaで言えばimprements?)自体が実行される
メソッドなので、小松さんの例だと、小松さんのコードの後に
include Points
p = Point.new
p.x = 10
p.y = 20
print p.x
print p.y
とか書けばPoints内のクラスが使えるわけですけど。
――どうもなんだか気持ちが悪い…
# Ruby初心者の上よっぱらいなので試しもせずに書いてます。
# ツッコミ歓迎。
------------------------------------------------------------
前橋 和弥 PXU00211@xxxxxxxxxxx
http://kmaebashi.com
------------------------------------------------------------