プログラミングなんとなくできる人「setValue()、getValue()っと」

1 : 2022/01/09(日) 12:51:00.515 ID:UhI+ndAf0
オブジェクト指向なんだからメソッド名の主体が外部なのはおかしい
カプセル化考えるとsetterでフィールドをコロコロ弄れるのは良くない
2 : 2022/01/09(日) 12:52:08.873 ID:j3Qc2XSA0
ポリモーフィズム勉強しろ
3 : 2022/01/09(日) 12:53:26.353 ID:ydqtR7nqa
setterとgetterなんとなく作ってるけど作って良かったシーンに出くわしたことがない
4 : 2022/01/09(日) 12:54:14.092 ID:vMaeKkVL0
>>3
使う理由わかってる?
6 : 2022/01/09(日) 12:54:51.240 ID:ydqtR7nqa
>>4
多分わかってないから出くわしてないんだろうな
教えてくれ
10 : 2022/01/09(日) 12:59:36.131 ID:vMaeKkVL0
>>6
外部から直接変数を操作させないため
14 : 2022/01/09(日) 13:03:27.030 ID:ydqtR7nqa
>>10
外部から直接変数を操作されることで困ったことがないんだよね
どんなパターンが該当するの?
18 : 2022/01/09(日) 13:08:47.225 ID:wybVjFgTM
>>14
あとからも変更は許可するが、内部で持つ値は所定の形式で持ちたい場合など。

setterでに渡された引数でオブジェクトインスタンス作ってそれをフィールドに持たせるとか。

21 : 2022/01/09(日) 13:15:51.043 ID:50/f/efX0
>>18
なんでそんな変数にsetterとgetterつけるの?
31 : 2022/01/09(日) 13:43:49.186 ID:ydqtR7nqa
>>18
逆にそういう値を複数の値で管理しない理由がよくわからないんだよな
setterの中でオブジェクトインスタンス作るのなんかそれこそ意図しないインスタンス生成増えそうだしセットしたあとに明確なメソッド用意したほうがスッキリしないかな
自分だけなのか
33 : 2022/01/09(日) 13:49:32.121 ID:3Hwih0xA0
>>18
C#だけどgetterはパブリック、setterは privateにしたところ、シリアライズ出来なくて最近困ったんだよね。
オブジェクトをカプセル化したいんだけどシリアライズできない矛盾の解決方法を教えて
35 : 2022/01/09(日) 14:09:05.363 ID:ounLAhr7r
>>33
シリアライズ専用のクラスを作る
5 : 2022/01/09(日) 12:54:20.350 ID:nZczLdF10
ポリリズム
7 : 2022/01/09(日) 12:55:53.388 ID:1Ee9ughU0
理想はsetterつかわずにコンストラクタで済ませるで合ってる?
8 : 2022/01/09(日) 12:58:22.692 ID:5XeZUUWVM
オブジェクトだから外部出力があるんだろしらんけど(´・ω・`)
9 : 2022/01/09(日) 12:58:27.906 ID:umKzzFny0
あとで初期化処理とか追加したくなるかもしれないし意味はあるだろ
11 : 2022/01/09(日) 13:01:27.269 ID:UhI+ndAf0
>>9
初期化はコンストラクタで全部行うのが原則やぞ
19 : 2022/01/09(日) 13:10:13.967 ID:umKzzFny0
>>11
メモリ不足が深刻になってオブジェクト再利用する構造にしようってなったときにクリア処理とかどうすんの?
20 : 2022/01/09(日) 13:11:32.190 ID:nZczLdF10
>>19
リサイクル業者クラスが居るんじゃね?
12 : 2022/01/09(日) 13:01:59.169 ID:mq4dTWHG0
初期化関数 initとかじゃあどうするの?(´・ω・`)
13 : 2022/01/09(日) 13:02:37.349 ID:nIlawj/R0
外からどう見えるかは気にするけど
それが内部と1対1でそのままだったとしても気にしない
15 : 2022/01/09(日) 13:03:44.898 ID:BsDh+h4U0
ゲッターセッターは一回も使ってないわ
どこで使うの?
16 : 2022/01/09(日) 13:06:06.368 ID:nIlawj/R0
>>15
あとで直接操作して大丈夫だろうか?って不安になりそうなとこ
17 : 2022/01/09(日) 13:06:18.360 ID:mq4dTWHG0
そういえば Global Descriptor Table ってパーミッションのことになるんか?(´・ω・`)
22 : 2022/01/09(日) 13:20:11.815 ID:ounLAhr7r
公式のクラスライブラリ見てこういう値にはsetterつけてこういうのにはつけないんだなって学習してる
Javaとかいうクソ言語じゃ無理だろうけど
23 : 2022/01/09(日) 13:23:18.915 ID:vMaeKkVL0
まあセッターゲッターは使うべきじゃないって言う意見もあるし色々考え方があるから難しいね
24 : 2022/01/09(日) 13:26:35.055 ID:mXiVwAe30
ゲーム作ってるとセッタゲッタ祭りだぞ
25 : 2022/01/09(日) 13:27:52.856 ID:vMaeKkVL0
最近使ってないから例出しづらいけど例えば親クラスにセッター用意しといてそれを継承したクラスからじゃないとセット出来ないとかかな
29 : 2022/01/09(日) 13:42:03.121 ID:50/f/efX0
>>25
代入するだけなのにsetterなんで作るの
26 : 2022/01/09(日) 13:32:31.849 ID:QZbj7ZXO0
パブリックにすべきだよな
27 : 2022/01/09(日) 13:37:07.361 ID:q9q01umZ0
あとから使い回せる部品としての class を作ったことがないから使いどころが解らないと言い出す
28 : 2022/01/09(日) 13:37:39.125 ID:LK7apWAB0
Java使いならlombokで解決しようぜ
32 : 2022/01/09(日) 13:45:19.358 ID:nZczLdF10
インターフェイス継承
34 : 2022/01/09(日) 14:06:22.541 ID:ounLAhr7r
>>32
インターフェース実装な
36 : 2022/01/09(日) 14:52:46.718 ID:lx/hEYtKr
肥満は万病 の元
37 : 2022/01/09(日) 14:55:09.678 ID:BV2z7taUM
権限なんてアノテーションで良かったんじゃね

コメント

タイトルとURLをコピーしました