コーディング規約
■ このスレッドは過去ログ倉庫に格納されています
00011
NGNG0153144 ◆O1EofOj10A
NGNGdobule Point::getR() const; だろうね。
理由は
メンバ変数 x と y から一意に求められる上、
処理の負荷も気にならない
ゆえにこれはプロパティと言える。
0154デフォルトの名無しさん
NGNGでは、原点に関して対象な点の座標を取得するメソッドだとどうなる?
struct Point {
double x;
double y;
Point getSymmetricPoint() const { return Point(-x, -y); }
};
これも getSymmetricPoint() でOK?
0155デフォルトの名無しさん
NGNG↓【話をそらさずに】反論をどうぞ。>>144
0156デフォルトの名無しさん
NGNG区別できないものに対して区別しようとするのがそもそもの間違い。
0157144 ◆O1EofOj10A
NGNG条件は前回と一緒(メンバ変数 x と y から一意に求められ且処理の負荷も気にならない)
だが、今回はメソッドと考える。
構造体が「点」を表すものであり、「対称な点」というのを「点」の1属性と考えるのは少々強引だからだ
(これが単純な「点」ではなく、もっと原点とか対称といった概念を意識させる物であれば話は別)
しかし、ここで君が欲していた答えは「GetSymmetricPoint()」なわけだが、
僕はそうは答えない、なぜなら自己内ルールのプロパティへのアクセサと紛らわしくなるからだ。
今回はメソッドであるから
Point CalcSymmetricPoint() const;
とでもしようか。
どうだろう、君の勘違いはそろそろ解けてきただろうか?
0158144 ◆O1EofOj10A
NGNG反論?そもそも何に対して反論すればいいのかわからんが。
>154 は僕に質問しているだけであって、何か反論すべき理論を披露したようには思えないが。
>>156
区別できない?
無理矢理混同しておいて区別できないとはね。
0159デフォルトの名無しさん
NGNGしばらく運用していてsymmetricの取得がかなり多いことが分かりました。
はいどうぞ。
struct Point {
double x;
double y;
Point symmetric;
const Point& getSymmetricPoint() const { return symmetric; }
const Point& GetSymmetricPoint() const { return symmetric; }
const Point& CalcSymmetricPoint() const { return symmetric; }
};
本質を見失わないようについて来いよ。
0160デフォルトの名無しさん
NGNGプロパティかそうでないかは、俺様ルールに従って決めるだけで、
客観的な尺度というものがない。
俺がプロパティだと思うものはプロパティだから、getXXX()と名前をつけ、
俺がプロパティでないと思うものは getXXX()とは呼ばずにたとえばCalcXXX()と呼ぶ。
ご立派なルールだ。
0161144 ◆O1EofOj10A
NGNGなら SymmetricalPoint 構造体にしたら?
struct SymmetricalPoint {
Point points[2];
};
あと 君のコードがC++ ならコンパイルできないだろう。(循環参照を解決できるスマートポインタを使うかい?)
まあはぐらかしたとか言いかねないからお題の通りに答えてあげよう。
たとえキャッシュされていても、「対称な点」を「点」の1属性と考えるのは少々無理があるだろう
僕の答えは
(戻り値は上述の理由で表記不可能) CalcSymmetricPoint() const;
となるね。
> 本質を見失わないようについて来いよ。
最近は「いろいろ教えてくれてありがとう」の事をこう言うのか?
シャワーを浴びてくるのでしばらくレスしないだろうが、さっきみたいに
逃げただのと騒がないでくれよ。
0162144 ◆O1EofOj10A
NGNG面白いね君は。
世界で上から100人のプログラマを集めたとして
この100人に同じ問題をプログラムさせたら、全員がほぼ同じコードを書くと?
プログラミングに唯一かつ客観的な正解があるとははじめて知ったよ。
ここまで書いておいて何だが、
> 俺がプロパティだと思うものは〜
もう少し客観的なルールを披露したつもりだったが、伝わらなかったようだね。
0163デフォルトの名無しさん
NGNGうわー。一番やばい回答が返ってきた。
>なら SymmetricalPoint 構造体にしたら?
何故!?
ただ速度を速くしただけなのに、何故そんなことをせにゃならん?
>たとえキャッシュされていても、「対称な点」を「点」の1属性と考えるのは少々無理があるだろう
いや、これはわかってるんだけど、>>152がPointでお題を出したからそれに従ったまでだ。
さあ、大詰めですよ。>>130は君理論だとどうなるのかな?
class ListWithLengthMethod { ←大爆笑
char* str;
int length;
int getLength() {return this->length;}
}
0164デフォルトの名無しさん
NGNGclass ListWithLengthProperty { ←大爆笑
だな。この場合は。
0165デフォルトの名無しさん
NGNGコンパイル通らないのはすまんかったな。JavaとC++がごっちゃになってた。
まあ特に今回の話には関係ないので勘弁な。
0166デフォルトの名無しさん
NGNG> 逃げただのと騒がないでくれよ。
いつ誰が騒いだんだろう。妄想癖?
0167デフォルトの名無しさん
NGNGそんなん、2chを見てれば分かる。
早漏の香具師が多いからな。
0168デフォルトの名無しさん
NGNG愚鈍なプログラマでも名前が決められるように、
メソッド名ならば大文字ではじめるというようにシンプルに決めている。
いちいち、これはプロパティだろうかと 144 ◆O1EofOj10A 様に
お伺いを立ててから、getXXX()にしようかそれともCalcXXX()にしようかと
悩まなくてもすむようになっている。
これは、ある種の福音だね。
0169デフォルトの名無しさん
NGNGコーディング規約は全て144 ◆O1EofOj10A 様(w の頭の中にあるんだろうよ。
人によって解釈があいまいなものを隠せなきゃ規約じゃない。
0170デフォルトの名無しさん
NGNGところで疑問なんだけど、>>144はその規約でチーム開発したことってある?
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG7月は山崎渉の2件を入れても3件しかなかったのにw
0174144 ◆O1EofOj10A
NGNG> うわー。一番やばい回答が返ってきた。
> >なら SymmetricalPoint 構造体にしたら?
> 何故!?
> ただ速度を速くしただけなのに、何故そんなことをせにゃならん?
君は墓穴を掘るという言葉を知っているかな?
君の拙い設計をあえて指摘せずによりよい案を出してあげたのに
そんなに君の設計の拙さを指摘して欲しいのかい?
いや、ある意味君はすばらしい生徒なのかもしれないね。
では模範解答だ。
まず君の発言を引用して広い見地から見ていこう。
>>> しばらく運用していてsymmetricの取得がかなり多いことが分かりました。
しばらく運用した結果というのは、運用によって Point を利用するコードが変わったという事だ
その結果キャッシュしなければいけないほど対称な点の取得が多かった
つまり運用後に見えてきた答えによって初期の設計のミスが現れたという事なのだよ。
これは悪い事ばかりではなく、コードをよりよくする動機になる。
そこで僕の実装だ
struct SymmetricalPoint {
Point points[2];
};
まず大事なのは、僕の案では Point はなお健在であるという事だ。
「対称」が必要の無い場面では Point は Point のままでいい。
「対称」が頻繁に必要になる時にのみ、SymmetricalPoint を利用するのだ。
対して君の拙い案は極めてプリミティヴに近い Point にキャッシュを導入しようとしている。
Point を使うときはいつでもキャッシュの分、追加のリソースを支払わなければならない。
これは再利用への勇気と決意を失わせるに十分なコストだ。
0175144 ◆O1EofOj10A
NGNGあまりにも僕の考えるリストと違ったものなので驚いたが
class JunkString { //あまりにも哀れなので変えたよ
char* str;
int length;
// int getLength() {return strlen(this->str);}
int getLength() {return this->length;} // どちらでも変わらないが答えだ
};
>>165
僕はとても嬉しいよ、君にも正直に謝る事ができるんだね。
>>169
自己レスご苦労様。ここでも >>165 が正直だと実感できる。
君は C++ と Java しか知らないんだろう。
C# も Delphi も君がいつも馬鹿にしている VB ですら
言語レベルでプロパティという機能が備わっている。
それとも全世界の C# ユーザと Delphi ユーザーと VB ユーザと
その他の同様の機能を持つ言語のユーザ達が僕の元に
「これはメソッドですか?プロパティですか?」
とお伺いを立てに来てくれるのかな?
ちょっとイジワルな表現をしてみよう。
知 識 の 程 度 が 一 定 だ か ら 多 数 の 常 識 派 を 装 っ て も す ぐ バ レ る よ。
0176デフォルトの名無しさん
NGNGなんでその先が想像できないのかねぇ。趣味でやってるか、バカかのどっちか(あるいはどっちも)だな。
0177デフォルトの名無しさん
NGNG>>169 は自己レスじゃないよ。
周りが全部同一人物に見えてるらしいね。
ピンチになると敵を減らしたいからそう思うんだってさ。
------------------------
おい、ふざけてるのか?それとも本気なのか?
class String { // もともとの実装
char* str;
int GetLength() {return strlen(this->str);}
};
class JunkString { //あまりにも哀れなので変えたよ
char* str;
int length;
int getLength() {return this->length;} // どちらでも変わらないが答えだ
};
たかがLengthメソッドからLengthプロパティに変更しただけで別のクラスを作るのか?本気であほちゃう?
まあ言葉が足りないんだろうと好意的に解釈して、
int GetLength() {return strlen(this->str);}
が、
int getLength() {return this->length;} // どちらでも変わらないが答えだ
に変わってしまっているぞ。インターフェイス変わってどーすんねん。
0178デフォルトの名無しさん
NGNG144 ◆O1EofOj10A の主張
・プロパティかメソッドかでインターフェイスを変えるのは必然
・プロパティかメソッドかの判断は各人が行う
・プロパティは小文字から始める。メソッドは大文字から始める。
その他の主張
・プロパティかメソッドかに根本的に違いは無い
(クライアントの○○が欲しいという要求を処理できればそれでい)
・プロパティかメソッドかの判断は必要ないので
大文字で始めるか小文字で始めるかはプロジェクトで決める。
こんな感じか?
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGいいえ。使い分けるべきです。理由は>>142ですでに述べています。
とレスが来そうな予感
0181デフォルトの名無しさん
NGNGあれ?>>157の「紛らわしくなるから・・・」ってのが>>144様の見解じゃない?
0182144 ◆O1EofOj10A
NGNGピンチになってまともな反論ができなくなるとそうする弱虫がいるんだってさ。
>>176
小学生じゃないんだから、勝負が終わった後に
ルールが悪かったとかゴネるのはやめたまえ。
>>176
> たかがLengthメソッドからLengthプロパティに変更しただけで別のクラスを作るのか?本気であほちゃう?
そう本気で考えちゃうなら君が阿呆なんだろう。
> インターフェイス変わってどーすんねん。
>>130 の後半と >>163 の両方をみてまだそう思うなら、君は頭だけでなく目も悪いようだ。
で、都合の悪い事は流すのかね?
C# と Delphi と VB を使ってる人は僕のところに来てるのかい?
0183144 ◆O1EofOj10A
NGNGナイス連携プレイ!まさしく一人であるかのように息がぴったりだよ。
もう少し >>157 を判りやすくかいてあげよう
(メソッドである CalcSymmetricPoint が)自己内ルールのプロパティへのアクセサと紛らわしくなるからだ。
君はあらさがしをしているつもりかもしれないが、一貫した主張であるが故に崩す事は難しいだろう。
0184デフォルトの名無しさん
NGNGって Windows板でよく暴れてる人ですか?
0185デフォルトの名無しさん
NGNG>24 = >29 = >30 = >42 = >45 = ... その他いっぱい
一人で大活躍だな。
まともなバージョン管理システムも使ったことがないようだし、
チーム開発できないタイプなんじゃない。
前の方の議論では、俺のソースに触るなという結論じゃなかったっけ。
>144 擁護派って >144 の他にいるのか?
0186デフォルトの名無しさん
NGNG> まともなバージョン管理システムも使ったことがないようだし、
> チーム開発できないタイプなんじゃない。
ああ、だから「俺規約」を持ち出してきてるわけか。
0187122=136
NGNG(とりあえず使う人には) まあなんらかの使い分けがあるんだろうけどさ、
そもそも「何でプロパティを区別するのか」というのはさっぱりわからんのだけど。
>>175 で VB, Del, C# がプロパティをサポートしてるといってるけど
それはあくまで事実であって、理由ではないわな。
0188デフォルトの名無しさん
NGNG> まあ言葉が足りないんだろうと好意的に解釈して、
> int GetLength() {return strlen(this->str);}
> が、
> int getLength() {return this->length;} // どちらでも変わらないが答えだ
> に変わってしまっているぞ。インターフェイス変わってどーすんねん。
漏れもそうオモタが、>>144が何か勘違いしてる様な気が。
0189デフォルトの名無しさん
NGNGって言ってもいいよ。 >144
0190144 ◆O1EofOj10A
NGNG>>144 = >24 なのか?
ご名答。これは事実だ。
しかし複数人で5分間隔でレスをしていたのに、突然 22:50 から 23:20 まで
「誰一人」レスを付けなかったのはすごい偶然だね。
理論的に破綻して関係ない話題で吊るし上げる理由を一生懸命探してたわけだ
> 一人で大活躍だな。
何ていうんだったかな?のしをつけてお返ししますというやつかな?
> チーム開発できないタイプなんじゃない。
君みたいな粘着でも見落とす部分があるんだね。
> 前の方の議論では、俺のソースに触るなという結論じゃなかったっけ。
君が、君一人がそう誤解したままなのだよ。
>>144 擁護派って >144 の他にいるのか?
君の擁護派も君達以外いるのかい?
>>187
君は別人か?イマイチ判りづらくてね。
> VB, Del, C# がプロパティをサポートしてるといってるけど
> それはあくまで事実であって、理由ではないわな。
論点がずれているよ。
全世界の C# ユーザと Delphi ユーザーと VB ユーザとその他の同様の機能を持つ言語のユーザ達が
僕の元に「これはメソッドですか?プロパティですか?」とお伺いを立てに来てくれるのかと聞いている。
違うのはわかるだろう?みんな自分でプロパティかメソッドか判断しているんだ。
0192187
NGNGいや、187 でも書いたようにみんな自分で判断しているのはそれでいいからさ、
それ以前の疑問の「なぜプロパティを使うのか?」を教えてくれ。
でこればっかりだとスレ違いなんで。以下を追加。
>みんな自分でプロパティかメソッドか判断しているんだ。
各自の判断でプロパティかメソッドが揺れるんだったらさ、
プロパティとメソッドでコーディングスタイルを変えるのは
チーム開発する場合はマズイだろ。
0193デフォルトの名無しさん
NGNG中途半端な知識で暴れまくっています。
こまった人です。
0194デフォルトの名無しさん
NGNG無難だと思うが。
0195デフォルトの名無しさん
NGNG>>144=>>24って分かったんだし、放置でいいのでは?
>>99
> っていうかもうこねーようわぁぁん。みたいなー。
超笑える(w
>>24=>>144ってのを意識して>>24から読み直してみそ。強情ぶりがかなり笑えるから。
0196デフォルトの名無しさん
NGNG口調はえらそうなくせに結局レアケースや自己矛盾な話を持ち出してきて一人でもがいてるだけだしな。
勝手に自演扱いにしてるし(まあ2ちゃんだからいいんだろうだけど)
CVS話の時もせっかく使い方教えてもらったのに結局礼も言ってないし(いや、教えたのは俺じゃないが)
「融通の利かない完璧主義者」で「プライドだけは一人前」。
0197デフォルトの名無しさん
NGNGtext = Widget.getText(); や
Widget.setText(text);
よりも
text = Widget.Text
Widget.Text = text
の方が「わかりやすい」ような気がするし、きっと「読みやすい」んだと思う。
これには功罪あって、「読みやすい」がために逆にその奥で行われている
複雑な操作を隠蔽するがために、高価な操作をまるで変数に代入するかの
ような気軽さで行ってしまうおそれがある。
OOであることと言語がプロパティという表現形式をサポートしていることは
無関係であると思う。
現に、VC++は _com_ptr_t<> でCOMに対するプロパティをサポートしている。
0198デフォルトの名無しさん
NGNGプログラム板で暴れてたのか。
もうWindows板に帰ってこなくていいです。>>144
0199デフォルトの名無しさん
NGNG0200197
NGNG表現することにより、C++でエミュレートしようとしているのだろう。
無 駄 な こ と だ が 。
そうしたからといって、プロパティにおけるシンタックスのような読みやすさが
手に入るわけではない。
C++と限定した理由だが、
Java使いがメソッド名を小文字以外で始めるとしたら、そいつは議論に値しない。
VB,C#,Delphiなどプロパティがサポートされている言語ではget/Getの使い分けをする
意味がない。
Ruby厨もPython厨もPerl厨もPHP厨もこんなことは考えない。
もちろん、SmallTalk使いやCLOS使いなわけもない。
0201デフォルトの名無しさん
NGNG> 君は C++ と Java しか知らないんだろう。
> C# も Delphi も君がいつも馬鹿にしている VB ですら
確かにLisp,Prolog,Pascal,C,C++,Java,C#,Perl,PHP,sh(bash,csh),N88BASIC(w)あと変なスクリプト言語やSQLぐらいしか知らん。
アセンブリはPC9801で画像処理に使ったぐらいだし、VBに至っては全然知らん。EXCELで1時間程度使ったぐらい。
OSもSolaris5.7〜、Linux2.0〜(RTLinux2.3pre2〜)、Windows95〜、MSDOS3.3D〜辺りの有名どころしか使ったこと無い。
知ってる言語は君より遥かに少ないし、経験も君に比べたら雲泥の差だと思う。
君のような素晴らしいプログラミング能力と素晴らしい設計力を前にしては全然歯が立たないよ。
と言うわけで俺はもう逃げます。はい負け犬です。やっぱり天才>>24=>>144様には勝てないです。
0202デフォルトの名無しさん
NGNGRuby ではメソッド名に xxx= というものが使える&
メソッド呼び出しの括弧が省略できるおかげで aaa.xxx = yyy という式が書ける
(この場合 xxx と = の間にスペースが入っても構文解析上 xxx= と同じように扱われる)。
get_xxx/set_xxx の代わりに xxx/xxx= というメソッド名にすることで
あなたのいうプロパティにおけるシンタックスのような読みやすさが手に入るのだ。
0203デフォルトの名無しさん
NGNG引数の無いメソッド呼び出しに括弧がいらないので、
property XXX : Integer read 〜 と function XXX : Integer; は
使う側では共に VARIABLE := OBJ.XXX;
なので、property/functionで迷ったら、とりあえず実装が都合がいい方にしておく。
最初functionにしておいて、後で代入したくなってpropertyにしても何の問題も無い。
あと、propertyは属性&派生属性へのアクセスと解釈してる。
どこまでが派生属性でどこからメソッドになるかは微妙な点も多いが、
上述の通り使う側の構文は同じなので迷ってOK
C#だと同じようにいかないのがちょっとなあ…って思うが。
0204144
NGNG何で自演してまで俺なんかに突っかかってくるのかと思ったら
Windows 板で虐められた私怨かよ
悪いが俺は Windows 板なんかにゃ行ったことねぇよ
妄想の中のいじめっこと遊んでろや
0205デフォルトの名無しさん
NGNG宿題はもう終わったのか?
早めに済ませておかないと後がつらいよ。
0206デフォルトの名無しさん
NGNGあれからだもんね。他人を自作自演扱いしだしたのは。
俺はプログラミング超初心者で勉強中だからここの会話の中身は訳わかんないから
自作自演したくてもできない。ごめんね。
>>204 は偽物なわけだが、
>>144 が Windows版で暴れてたのは文体とか必死さを見れば明らか。
0207144
NGNG知識の程度が一定(バカは隠し切れないかプッ)なのと
わかりやすいくらい自演そのもののレス時間
妙に Windows 板にこだわる
(マ板ならともかくム板の連中はそんなに Windows 板見てねえよ)
0209デフォルトの名無しさん
NGNG妄想厨は放置しろよ
0210デフォルトの名無しさん
NGNG・窓板住人
・妄想の友達がいっぱい(藁
0211デフォルトの名無しさん
NGNG僕 >>206 さんの心の中に住んでいる妖精さんです。
みんな >>206 さんを虐めないで!!
強がっているけど本当はとても弱い人なんです。
煽りもうまくなったけど、>>206 さんがいつも現実世界で
言われている事を2ちゃんねるで書いてみてるだけなんです。
現実世界では >>206 さん誰も友達いないから
2ちゃんねるのみんなまで >>206 さんを虐めたら本当に一人になっちゃう!!
みんながちょっと優しくしてくれれば >>206 さんはそれで満足なんです。
もう >>206 さんには2ちゃんねるしか居場所がないんです。
どうかみなさんよろしくお願いします(ペコリ
0212デフォルトの名無しさん
NGNG☆★☆★☆★ 新商品 ゾク・ゾク 入荷 ☆★☆★☆
★☆
☆★ 送料激安!! 送料激安!! 送料激安!!
★☆ http://www.get-dvd.com
☆★ 激安アダルトDVDショップ
★☆ お買い得!! 1枚500円〜 急げ!
☆★ インターネット初!「きたぐに割引」
★☆ 北海道・東北の皆様は送料も激安!
☆★ http://www.get-dvd.com
★☆ スピード発送!
☆★ http://www.get-dvd.com
★☆ 商品が豊富!
☆★ http://www.get-dvd.com
★☆
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNG面白いなこれ、
新しいコピペ?
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG(・∀・)カコワルイ!!
0217216
NGNG欝氏・・・逝ってきます。
0218デフォルトの名無しさん
NGNG> 悪いが俺は Windows 板なんかにゃ行ったことねぇよ
に対する答えだろ
0219デフォルトの名無しさん
NGNG多分、君はプロパティと、プロパティ取得用メソッドを混同してる。
プロパティというのは取得・設定できるオブジェクトの属性であって、
取得・設定する方法とは何の関係も無い。
文字列の長さというプロパティがあったとして、それを取得する方法が
l = string.Length;
l = string.getLength();
l = strlen( string );
l = string[-1];
のいずれであってもかまわない、これは構文上の違いでしかない。
getLength()は、
長さプロパティを取得するという動作を行うだけの普通のメソッドに過ぎない、
何も特殊なことは無い。
だからそれ以外のメソッドと違う命名規則を当てはめる必要はまったく無い。
たとえば
長さプロパティを取得しようとするけどやっぱり途中でやめちゃうメソッドなんてのを考えてみてくれ、
長さプロパティを取得するメソッドを特別扱いする意味がまったく無いことがわかる。
0220デフォルトの名無しさん
NGNG> 何も特殊なことは無い。
彼(>>24?)の主張は動作と値という概念の違いがあるから、
プロパティ操作メソッドとその他のメソッドを区別すべきという事みたいだけど。
あなたの主張は動作と値という概念の違いはないという事なの?
それとも動作と値という概念の違いはメソッドの規約として表現してはならないという事?
メソッドの規約として表現してはいけないとしたらそれにはどんな理由があるの?
0221デフォルトの名無しさん
NGNG値と動作には明確な違いがあるが、
値を取るという動作とそれ以外の動作には何も違いは無いという主張です。
0222220
NGNGなるほど。
メソッドは絶対に動作であってそれ以外の物ではないという主張なのね。
相手の主張は C++ でプロパティを表現する為に
便宜的にメソッドを使っている、つまりプロパティの操作は
動作ではないという事みたいだけど
あなたの意見はそうではない、という事でいいのかな?
0223デフォルトの名無しさん
NGNG221じゃないけどちょっとわかってきた気がする。
たしかに値の操作はOOでいうオブジェクトへの命令とはちょっと違う気がする。
値の操作にアクセッサーメソッドを使うのはカプセル化の為の手段でしかないですね。
0224デフォルトの名無しさん
NGNGそう。
たとえばNameというプロパティを設定するメソッドは
24的にsetNameでもいいし、ちょっとオシャレにRenameでもいい。
Renameは誰がどう見ても普通のメソッドと変わりないはず。
ならまったく同じ動作をするsetNameも同じメソッドのはず。
0225220
NGNGそういう考え方もできますね。
考え方次第ですね。
>>224
あなたの主張では
単純に名前を設定する事も改名しなさいと指示するのとまったく同じで
どちらを使ってもいいから、プロパティの操作はあなたの中ではメソッドだという事なのかな?
つまり同じ動作をする物はどちらを使っても良くて、どちらを使っても同じ?
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNGあなたのおかげで目が覚めました。
メソッドとプロパティは全然違うものでした。
ありがとうございました。
0229デフォルトの名無しさん
NGNGアクセサを隠蔽してプロパティにまとめたのがアクセサ抽象化。
よってプロパティの方が偉いのだよ。
0230220
NGNGいえ私はあなたを説得したりするつもりはなかったのです。
ただ相手が何を主張しているのかを理解しようと考えてみてほしかっただけです。
相手の主張に同意できたのならきっと私の意図も伝わったのだと思います。
0231デフォルトの名無しさん
NGNGはつみみです;)
0232デフォルトの名無しさん
NGNGどう考えてもメソッドじゃないべ。
なのにgetAgeとかgetHeightとメソッドにするのはどう考えてもおかしいべ。
だからAgeとかHeightにするんだけんど。
年齢にはマイナスが入らないとか200歳以上はだめだとか、
身長には1000mは入れられないとか制限をつけただけで
メソッドにしなきゃならないのもおかしいべ。
プロパティってのはやっぱり自然な機能だべ。
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNGだなあ。
で、実装方法としてはメソッドと変わりないものになったとしても、
やはりプロパティはプロパティなんだよな・・・
0235デフォルトの名無しさん
NGNG実装がどうなるかなんて関係なく別物として存在するんだよ。
0236デフォルトの名無しさん
NGNG> なのにgetAgeとかgetHeightとメソッドにするのはどう考えてもおかしいべ。
C++ にも Java にもプロパティ機能がない以上は
メソッドで代用するしかないじゃん。
0237219
NGNG>>234
俺の書き込み以降も勘違いしたままのやつがいるのかよ・・・
実装方法がメソッドになるのはアクセサであってプロパティではない。
たとえばLengthというプロパティに対して
getLength メソッドが値の設定
getLength メソッドが値の取得
length_ フィールドが値の保存
を受け持つ(一例)。
どれか一つだけをとってプロパティと呼ぶことは無い。
0238デフォルトの名無しさん
NGNG>>24がC++で擬似プロパティメソッドとそれ以外のメソッドを区別しる!と書いて
そんなの区別する必要ないって香具師が出てきて、
じゃあプロパティ機能が備わってる言語はどうなんのさってなって
やっぱりプロパティが言語の機能に備わってないと喧嘩の元だねってなったずら。
0239デフォルトの名無しさん
NGNGなんでいまさらになってレス番を名前に書いたんですか?
0240デフォルトの名無しさん
NGNG番号書かなきゃ「俺の」が誰かわからないから
0241デフォルトの名無しさん
NGNGなにを言いたいのかわからん。プロパティを取得するのに
アクセサ方式(クラスの利用者からget,setでアクセスする)でやるのと
プロパティ方式(クラスの利用者から実際はメソッドだが変数のようにアクセスできる)
があってプロパティ方式の方がより自然な感じで利用できるということか?
確かにfoo.lengthの方がfoo.getLength()よりもプロパティって感じがするものなぁ。
0242デフォルトの名無しさん
NGNG228は違うぞ
0243デフォルトの名無しさん
NGNGアクセサはプロパティの一部のただのメソッドだから他のメソッドと区別してはいけないってか?
理由になってねーじゃん。
プロパティの一構成要素だから他のメソッドと区別するんだって。
0245237
NGNG違う、俺はプロパティアクセスの構文なんかどうでもいい。
なんかずれてきてるように思うが、論点は
プロパティに対する専用の構文の無い言語で、プロパティを取得するためのアクセサメソッドをそれ以外のメソッドと区別する必要があるかどうか。
だ。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGプロパティーって、メンバ変数とかデータメンバとかいうアレですか?
0248243
NGNGあるっつってんの。
プロパティの一構成要素だから他のメソッドと区別するんだよ。
区別しなきゃ他のメソッドと紛らわしくなるだろが。
おまえが >>224 で書いたんだろ
> たとえばNameというプロパティを設定するメソッドは
> 24的にsetNameでもいいし、ちょっとオシャレにRenameでもいい。
> Renameは誰がどう見ても普通のメソッドと変わりないはず。
> ならまったく同じ動作をするsetNameも同じメソッドのはず。
こういう紛らわしい真似をしてくれるヤツがでてくんだよ。
0250デフォルトの名無しさん
NGNG区別の例としては
GetName/SetName/Doingが普通のメソッドで
getName/setNameが擬似プロパティという事みたいよ。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNG名前ってのは機能を表す。
言語によっては大文字と小文字は区別されるが
同じ単語なんだよ。
■ このスレッドは過去ログ倉庫に格納されています