プロパティがないJavaはJavaScript以下
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGしかもパブリックメンバを作らないで
getter、setterメソッドを作れって主張していますね。
そのせいでUMLで設計したプロパティをコードに置き換えると
メソッドになるのはマヌケですね。
JavaScriptにさえプロパティはあるのに
JavaはJavaScriptにまで劣るとしか思えませんね。
0002デフォルトの名無しさん
NGNGところでさぁ、「○○以上でも、○○以下でもない」っていう台詞よく聞くんだけど
それだったら存在すらできないじゃん?どうよ?
0003デフォルトの名無しさん
NGNGJavaAPI のカバー範囲>>>>>>>>>>>>JavaScriptのそれ
終了。
0004デフォルトの名無しさん
NGNGgetter/setter にプロパティ変更通知付けたりするとすごい勢いで
行数増えちまう。まぁ作るだけなら Excel とかで出力ツールでも
作れば良いんだけど、コードの可視性悪いし javadoc も読みづらい。
かといって HashMap 化するのも馬鹿げてるし。
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGIDE が糞コード吐き出す罠
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGsetter、getterの糞コードってどんなんだよオイ。
00097
NGNGBASIC の、突如現れる変数定義みたいなもんですか。
0010デフォルトの名無しさん
NGNGコードの例を見たいんだけど、
誰か作って。
0011デフォルトの名無しさん
NGNGD e l p h i
が最強ってことですね。
0012デフォルトの名無しさん
NGNG外部からのアクセス時に、もしその必要があれば、クラス自身の
責任範囲で各種処理を記述できます。
setterがコールされてプロパティが変更された時に、イベントハ
ンドラへの通知などは、良くやることですよ。
例えば、SwingのsetterメソッドにはPropertyChangeListener
への通知が頻出します。
0013デフォルトの名無しさん
NGNGイベントの通知タイミングを緻密に設定できる方が優れてると思うんですが。
同期化やら遅延呼び出しやら。
あるいはよその輩を呼びたくないときに protected や private な別の setter を使うとか。
0014デフォルトの名無しさん
NGNG知障
0015デフォルトの名無しさん
NGNGそう実装すればいいだけです。そのクラスの実装に責任がある人間が、
好きに実装してください。
突っ込みの意図がわかりません。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG俺はsetter/getterで充分だと思うんだけど
ごちゃごちゃ機能増やしてほしくねーなぁ
0018デフォルトの名無しさん
NGNG以上と以下の定義を調べてから書き込めよ。
0019デフォルトの名無しさん
NGNG否
0020デフォルトの名無しさん
NGNGお前がな
より大きい、より小さいと混同してないか
0021デフォルトの名無しさん
NGNGJavaは、Javaであり、それ以上でも、それ以下でも、無いからな〜。
ココ、試験に出るから、良く憶えておけ〜。」
生徒A「はい、Javaなんて、存在しないも同じって事でしね」
先生「おまいだけは、オブラートに包むって事も憶えておくように。」
0022デフォルトの名無しさん
NGNG「アトミックに実行」とか言うのが重要視されてませんでしたっけ?
object.property = value;
とか書くと,メンバ変数 property に value を代入するのが
アトミックに実行できるように思えてしまうけど,
実は裏で setter が走ってるとか泣くっしょ。
同様の理由で
object.getA().getB().doMethod();
みたいなコードも嫌われるって聞いた事あります。
てか,すいません。あんまし自信ないんでツコミ希望。
0023デフォルトの名無しさん
NGNG裏切り物め。
0024デフォルトの名無しさん
NGNGobject.property = value;
とかいてもアトミックに実行できるとは限らない罠
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGJavaと無関係だろ!
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNGそれを真似てC#はCという文字を入れているわけか。
0030デフォルトの名無しさん
NGNG二つの参考書は混同する。
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGJavaはそれよりも劣るわけで。
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG乏しい知識をJava使いに突っ込まれて
痛い目にでも遭ったんですか?w
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG突っ込まれて痛い目にあったようだね。
0038デフォルトの名無しさん
NGNG天才なんだ。ですね?
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGいや、実際混ぜて置いてある書店多いよ
>>29
C++
++
0041デフォルトの名無しさん
NGNG突っ込まれて痛い目にあったようだね。
0042デフォルトの名無しさん
NGNGCとかJavaとか必要ないでしょ
必要だ!と言う人がいたら
その人に聞きたいね、
あんた、いったい何を作るのかと
004322
NGNGツッコミングありがとう。
てか,後ろで setter が走るようなプロパティじゃなくて
ただの変数に代入する操作でも,アトミックに実行できるとは限らないって事すか?
# 必殺,スレ違いsage
0044デフォルトの名無しさん
NGNGそうだよ。スレッドコンテキストはワード単位で切り替わる。
long 値の上位 32 ビットだけ代入された状態でスレッドが切り替わるかも知れない。
参照型の代入もしかり。
ていうかアトミック性の保障は synchronized だけで、その他の命令では保障なし
という仕様だったと思うが実際のインプリはどうなっとるのか知らん。
… これ SMP の話だったかな?
0045デフォルトの名無しさん
NGNG勉強になりますた (´人`) スタ
0046デフォルトの名無しさん
NGNGvolatile修飾子付のインスタンス変数への操作は、保証されているん
じゃなかったっけ?
操作の中間でのコンテキストスイッチを許さないうえに、スレッド単位
でのJVMメインヒープに対するキャッシュを所有することも許さないと
いう修飾子。
単純な変数へのset操作が競合するかもしれないなら、volatileでオッ
ケっすよ。
0047デフォルトの名無しさん
NGNG変な使い方をするなよ。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG> 確かに OO で設計してると property ほしくなるよなー。
> getter/setter にプロパティ変更通知付けたりするとすごい勢いで
> 行数増えちまう。まぁ作るだけなら Excel とかで出力ツールでも
> 作れば良いんだけど、コードの可視性悪いし javadoc も読みづらい。
> かといって HashMap 化するのも馬鹿げてるし。
>>4はオブジェクト指向の真意を理解していないと見た。
C#かVBでVS.NETでマウスでGUI部品を馬鹿みたいに追加しすぎて
ソースコード内にひとつのクラス内にプロパティ使いすぎて数百もの
プロパティに怯んで愚痴っている模様。
>>4はもっとオブジェクト指向を勉強してから発言すべき。
0050デフォルトの名無しさん
NGNG> だいたいJavaScriptなんて名乗るな
> Javaと無関係だろ!
ECMAScriptと名乗ればよし。
ECMAで標準化されているから
0051デフォルトの名無しさん
NGNGX x = new X();
x.a = 1;
ときたら
Xのソースは
class C {
public int a;
//省略
}
となっていると勘違いしそうで不便なのだが。
素人にソースコード書かせるとこの区別がつかなくなりウザイのだが。
一見便利そうで便利でない、応用範囲が限定された糞仕様だわこいつは。
ということで>>1はドキュソ確定。
0052デフォルトの名無しさん
NGNG勘違いするまでもなく、aはプロパティにしておくのが基本なのれす。
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG所詮あんたの低い基準での話なんだよね。
オーバーロードとかアスペクト指向とか
見た目でコードが一つだと勘違いして使いこなせそうだな。
C++では::と->と.がJavaでは全部.なのだがそれも.がきたら
class C {
public int a;
//省略
}
となっていると勘違いしそうで不便だとか言っているだろ。
0056デフォルトの名無しさん
NGNG0057山崎 渉
NGNG0058超初心者
NGNGアクセサメソッドとどう違うのですか?
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG0062_
NGNG0063デフォルトの名無しさん
NGNGpublicなインスタンス変数に直接アクセスすることの様に、
書いているが、全く勘違いもいいとこ。
きちんと、プロパティメソッドというのがあり、
それを2種類(Javaのsetter,getterに相当する)
定義するように(読みとり専用は1種類)なっている。
0064デフォルトの名無しさん
NGNGありがとうございます。ゲッターは分かりました。
あと、セッターが分からない・・・(泣)
0065デフォルトの名無しさん
NGNGおらよ。
ttp://www10.ocn.ne.jp/~tabuttie/page010.html
0066JT・ロシュ買っとけ
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG>>54==>>4はC#が業務開発専用と思い込んでいる高校生。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGと思い込んでるわけですね :-P
0072デフォルトの名無しさん
NGNG超訳にツッコミを入れても。。。
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG一見便利そうに見えても、思わぬ不便な落とし穴にはまることがあったりする。
たとえばNameというプロパティを定義すると
Get_Name, Set_Nameというメソッドを作ることができない。
作るとエラーになる。
あるいは、set/getキーワードを使いたくない場合は、
メソッド名の頭にGet_, Set_を使わなければならない。
その辺りの制限はJavaのsetter/getterメソッドの命名規則と変わらない。
この程度ならまあどうでもいいかもしれない。
しかし、これはどうだろう。
C#で不変クラスを作りたいとき、お前らはどうする?
わざわざプロパティを使うか?
C#のプロパティを不用意に使うと、一部のプロパティ変数を
不変にすることがJava程容易ではなくなるのだ。
Javaでは不変にするためにsetterメソッドを定義しない、フィールドをprivate,
クラスをfinalにするだけで済む。
C#でも、プロパティの使用をやめ、
Javaと同じように(C#ではGet_/Set_で命名)扱えば済む。
0075デフォルトの名無しさん
NGNGわざわざプロパティを使いたがる者がいるようだが、
プロパティを使ったクラスを不変にするためにJavaよりも面倒なことをしなければならない。
C#は、クラスにプロパティを定義するとそのクラスはデフォルトで可変クラスに
なってしまうという欠点を持っているのだ。
ある方法を使ってsetterの使用を禁止しないといけないのだ。
この事実を初めて知ったときは、C#とはなんて中途半端な仕様なのだと思ってしまった。
C#はなんともオブジェクト指向らしさを欠いている。
0076デフォルトの名無しさん
NGNGひどすぎC#
じゃなくてあんたの理解が。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG> たとえばNameというプロパティを定義すると
> Get_Name, Set_Nameというメソッドを作ることができない。
> 作るとエラーになる。
IL的にはGet_Name, Set_Nameなのでプロパティをサポートしない言語のために、
そしてECMA標準に従って1.1でエラーになるように修正された。
> あるいは、set/getキーワードを使いたくない場合は、
使いたくない場合ってなんじゃそりゃ?
後半はデタラメすぎて略。
0079デフォルトの名無しさん
NGNG不変クラスというものをご存知かね?
0080デフォルトの名無しさん
NGNG0081山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
■ このスレッドは過去ログ倉庫に格納されています