どこらへんがシリーズなの?
 おしえて! みのもん!(ポケモンぽい)

 (注:今回は痛烈にプログラマ向け。)

 冠詞って言うと、ジスイズアペンでおなじみの、アペンのアの部分。aとかanとかtheとか。定冠詞(the)と不定冠詞(a,an)の二種類で固定だから、覚えるのは別に簡単。つけ方も簡単。

 ただ、どこで付けてどこで付けないのかが超ワカメ。それが冠詞。

 よくわからないので、わかるものに置き換えて考えてみる。冠詞 in オブジェクト指向(*1)。

 まず、割とまともな英文法ぽく見てみると、こんな感じ。

 「太陽」は一つしかない→不加算名詞なので、The sun。
 「水」は数えられない→不加算名詞なので、The water。
 「抽象的に"水"と言うもの」を言う場合は単に、Water。
 「りんご」はいくつもある→可算名詞なので、An apple。
 「抽象的に"りんご"と言う存在」を言う場合は、Apples。

 こういうのを、(強引に)オブジェクト指向的にまとめると次のようになる。


 (定義)----------------------------------
 
 加算名詞    = クラス
 不加算名詞 (1) = Singletonパターンのクラス(インスタンスが一つに限定される)
 不加算名詞 (2) = 抽象クラス

 定冠詞     = 無名クラスを定義(その場でサブクラスを作ってインスタンス化)
 不定冠詞    = new(インスタンス化)

 Staticアクセスの手続き
 ・加算名詞の場合  = 冠詞なし+末尾に s
 ・不加算名詞の場合 = 冠詞なし


 (例1)----------------------------------

 加算名詞"Apple"は、クラス。

 不加算名詞"Sun"は、Singletonパターンのクラス。
 ("Sun"は一つしか無い。逆に言えば、一つはある。)

 不加算名詞"Love","water"は、抽象クラス。
 ("Love"は実体のない概念なので、数えることが出来ない。)
 ("water"も同じ。いかにも実体を指しているようでいて、実は無数の粒子のかたまりを漠然と"water"と呼んでいるだけなので、単なる概念。)


 (例2)----------------------------------

 たとえば、クラス"Apple"には、
 ・メンバ変数"price"
 ・クラス変数"color"
 が、定義されているとする。

 クラス"Apple"のメンバ変数"price"にアクセスするには、"Apple"をインスタンス化する必要がある。
 ⇒インスタンス化するには、不定冠詞を使う。
 The price of an apple. (new Apple().price)

 インスタンス化しない場合、
 The price of apple. (Apple.price (エラー))
 クラス自体からメンバ変数にアクセスすることは出来ないため、コンパイルエラーとなる。
 
 ただし、クラスへのStaticアクセスは、所定の手続きを踏むことで行える。
 クラス"Apple"のクラス変数"color"にアクセスする場合。
 ⇒加算名詞へのStaticアクセスは「冠詞なし+末尾に s」
 The color of apples. (Apple.color)


 (例3)----------------------------------

 たとえば、抽象クラス"Love"には、
 ・メンバ変数"length"
 ・クラス変数"power"
 が、定義されているとする。

 抽象クラス"Love"は、そのままではインスタンス化出来ない。
 A Love. (new Love() (エラー))

 抽象クラス"Love"を使うには、無名クラスを使うか、Staticアクセスするかの二つの方法がある。

 まず、無名クラスでサブクラス化したものをインスタンス化した場合。
 メンバ変数"type"へのアクセス。
 ⇒無名クラスは定冠詞で作る。
 The length of the love. ( Love TheLove = new Love(){実装}; TheLove.length )

 クラスへStaticアクセスする場合。
 クラス変数"power"へのアクセス。
 ⇒不可算名詞へのStaticアクセスは「冠詞なし」
 The power of love. (Love.power)


 ・・・

 力尽きた。
 部分部分でのほころび(*2)はご愛嬌としても、不加算名詞 (1)の解釈が超厳しい。The sun. はSingletonなクラスを無名クラスで再定義するの?きゃー意味不明やん。でも太陽はどう考えてもSingletonのような。
 あー、あと、固有名詞の場合とかもあったし!

 あ、上からタライが
 ガンッ からんころんからんころん ころんからん…

 なんてベタな。


 *1)オブジェクト指向っていうか、実はJava。でも根っこはオブジェクト指向から来てるし、こう書いたほうがまだ読者層を狭めなくて済むかなぁーって。思ったの。
 *2)例文中のpriceとかpowerとかの冠詞が適当。あと、The price of apple.はインスタンス化(an apple)してないからエラーって書いたけど、ほんとかー?

0 コメント: