- PR -

特集「私がJavaからC#に乗り換えた10の理由」について

投稿者投稿内容
Kuolema
会議室デビュー日: 2002/05/03
投稿数: 12
投稿日時: 2003-07-15 11:59
引用:

いまいさんの書き込み (2003-07-15 11:19) より:


なるほど〜。いまいさん、どうもありがとうございます。
(勝手に私がお礼を言ってしまいますが、)落ち着いてきて、段々とこの会議室の会話も面白く、価値のあるものと感じることができるようになってきました!改めて、C#の持つプロパティとは何か、イベントとは何か・・・、またどの様な考えで用いればよいか、Javaではどうであるかの比較など、非常に有用だと思います。会議室なので、後でこれらの会話をまとめて(これとは別に)、議事録が出せたらすばらしいですよね・・・なんて、誰がまとめるんだろ(笑)。
いまい
会議室デビュー日: 2002/07/02
投稿数: 13
投稿日時: 2003-07-15 12:11
引用:

Kuolemaさんの書き込み (2003-07-15 11:59) より:
なるほど〜。いまいさん、どうもありがとうございます。
(勝手に私がお礼を言ってしまいますが、)


それは、元ネタの記事書いたおじま氏と@ITに言ってください。
#あたしは、たまたま1ゲットしただけなんで。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-07-15 12:13
プロパティ、プロパティと、プロパティがよく出てくるの便乗質問(おい)

 自分でもよくやり、MSのヘルプでもよく出てくるこんな使い方...
コード:
Public Class Class1
 Private __Name As String

 Public Property Name() As String
  Get
   Return __Name
  End Get
  Set
   __Name = Value
  End Set
 End Property

End Class


とても無駄、「Public Name As String」にしておけばええやん、
と思ってしまうのですが、プロパティにすることにどういう意味があるのでしょう??
これが頭にあるので以前(2003-07-11 14:59)の
「安易な設定でprivateをpublicにしてしまう「プロパティ」」
という投稿があるのですが・・・
〜〜〜〜〜


ついでに
引用:

Kuolemaさんの書き込み (2003-07-15 11:59) より:
会議室なので、後でこれらの会話をまとめて(これとは別に)、議事録が出せたらすばらしいですよね・・・なんて、誰がまとめるんだろ(笑)。


言い出しっぺの法則・・・かと(笑)
いまい
会議室デビュー日: 2002/07/02
投稿数: 13
投稿日時: 2003-07-15 12:32
引用:

Jittaさんの書き込み (2003-07-15 12:13) より:
ついでに
引用:

Kuolemaさんの書き込み (2003-07-15 11:59) より:
会議室なので、後でこれらの会話をまとめて(これとは別に)、議事録が出せたらすばらしいですよね・・・なんて、誰がまとめるんだろ(笑)。


言い出しっぺの法則・・・かと(笑)


無理だろ。脳ミソついていってないもん。
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2003-07-15 13:22
こんにちは、Wataです。
私自身はjava信者だと思いますが、いのつち氏の言うようなプロパティの概念的なメリットは確かにありますよね。
逆にプロパティの利便性の説明に次のようなイディオムをよく見かけますが、
コード:
foo.A += bar;


これってどうなんでしょう?凄く便利そうに見えるけど、実際にプロパティに対して+=したくなるようなことってそんなにあるのでしょうか?少なくとも今まで私が仕事で作ったプログラムには適応できるところは見当たらないです。
#そういう意味ではまるで、「TVショッピングの高枝切りバサミ」に通じるかも。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-07-15 13:27
>Jittaさん

プロパティ(C#)やgetXX,setXX(Java)というのはオブジェクトの外へ提供しているサービスです。
外からはNameという名前(セレクタって言うのかな?.NETの用語かOOの用語か分かりませんが)の「Name属性の値を知ることができるサービス」を提供していると見えます。
外からは、そのサービスを提供しているという仮定の元、オブジェクトにアクセスするコードを書くわけです。

実際の値は
string型のフィールドで持っていても、
他の属性の値から生成しても、
関連をもっている他のオブジェクトから引っ張ってきても、
初回はデータベースから取ってきて保存しておき2回目からはその値を返すことにしても、
構わないわけです。

しかし、フィールドにアクセスできるようにしてしまうとオブジェクトの内部構造がが剥き出しになってしまします。
もしNameというフィールドが無くなった場合、あるいは性質が変わった場合、外から見たオブジェクトの仮定も変えなければならないわけです。

別に外からフィールドにアクセスする仕様でも構わないんでしょうが、「オブジェクト指向」的には×です。

買い物をして、「1200円になります」と言われたときに、「じゃ、1200円取って」といって財布を店員に渡さないですよね?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-07-15 13:52
引用:

一郎さんの書き込み (2003-07-15 13:27) より:

プロパティ(C#)やgetXX,setXX(Java)というのはオブジェクトの外へ提供しているサービスです。
外からはNameという名前(セレクタって言うのかな?.NETの用語かOOの用語か分かりませんが)の「Name属性の値を知ることができるサービス」を提供していると見えます。
外からは、そのサービスを提供しているという仮定の元、オブジェクトにアクセスするコードを書くわけです。


 解説ありがとうございます。
 えっと、たぶん、「Name属性の値を知ることができるサービス」っていうのが、
わかっていないようです。
『実際の値は…構わないわけです。』←この辺は、わかるんです。
わかる?わかっているつもり?とにかく、納得できるのです。
また、SetXXXとか、GetXXXとかというのも、カプセル化?
隠蔽するというところでそうするというのも、納得できるのです。
ただ、設定も取得も素通り、、、
というのが、感覚的に納得がいかない。

引用:

買い物をして、「1200円になります」と言われたときに、「じゃ、1200円取って」といって財布を店員に渡さないですよね?


 オブジェクト指向の本で見かける例ですね。あ、、、何となく、納得。
 で、相手が例えば嫁はんだと、Friendで宣言してあると・・・



〜〜〜まとめ失礼
引用:

いまいさんの書き込み (2003-07-15 12:32) より:
無理だろ。脳ミソついていってないもん。


 いえいえ、「議事録をまとめて」と、言い出した人・・・
Kuolema
会議室デビュー日: 2002/05/03
投稿数: 12
投稿日時: 2003-07-15 14:37
引用:

Jittaさんの書き込み (2003-07-15 13:52) より:


>ただ、設定も取得も素通り、、、
>というのが、感覚的に納得がいかない。

C#のプロパティは、Read OnlyやWrite Onlyにもできますけど、そういうことをおっしゃっているのでしょうか?
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbconimplementingpropertiesincomponents.asp

> いえいえ、「議事録をまとめて」と、言い出した人・・・

え、私のことですか!?(笑)
(私は、いまいさんが誤ってお答えになったのでホッとしておりましたが(笑))

でも、この会議、一体いつ終焉を迎えることやら・・・(国会なら、会期は決まっていますけどネット上では、時間制限もないし・・・)。皆様は、議論すべきネタは尽きたのでしょうか(私個人としては、もっと「J2EE VS .NET」にまで、発展してほしかったのですけども(爆))?

#短い夏休みでも使って、「(同じく)ついていってない脳ミソ」を動かしてでもやってみようかな。皆様のご指導を受けつつ・・・。


[ メッセージ編集済み 編集者: Kuolema 編集日時 2003-07-15 14:56 ]

スキルアップ/キャリアアップ(JOB@IT)