業務でにわかプログラミングやってんだが「クラス」ってこれ必要か?関数でいいじゃん

1: 名無しさん@涙目です。(京都府) [EU] 2018/08/20(月) 18:27:12.56 ID:jTM0wlvZ0 BE:811571704-2BP(2072)

sssp://img.5ch.net/ico/syobo1.gif
functionで出来ることをイキってクラスとか難しくしてんの?
NewとかOverridesとかInheritsとか覚えれんわ使いも千野に


NexSeed、小中高生向けのプログラミング×英語スクール「ヴィムテックキャンパス by NexSeed」を9月3日に開校
https://edtechzine.jp/article/detail/1271


15: 名無しさん@涙目です。(catv?) [AU] 2018/08/20(月) 18:39:03.07 ID:qXj2KIXR0

>>1
別に無理に使う必要はないぞ。
そのうち必要になる時が来たらでいい。


57: 名無しさん@涙目です。(大阪府) [CN] 2018/08/20(月) 19:29:32.36 ID:5Os/0Ouj0

>>1
文字数多い方が儲かるからな
ドカタはスキあらば値段釣り上げようとする意地汚い連中だよ
わかりやすければなんだって良いよ


62: 名無しさん@涙目です。(兵庫県) [ニダ] 2018/08/20(月) 19:42:25.12 ID:s21r3NTs0

まあ、>>1の言ってることも解らんでもない。
小難しいことはコンピュータが勝手にやってくれればいいのに、
なんのためのコンピュータなんだよとは思う。


86: 名無しさん@涙目です。(四国地方) [US] 2018/08/20(月) 20:16:07.01 ID:Ltm7XeAG0

>>1
ていうか関数もいらないよ
ロード/ストア命令と四則演算、条件ブランチ命令だけでプログラミングできるよ


110: 名無しさん@涙目です。(新疆ウイグル自治区) [US] 2018/08/20(月) 20:57:43.00 ID:uJVbkp2V0

>>1
知ってへんと、他の人のプログラムいじられへんやん


111: 名無しさん@涙目です。(家) [KR] 2018/08/20(月) 21:01:02.02 ID:P3lcK6gW0

>>1
殴り書きの走り書きでいいシステムならいらない
ライブラリなんかを作って提供する立場になったら必要性が分かる
人がごちゃごちゃ使う事を想定して設計するにはベターなんだよ


162: 名無しさん@涙目です。(catv?) [US] 2018/08/20(月) 22:41:51.75 ID:AsFgfm2d0

>>1
俺と同じだ。
職業プログラマーじゃねーんだから。
VB6復活キボンヌ。


165: 名無しさん@涙目です。(西日本) [US] 2018/08/20(月) 22:53:30.87 ID:g5Zp6zqh0

>>162
VB6は普通に業務で現役な訳だが


194: 名無しさん@涙目です。(家) [KR] 2018/08/21(火) 03:37:07.22 ID:H1y6TvIn0

クラスやオブジェクト指向は鶏卵だろ
開発や運用の過程でこうなってたら使いやすいって経験を言語仕様化した訳だ
だから初学者にいきなり教えたってその経緯分からんから常に>>1の様な疑問を持たれる
細かい屁理屈並べるより単なるルールとか言っといた方がマシ


2: 名無しさん@涙目です。(dion軍) [DE] 2018/08/20(月) 18:28:11.11 ID:7K9EUQDU0

verilogやっておけばok


3: 名無しさん@涙目です。(禿) [KR] 2018/08/20(月) 18:29:29.72 ID:r+Usv5oA0

マリオでもドラクエでもボンバーマンでもいいからそれぐらいのゲームを設計してみろ。ありがたみがわかるから。


7: 名無しさん@涙目です。(京都府) [EU] 2018/08/20(月) 18:32:03.84 ID:jTM0wlvZ0

>>3
初代ボンバーマンはBASICだぞ
クラスなんてない頃だぞ


8: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/20(月) 18:34:25.29 ID:FYlsHuuk0

>>7
本気で言ってる?


44: 名無しさん@涙目です。(大阪府) [ニダ] 2018/08/20(月) 19:03:38.20 ID:Rpyfp7hV0

>>7
gosubはありますぜ旦那


55: 名無しさん@涙目です。(北海道) [US] 2018/08/20(月) 19:16:22.79 ID:Xzyio8oG0

>>7
クラスで作れば手間が大幅に減る


96: 名無しさん@涙目です。(空) [US] 2018/08/20(月) 20:36:32.70 ID:NEGqIots0

>>7
サブルーチン集だな


24: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 18:43:33.32 ID:iL0vHyXt0

>>3
ハードウェア制約がきつくてパフォーマンス重視の要件で oop は採らんだろ
ps2ぐらいから oop 主流?


25: 名無しさん@涙目です。(茸) [CH] 2018/08/20(月) 18:43:54.90 ID:gN5rQc1R0

>>3
その頃のはアセンブラだぞ


4: 名無しさん@涙目です。(庭) [FR] 2018/08/20(月) 18:30:12.05 ID:khhnre3y0

コメント読んでコピペで大丈夫
簡単だよな


5: 名無しさん@涙目です。(庭) [US] 2018/08/20(月) 18:31:14.69 ID:kgk1pFiX0

phpやってるけど一覧の数字
合計したりするだけで大変なのに
ファミコンのマリオとかどんだけ
プログラムかかなきゃいけないんだ
ゲームプログラマーってすごい


6: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/20(月) 18:31:56.83 ID:FYlsHuuk0

まぁ、君の言ってることは、
「東京から大阪まで歩いていけるじゃん」
と同じ。
どうぞどうぞ、好き勝手にやれ。
聞く耳持たんヤツは、自滅するだけ。


26: 名無しさん@涙目です。(catv?) [ニダ] 2018/08/20(月) 18:45:40.28 ID:IGx1+CPy0

>>6
プークスクス


209: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 06:08:40.16 ID:rEUBvkGT0

>>26
そのレス無意味過ぎるだろ


210: 名無しさん@涙目です。(静岡県) [US] 2018/08/21(火) 07:01:56.50 ID:2EUxMFmj0

>>209
図星付かれて言い返せないんだよ、ダサいよね


9: 名無しさん@涙目です。(神奈川県) [ニダ] 2018/08/20(月) 18:34:39.65 ID:dzP88oDx0

1993~


35: 名無しさん@涙目です。(新疆ウイグル自治区) [EU] 2018/08/20(月) 18:55:50.76 ID:+VdTbyNj0

>>9
恋をした~


37: 名無しさん@涙目です。(庭) [US] 2018/08/20(月) 18:59:09.22 ID:M8mx45vv0

>>35
君に夢中~


202: 名無しさん@涙目です。(茸) [ニダ] 2018/08/21(火) 04:07:38.99 ID:bGnd3+Ng0

>>37
oh...


10: 名無しさん@涙目です。(庭) [US] 2018/08/20(月) 18:36:36.95 ID:BAJi9qNF0

まあ難しいことはどうでもええ
全く関係ない関数がバラバラになって存在するなら
クラスに突っ込んで管理したくなるわな


13: 名無しさん@涙目です。(新疆ウイグル自治区) [US] 2018/08/20(月) 18:38:21.94 ID:FRcWqG+H0

>>10
いわゆるスタティクおじさんだね


23: 名無しさん@涙目です。(禿) [US] 2018/08/20(月) 18:42:18.25 ID:vgBNTnQZ0

>>13
あれに突っ込み入れてた連中もニワカなんだよ
副作用について何もわかってない


11: 名無しさん@涙目です。(茸) [ニダ] 2018/08/20(月) 18:37:42.02 ID:/PS338iC0

クラスも使うし関数も使う
lambdaも使う
甘えんな


12: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 18:38:09.70 ID:vFHvefB+0

美少女クラスの排便メソッドがうんぬん


103: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 20:51:33.60 ID:iL0vHyXt0

>>102
そこて、
>>12 ですよ


105: 名無しさん@涙目です。(東京都) [NZ] 2018/08/20(月) 20:54:04.16 ID:CiQtLy0h0

>>103
それ書いたの俺だハゲ!


108: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 20:56:30.26 ID:iL0vHyXt0

>>105
誰がハゲじゃボケ
美少女クラスはアブストラクトクラスにするか、コンクリートクラスするか、から検討しやがれクソハゲ!


113: 名無しさん@涙目です。(東京都) [NZ] 2018/08/20(月) 21:04:37.12 ID:CiQtLy0h0

>>108
すいませんでした!


14: 名無しさん@涙目です。(家) [US] 2018/08/20(月) 18:38:26.28 ID:SV5D47Uh0

クラス化しておけばポンポン使えるうえにポンポン破棄出来る


18: 名無しさん@涙目です。(庭) [US] 2018/08/20(月) 18:39:55.27 ID:kgk1pFiX0

>>14
関数をまとめた関数を作るだけじゃ
だめなんです?


104: 名無しさん@涙目です。(東京都) [PH] 2018/08/20(月) 20:52:51.21 ID:GKB4xkA90

>>18
どうやって関数を関数でまとめるの?


116: 名無しさん@涙目です。(愛媛県) [DK] 2018/08/20(月) 21:17:09.83 ID:nyJx6QD40

>>18
その関数を再利用とかしないのなら別に関数でもかまわん。
関数を再利用したり、その関数を少し変えただけの関数をいくつも使うのならクラスを使えばいい。


206: 名無しさん@涙目です。(東京都) [IN] 2018/08/21(火) 05:40:30.79 ID:xKVaN/XY0

>>18
関数をまとめた構造体を作って、云々。Cで組み込みやるときは記述がだるいけど、必要に応じて。
抽象化なんてアセンブラの時代から必要かつ意識高い系はなんらかやってたわけで。


16: 名無しさん@涙目です。(アラビア) [US] 2018/08/20(月) 18:39:22.53 ID:jN3YqTus0

クラスはPGじゃない限り使う必要ないだろうな
構造体程度かね


17: 名無しさん@涙目です。(大阪府) [US] 2018/08/20(月) 18:39:38.16 ID:RIHksNFQ0

小学生レベルのプログラミングなら必要ないよ
お前がやってるのはその程度ってだけ


19: 名無しさん@涙目です。(禿) [US] 2018/08/20(月) 18:40:03.63 ID:vgBNTnQZ0

色々な切り口の整理方法があるって事だ。
オブジェクト指向信者の言うことは聞くな。


20: 名無しさん@涙目です。(空) [US] 2018/08/20(月) 18:40:10.94 ID:7G1I7QlK0

いや、まあ一人で作ってるうちはかまわんけど
仕様変更も少ないだろうし


21: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 18:40:56.21 ID:5unYmboc0

そう思うということはそのレベルの内容って事だ


22: 名無しさん@涙目です。(庭) [IT] 2018/08/20(月) 18:42:14.50 ID:OaYazhcX0

nameA=カツオ
ageA=12
speedA=3
nameB=ワカメ
ageB=10
speedA=1
time=0
name=カツオ
if(name==カツオ)
speed=speedA
else
speed=speedB
walk_distance=speed×1
time=1


52: 名無しさん@涙目です。(禿) [IT] 2018/08/20(月) 19:09:25.36 ID:8VYB7juI0

>>22
コンパイル通りません><


27: 名無しさん@涙目です。(大阪府) [US] 2018/08/20(月) 18:46:43.70 ID:l7Tab03j0

マジで常々思う
誰でも読めるソースが第一だと思うんだよな


28: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/20(月) 18:49:35.82 ID:2uqOxeHz0

プログラミングのクラスに関しては英語圏特有のネーミングセンスの弊害的産物で在って
本来はルーチンの類に含められるべき


29: 名無しさん@涙目です。(庭) [CA] 2018/08/20(月) 18:49:36.19 ID:r90tr8150

1つのクラスに売上処理とか仕入処理とかごっちゃになってたらわけわからんやん


30: 名無しさん@涙目です。(家) [ニダ] 2018/08/20(月) 18:51:21.40 ID:wWigvcs00

関数の亜種みたいなもんだろ
使えれば便利な場面もあるけど使えないなら使えないなりのやり方もある


31: 名無しさん@涙目です。(東京都) [CN] 2018/08/20(月) 18:52:33.82 ID:YVq4WO4Y0

無理して使う必要ない


32: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 18:53:24.75 ID:WCpFxipx0

//おにいちゃん…キスしていい…?/////////


33: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/20(月) 18:53:39.33 ID:vi4QhpQx0

ラムダ式なんか関数に関数を詰め込むのを許可してるようなもんだし
クラスとの境がようわかんなくなった


34: 名無しさん@涙目です。(庭) [ID] 2018/08/20(月) 18:54:32.07 ID:Divb/8Y20

俺もにわかだけどVBAのsubとfunctionなんで一緒にしねーのかと思った
あと配列を定数に出来ないのが納得いかん


36: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 18:56:13.40 ID:iL0vHyXt0

クラスはメソッドだけじゃなくて、プロパティもあるんやで
ていうかプロパティにメソッドが付いてるイメージ

アルゴリズムにデータを渡すのではなく、
データにアルゴリズムを持たせて、データの振る舞いはデータに聞け、ってイメージ


46: 名無しさん@涙目です。(愛知県) [MX] 2018/08/20(月) 19:04:36.94 ID:go+9wVYj0

>>36
このイメージは的確だな
この考え方で設計するとクラスが綺麗にまとまる


38: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 18:59:51.85 ID:maVOwpFO0

構造体に関数ポインタ持たせよう


39: 名無しさん@涙目です。(大阪府) [US] 2018/08/20(月) 19:00:09.32 ID:ypEAwoHq0

ラムダ式は楽だけど嫌な予感する。


40: 名無しさん@涙目です。(空) [US] 2018/08/20(月) 19:00:47.93 ID:JoqMYze+0

ヒューマンリソースマシーンやったら、高級言語の有りがたさが、痛いくらい解ると思うのw


41: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 19:01:46.97 ID:Xu0KD2nG0

なんでもいいからさっさとキチガイ大出品して死ね新宿古着屋ワタナベダイバクショウ


42: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 19:01:51.68 ID:dzQ9Q9nW0

抽象的な仕事ができない人には不要です


43: 名無しさん@涙目です。(禿) [US] 2018/08/20(月) 19:02:31.56 ID:t0NP2n340

クラス何ていらねーよ。何でいっぱつでアクセスできるのに何十もの関数通さないと出来ないのが意味不明、おなに言語


45: 名無しさん@涙目です。(東京都) [EU] 2018/08/20(月) 19:03:43.48 ID:YFrtrSWP0

大規模システムで固定変動設計しようとするとあった方が楽という程度


47: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 19:05:57.14 ID:iL0vHyXt0

まぁ、ポリモーフィズムの恩恵に浴さないと、oop の良さはわからんわなぁ


48: 名無しさん@涙目です。(庭) [IT] 2018/08/20(月) 19:06:52.30 ID:A6vozJ+d0

男は黙ってPublic Subだよな


49: 名無しさん@涙目です。(公衆電話) [US] 2018/08/20(月) 19:07:02.85 ID:HXIeyAig0

カーゴカルトプログラミング

実際の目的には役に立たないコードやプログラム構造を儀式的に含めておくプログラミングのスタイルである。
カーゴ・カルト・プログラミングは主に、プログラマが解決しようとしているバグか解決策のいずれかかまたは両方を理解していない場合に見受けられる。

他にも、スキルの低い、ないし新人プログラマが、そのコードが何をしているか理解が足りないまま、またはもしかしたら新しい場所にも必要なのではないかと、別の場所から関係ない部分も含めてコードをコピーしてしまうことで発生する可能性がある。


50: 名無しさん@涙目です。(茸) [GB] 2018/08/20(月) 19:07:14.68 ID:Zj+th8WT0

コンパイルしたら何だって一緒


51: 名無しさん@涙目です。(公衆電話) [US] 2018/08/20(月) 19:07:39.52 ID:HXIeyAig0

カーゴ・カルトという語句は、元々は第二次世界大戦後の南太平洋で見られた先住民の宗教に由来している。

これらの人々は、戦時中素晴らしい積荷をもたらしてくれた神のような飛行機を呼び出そうと、一心不乱に精巧な飛行機の模型や滑走路を作り上げた。

コンピュータプログラミングにおいてこの語句が使用されるようになったのは、
おそらくリチャード・P・ファインマンのカーゴ・カルト・サイエンスから派生したものと考えられる


53: 名無しさん@涙目です。(東京都) [VN] 2018/08/20(月) 19:09:46.30 ID:jhpCTICu0

美少女クラスがうんこをどーのこーの


54: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 19:12:58.32 ID:k5/UaNpm0



60: 名無しさん@涙目です。(大阪府) [US] 2018/08/20(月) 19:38:50.93 ID:RIHksNFQ0

>>54
if ("true" === "true") {
 return false;
}

なんだよこのコード・・


61: 名無しさん@涙目です。(庭) [FR] 2018/08/20(月) 19:40:14.06 ID:mmznPLFW0

>>60
そこより上がヤバいけどね


123: 名無しさん@涙目です。(大阪府) [US] 2018/08/20(月) 21:51:07.30 ID:RIHksNFQ0

>>61
画面下にあるjqueryってことはクライアント側か・・
確かにやべぇな


187: 名無しさん@涙目です。(チベット自治区) [US] 2018/08/21(火) 02:26:18.47 ID:GsPo0QXQ0

>>123
某所でちょっと話題になった糞コード
1500人程度のユーザのいるサービスだったらしい
イントラネットとかクローズドな環境だったので長らく問題が顕在化しなかったのではという見解


56: 名無しさん@涙目です。(埼玉県) [FR] 2018/08/20(月) 19:16:37.02 ID:6fygRRkC0

クラスが分からない人は
構造体を配列化してみるとよい
あーら不思議、クラスっぽく使えてしまう


58: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/20(月) 19:36:01.09 ID:vi4QhpQx0

>>56
それやってからそのまんまクラスに変更したら動かなくてビビったわ


59: 名無しさん@涙目です。(dion軍) [GB] 2018/08/20(月) 19:37:45.11 ID:V30yaMaf0

インスタンスを複数作る必要がある場合と、機能間でのデータの受け渡しをする場合に最低必要だろ


63: 名無しさん@涙目です。(富山県) [US] 2018/08/20(月) 19:43:05.99 ID:ikyWyWox0

Excelの関数20個くらい使えるレベルなんだがアンドロイドで簡単なツール作るとしたら何の言語覚えればいい?


69: 名無しさん@涙目です。(大阪府) [ニダ] 2018/08/20(月) 19:47:49.28 ID:WrFNieIK0

>>63
悩むほどねーよ笑


76: 名無しさん@涙目です。(富山県) [US] 2018/08/20(月) 19:56:54.30 ID:ikyWyWox0

>>69
オススメ教えてください


75: 名無しさん@涙目です。(石川県) [CN] 2018/08/20(月) 19:53:15.81 ID:wSb3KXMQ0

>>63
androidならjava一択だろ


78: 名無しさん@涙目です。(茸) [CN] 2018/08/20(月) 20:01:50.75 ID:21kjIOhZ0

>>75
サンクス
ちょっとしたツールだから勉強してみる


94: 名無しさん@涙目です。(庭) [CN] 2018/08/20(月) 20:32:20.42 ID:l73H26ye0

>>75
はぁ?Kotlinつかわんのか?


171: 名無しさん@涙目です。(dion軍) [ニダ] 2018/08/21(火) 00:04:20.59 ID:utA2DFpj0

>>75
xamarinも忘れんといて
c#の知識だけでandroidと遊べて幸せや


64: 名無しさん@涙目です。(庭) [US] 2018/08/20(月) 19:43:43.37 ID:cAxEZaoR0

自分では作らんにしても使う時はいつかは来る


65: 名無しさん@涙目です。(庭) [ニダ] 2018/08/20(月) 19:44:34.53 ID:oypPi3dF0

30歳でプログラミング学びました。アプリ作って稼ぎます
って言語を舐めてるw


71: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 19:48:19.73 ID:iL0vHyXt0

>>65
エンタメアプリなんて、動けば良いやってなもんだから
5000時間もかければそれなりのもん出来んじゃね?
本気でやればね。
まぁエンタメはグラフィックのセンスないときびしいがな


66: 名無しさん@涙目です。(静岡県) [US] 2018/08/20(月) 19:46:40.81 ID:H8i9/BwO0

クラスは便利だぞ、元のクラスを変更すればそれを使ってる派生クラスが全部変更されるからな。
クラスがないと、いちいち全部を変更しなければならない。


67: 名無しさん@涙目です。(大阪府) [ニダ] 2018/08/20(月) 19:47:06.03 ID:WrFNieIK0

期待通り動くコードは全て美しい


68: 名無しさん@涙目です。(庭) [CA] 2018/08/20(月) 19:47:17.03 ID:YUOPfj8J0

発想の原点はLOGOの亀
亀に移動や描画を命令する
その方法を一般化して
あらゆるオブジェクトを亀みたいにしちゃおう
これがオブジェクト指向プログラミングです(適当)


70: 名無しさん@涙目です。(広島県) [US] 2018/08/20(月) 19:47:51.18 ID:WH2Ar7j30

構造体で十分じゃね?


74: 名無しさん@涙目です。(静岡県) [US] 2018/08/20(月) 19:52:55.78 ID:H8i9/BwO0

>>70
まあ「構造体に関数のポインターを用意して」でも出来るけど、
これをやると超醜くて、追いかけにくいプログラムになる。決してやるな。


83: 名無しさん@涙目です。(東京都) [VN] 2018/08/20(月) 20:11:42.48 ID:jhpCTICu0

>>74
それを駆使して、ただのCでC++的なことをするのが昔流行った
会社でやらされたけどクソみたいなトレンドだった
誰だよあんなの流行らせたの・・・・


72: 名無しさん@涙目です。(広島県) [US] 2018/08/20(月) 19:50:43.71 ID:WH2Ar7j30

広告がうざいゲームはマジクソ
すぐに消すからもう作るな


73: 名無しさん@涙目です。(やわらか銀行) [IR] 2018/08/20(月) 19:51:08.55 ID:l8VogIln0

よく分かんねーよ
具体的に教えてくれヨ
クラスにする理由しない理由


82: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 20:10:46.33 ID:KkC9ZZTI0

>>73
うーん、自分も正確なことをいえるか難しいが、
オブジェクト指向をフルに活用するにはクラスが必要なんや

例えばあらゆる機能で使うような処理を静的な関数としてもっておいた場合、
その関数を変更した時あらゆる機能のコードに多大な影響が生まれ著しく保守性が悪い
また、大部分は共通しているが微妙に異なる処理をしたい場合、条件分岐が複雑になりコードの見通しが悪くなる

一方、共通している部分を基底クラスとして作り、それぞれの機能の実装は継承先に委ねておくと、
一つの機能を変更した時に変更するクラスは継承先のサブクラスだけで良くなる

クラスの理想はそのクラスの中身を利用者が知らなくても安全に簡単に使えることだ
エクセルのVLOOKUP関数は引数だけ正確にいれれば利用でき、
セルの値を指定範囲の中で検索するアルゴリズムなどユーザーは全く知る必要がないがあんなのを自分はイメージしてる

オブジェクト指向の実装方法はデザインパターンやSOLID原則を参考にすると分かりやすい
自分もマスターしてるわけではないので偉そうなことはいえないが


99: 名無しさん@涙目です。(やわらか銀行) [CA] 2018/08/20(月) 20:41:39.82 ID:9sD2bbks0

>>82
>>95
なかなか難しいね・・
ありがとう


95: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 20:35:40.39 ID:oKH/gvvU0

>>73
一連の動きをする命令に汎用性を持たせるって言えばいいのかな
基本は同じ動きでプロパティで内容を帰る
それを何層にも出来るから一つのクラスが
値を自由に付ける事の出来る関数のように使える


129: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 21:59:18.52 ID:D2aMRK0r0

>>73

ベースとなる処理があって、異なる2つの処理を付け加え、2種類のベース処理を作るとしよう。
オブジェクト指向でなければ、ベースの処理に異となる2種類の処理を付け加える。
オブジェクト指向なら、ベース処理に対して2つの差分部分だけ書けばいい。


77: 名無しさん@涙目です。(大阪府) [CN] 2018/08/20(月) 20:00:44.77 ID:6+g8hO7H0

プログラム作成も初期は、データ構造と処理関数の
分類だった。ただしプログラムの規模がデカくなると
バカが多くて管理出来ない状況になったんだよ


79: 名無しさん@涙目です。(dion軍) [US] 2018/08/20(月) 20:04:45.89 ID:6ok/N8RH0

結局クラス使うのは名前衝突避けるためってのが一番の理由でオッケー?


84: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 20:12:06.85 ID:iL0vHyXt0

>>79
お題目的には再利用性が主眼だと思うんだな
名前空間はクラスじゃなくても実現できるし


88: 名無しさん@涙目です。(SB-iPhone) [ES] 2018/08/20(月) 20:18:00.06 ID:wDFOODvd0

>>84
そうだよね。インスタンスが並列になるから、状態もデータも並列管理ができる。


91: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 20:24:04.45 ID:iL0vHyXt0

>>88
インスタンスの並列だけじゃなく、
インスタンスの並列を横の再利用とするなら
継承やポリモーフィズムという仕組みは設計の再利用として
縦の再利用性を目的としている


109: 名無しさん@涙目です。(SB-iPhone) [ES] 2018/08/20(月) 20:57:08.70 ID:wDFOODvd0

>>91
うまいこと言うねw
たしかに、クラスは本来的にはそれが主目的なのかもね。
ただ、モデリングする時に、そのソフトウェアでどこまできっちり縦の再利用性を求めて設計するか、というところもあるよね。

ソフトウェアの目的に応じてイベントドリブンな関数志向やアスペクト志向という手もあるし、オブジェクト志向がいついかなる時でも正義というわけではないけど、とにかく、便利だよねw


80: 名無しさん@涙目です。(大阪府) [TR] 2018/08/20(月) 20:07:23.72 ID:o6L1srs+0

クラスはなぁ。便利だけとメモリーのリークが怖い。パソコンソフトならいいけど、高信頼の組み込みじゃつかわらいなぁ。


81: 名無しさん@涙目です。(SB-iPhone) [ES] 2018/08/20(月) 20:08:56.47 ID:wDFOODvd0

学校のクラスと同じなんだって。
文系と理系はクラスが違うだろ?履修する教科も違えばセンコーも違うし、それぞれが使う教科書も違う訳だ。
じゃあクラスを分けて管理したほうが楽だろう?そういうことだよ。


85: 名無しさん@涙目です。(やわらか銀行) [FR] 2018/08/20(月) 20:12:07.92 ID:oZnne3V50

俺もクラスの概念がわかってない
全て関数で対応してるわ
一人で作って一人で管理してるから
今のところこれで問題ないし新たに覚えるつもりもない


87: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 20:17:08.06 ID:LIZT0ivc0

大事なのはグラフィック
ここで詰んだ
ゲーム作れない


93: 名無しさん@涙目です。(東京都) [NZ] 2018/08/20(月) 20:27:20.09 ID:CiQtLy0h0

>>87
具体的にどんなことをやったの?


89: 名無しさん@涙目です。(東京都) [ニダ] 2018/08/20(月) 20:20:19.19 ID:K/8YThFt0

機種の基本設計に対して機種固有の変動部分の対応をするときに
オーバーライドして置き換えれるので機種展開はしやすいな


90: 名無しさん@涙目です。(庭) [US] 2018/08/20(月) 20:22:35.81 ID:KtX5r15X0

クラスも関数も管理してないとゴミになる
忙しくなると似たようなもんが増殖していく


92: 名無しさん@涙目です。(やわらか銀行) [JP] 2018/08/20(月) 20:24:31.80 ID:vTAE7gbj0

クラスを鯛焼き製造で例えられてもなんのこっちゃわからん。もっとわかりやすく解説してみろ


97: 名無しさん@涙目です。(catv?) [CN] 2018/08/20(月) 20:36:52.23 ID:NwbiooQX0

必要かどうかは、プラットフォームやフレームワークや規模によるよ
AndroidやMFCやらでAPIがクラスを前提とするし、ユーザーコードも規模が大きくなってくるとクラス等のOOP的な仕組みのありがたみがわかる


98: 名無しさん@涙目です。(四国地方) [US] 2018/08/20(月) 20:39:26.44 ID:Ltm7XeAG0

これから泥やるんたらコトリンだよな
javaなんていうクソ言語は捨てておしまいなさい


100: 名無しさん@涙目です。(SB-iPhone) [ニダ] 2018/08/20(月) 20:43:33.88 ID:Iogimy3h0

うるせえよ馬鹿


101: 名無しさん@涙目です。(東日本) [US] 2018/08/20(月) 20:47:10.88 ID:hZbURITv0

クラス内が独立してるからグローバル変数モドキとか何も考えずに脳死状態で作れて楽ちんなんや
依存関係の有るサブルーチンとかも内部関数として持たせとけばいちいち覚えとかんでもええんや
優秀な人はクラス活かしてより高度な事してるのかもしれんが
俺みたいなのは自分がどんどん馬鹿になってるなーと思ってるぞ、でも楽だからやめられぬ


102: 名無しさん@涙目です。(東京都) [NZ] 2018/08/20(月) 20:49:00.54 ID:CiQtLy0h0

中傷メソッドとかわかんねーんだよハゲ!


106: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 20:55:48.59 ID:KkC9ZZTI0

>>102
ファイルダイアログを立ち上げて「選択されたファイルを読み込む」
例えばこんな動作があったとして抽象クラスとしてファイルを選択するコードは実装しておき、
ファイルを読み込む部分は抽象メソッドにしておく

実際に読み込むファイルはエクセルやcsvやXML,JSONかもしれない
ファイルの種類によってどうやって読み込むかは抽象クラスを継承したクラスで
抽象メソッドをオーバーライドして書けばいろいろなファイルに対応できる
それにエクセルファイルの読み込みメソッドを変更しても、XML読み込みメソッドには何の影響もない


107: 名無しさん@涙目です。(チベット自治区) [US] 2018/08/20(月) 20:55:55.21 ID:0zC+MMtH0

クラス知らなくてもいいんじゃん。君はその程度だから。


112: 名無しさん@涙目です。(石川県) [KR] 2018/08/20(月) 21:01:14.89 ID:nYbFfDmM0

本やWebを見ると車や動物が例えに出てくるんだがピンとこない
唐突にインヘリタンスとか持ち出すのもイラっとくる
こんなレベルでAndroidのアプリ作ったことがあるが脳死寸前だった


115: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 21:14:55.70 ID:oKH/gvvU0

>>112
ざっくり言うと二次元から三次元になったみたいなもん
考えが立体的


121: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 21:47:31.20 ID:D2aMRK0r0

>>112

動物とかの例はよくない。
コードを見て書いて理解すべき。


126: 名無しさん@涙目です。(家) [KR] 2018/08/20(月) 21:56:08.90 ID:P3lcK6gW0

>>121
これな
未だに車のパーツとか動物とか絶望するわw
車で例えたいならせめてユースケースだわ


114: 名無しさん@涙目です。(福岡県) [ニダ] 2018/08/20(月) 21:05:47.48 ID:SiKG9dHt0

子供から論理的思考が身についてしまう。。俺の馬鹿さ加減がバレる。。。やめろ。やめろ。


117: 名無しさん@涙目です。(長野県) [CN] 2018/08/20(月) 21:17:40.45 ID:UEg803vV0

ポリモーフィズムやカプセル化を簡単に使いたくなったときに使えばいい


118: 名無しさん@涙目です。(大分県) [JP] 2018/08/20(月) 21:18:07.21 ID:zdKu9SnE0

にわかプログラミング程度でクラスなんか必要無いだろw

昔みたいにMFCとか使うわけじゃなけりゃ、よっぽど複雑でめんどくさい
プログラム組む時以外、普通はクラスなんかいらんわw


119: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 21:19:06.14 ID:D2aMRK0r0

生産性が違うだろ。
言語にやらしたほうが安価に実装できる。


120: 名無しさん@涙目です。(東京都) [DE] 2018/08/20(月) 21:30:26.17 ID:NGUSWezj0

自分用にVBA勉強したときにネットのサンプル見てパクってクラス使ってみたけど丸写しでよく分からず終わった


122: 名無しさん@涙目です。(千葉県) [ニダ] 2018/08/20(月) 21:48:58.33 ID:gZjFCW5H0

モナドとかいう意味不概念


124: 名無しさん@涙目です。(庭) [ID] 2018/08/20(月) 21:53:29.82 ID:ncw+va930

PHPでクラス使うメリットは殆どないよね


127: 名無しさん@涙目です。(家) [KR] 2018/08/20(月) 21:57:18.71 ID:P3lcK6gW0

>>124
使えるなら言語はあまり関係ないと思うが
そう考える理由はなんだい?


125: 名無しさん@涙目です。(京都府) [ニダ] 2018/08/20(月) 21:53:59.72 ID:Un5b0Rzl0

ファミコン時代のプログラマーって
どういう思考でプログラム組んでたんかな?


128: 名無しさん@涙目です。(大分県) [JP] 2018/08/20(月) 21:58:44.55 ID:zdKu9SnE0

>>125
当時はまともなC言語すら無くてゲーム機はマシン語が主流だったんで
頭の中がCPUと化してて、ニーモニック(16進数のコマンド)だいたい暗記w


130: 名無しさん@涙目です。(dion軍) [EG] 2018/08/20(月) 22:00:21.14 ID:lBJO6dtO0

>>128
よく分からんけどなんか凄そう


131: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 22:04:15.40 ID:5KP/bf2l0

>>128
あの頃の人達は機械と直接お話できたんだな


141: 名無しさん@涙目です。(大分県) [JP] 2018/08/20(月) 22:16:23.01 ID:zdKu9SnE0

>>131
プロ将棋士の頭の中に盤があるみたいな感じで、頭の中にCPUとメモリがあったw

当時は8bit CPUだったんでそれが可能だったけど、16bit CPU以降は頭の中が
飽和状態になるんで C言語に頼らざるを得なくなり、OSみたいな大規模開発では
C言語ですら飽和状態になるんで、高速化と実行効率化を犠牲にしてクラスという
メンテナンス性の高い実装手法が産まれた

このクラスは当時異常に肥大化し複雑化したOS(WindowsやMacOS)を使うためには
必須の技術となり、その効果は凄まじく開発効率が大幅にアップした

でも最近はプログラム自体が簡易化されてるんで、大規模開発以外はあんま必要
無いんよねw

なので、(最近はあんま見かけないけど)たまに何でもかんでもクラスにしてしまう
プログラマとか見ると、あーあって思うw


132: 名無しさん@涙目です。(アメリカ合衆国) [FR] 2018/08/20(月) 22:04:16.55 ID:wDwUKgO50

>>125
CPUが今何をしてるかって完全に把握してプログラム出来るからむしろわかりやすいぞ


133: 名無しさん@涙目です。(富山県) [US] 2018/08/20(月) 22:05:15.33 ID:DsokT1de0

そういう馬鹿がいるので再生産性とかデバッグが大変になる、プログラマにならなくて良かった


134: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 22:06:00.82 ID:9FHJ8Nm90

クラスのメンバーAをプライベートにして
パブリックなsetA、getAを作る意味は有るんかえ。


136: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 22:12:58.50 ID:KkC9ZZTI0

>>134
クラスのメンバーへのアクセス経路を統一して不正な値への変更不可としたり、
値が変えられたときにそれを通知することができる

最初からAがpublicだと他から好き勝手に変えられて、
クラスのメソッドでメンバーを利用する際のバグになり得る


140: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 22:16:19.01 ID:9FHJ8Nm90

>>136
A=不正な値
とするか
setA(不正な値)
とするかの違いにしか思えないんだけど。。。
昔から、脅威のハッカーを心配してるのか?と疑問に思ってました。
煽りではなく。


150: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 22:22:58.66 ID:KkC9ZZTI0

>>140
set A(不正な値)
にした時にset の処理に不正な値だったら例外投げるようにしとけばいいし、
クラスにバリデーション用のメンバー持たせといて不正な値がきたら、
バリデーション用ののメンバーに不正の種類と値をもたせといて
バリデーション用のメンバーに何も入ってない時にメソッド実行可能とかにしとけばいい

A=不正な値やったら素通りだから、何かしら対策が立てられるのが重要なんや


153: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 22:28:32.05 ID:9FHJ8Nm90

>>150
逆に、「getterに余計な処理書くな」とか「チェックはチェックって名前でやれ」とか
言わない?


158: 名無しさん@涙目です。(SB-iPhone) [US] 2018/08/20(月) 22:33:34.40 ID:KkC9ZZTI0

>>153
入力値検証が余計な処理とか言うやつはさすがにヤバい

それにその辺の似たような処理の実装を省力化するヘルパークラス作ったり、
それ用のライブラリがあったりする


161: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 22:38:24.16 ID:9FHJ8Nm90

>>158
Viewとの連携とか、フレームワークのルールでは生きますな。
と思ったけど、最初からルールが違えばやっぱり要らないような。。。


137: 名無しさん@涙目です。(東京都) [VN] 2018/08/20(月) 22:14:05.01 ID:jhpCTICu0

>>134
あとからset「あ、これ代入されるときに範囲オーバーみとこ」とか、
get「あ、これ値返すときにアレ判断してコレ返しとこ」ってのを
急な仕様変更なんかで付け足すときに手間がはぶける。
あとpublicなメンバにしとくと、多人数で作るときに、いついかなるときに
勝手に中身変えられて想定外の値入れられても、publicにした以上は文句言えない

一人で全部作る分にはどうでもいいかもね


143: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 22:18:01.44 ID:9FHJ8Nm90

>>137
setter,getterにさせちゃ、影響範囲大きすぎないだろうか。。。


138: 名無しさん@涙目です。(家) [KR] 2018/08/20(月) 22:14:14.55 ID:P3lcK6gW0

>>134
観点の違いだね
システム全体を管理するなら必要
開発でもテストでもトラブルでも代入を検出するより呼ばれたメソッドを追う方がいい
さらに思わぬ汚染は絶対ゼロである状態が担保されたい
一人で学習してるならいらん
他にも理由があった気がするけど忘れた


139: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 22:14:24.02 ID:5KP/bf2l0

>>134
どこの馬の骨とも分からない人がクラスのメンバー勝手にチェンジして、ヤバい奴等だらけになりかねないから


146: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 22:19:00.70 ID:9FHJ8Nm90

>>139
どこの馬がGetterに、なにか仕込むのがオチかと。


142: 名無しさん@涙目です。(茸) [AU] 2018/08/20(月) 22:16:28.44 ID:N45Kpj5C0

>>134
お前の財布Aはお前がget/setしたいだろ?
他人にされたいか?


148: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 22:20:14.17 ID:9FHJ8Nm90

>>142
逆に言うと、財布が札を食べに来て、オエッと吐き出す絵しか浮かばないよ。


144: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 22:18:05.62 ID:D2aMRK0r0

>>134

家に出入りするのに玄関ではなく、窓から入られたら困るやろ
データaをアクセスする方法を統一することで、変なアクセス方法を防ぐ


149: 名無しさん@涙目です。(東京都) [US] 2018/08/20(月) 22:21:30.79 ID:9FHJ8Nm90

>>144
下品な言い方すると、肛門は1つしか無いってことかなぁ。
場合によっちゃ致命傷に、なることもないかなぁ。


147: 名無しさん@涙目です。(庭) [ID] 2018/08/20(月) 22:20:09.60 ID:ncw+va930

>>134
フィールド1個ずつにgetter、setterを用意するのってそもそもオブジェクト指向的に設計がおかしいと思うんだよね


154: 名無しさん@涙目です。(家) [KR] 2018/08/20(月) 22:28:40.35 ID:P3lcK6gW0

>>147
基底のクラスに名前も引数に与えるメソッド作ったら2つで終いやろ
下位クラスオンリーや例外やスペシャルなプロパティは独自メソッド用意したらいい


135: 名無しさん@涙目です。(群馬県) [BR] 2018/08/20(月) 22:12:25.82 ID:jAFTtHkn0

てかプログラマ自体いわゆる底辺だろ


145: 名無しさん@涙目です。(中部地方) [ニダ] 2018/08/20(月) 22:18:49.74 ID:vazQZ6uT0

一人でソース書いてるならいらんだろ


151: 名無しさん@涙目です。(東京都) [FR] 2018/08/20(月) 22:23:14.92 ID:Nk+bPtuj0

相変わらず土方多いな


152: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 22:23:20.33 ID:+T6isvag0

最近は使わないけど、宗教に近いものがある
でも、悪くはないよ。


155: 名無しさん@涙目です。(長野県) [CN] 2018/08/20(月) 22:29:40.60 ID:UEg803vV0

個人的には、単なるsetgetの機能実装時点ではありがたみを感じたことはない

デバッグのログ吐き出しだったり、設定変化に連動する処理を追加したいケースにおいては、価値を感じた


156: 名無しさん@涙目です。(空) [GB] 2018/08/20(月) 22:31:20.11 ID:Pd76lYdd0

バッチ処理とかやってる分にはほとんど活かせないよな
それより関数型プログラミング的な考え方のほうが役立つかも


157: 名無しさん@涙目です。(庭) [ID] 2018/08/20(月) 22:31:33.61 ID:ncw+va930

大体インスタントの初回生成時から変更するようなフィールドって1/3にも満たないと思うし
値を取得するのにも連想配列的な使い勝手の方がいい場合が多い


159: 名無しさん@涙目です。(家) [KR] 2018/08/20(月) 22:38:07.66 ID:P3lcK6gW0

学習本の良くないのはいきなりオブジェクトの詳細の説明から入るからな
車の例とか出して
理解においては、あれは後付みたいなもんで
そもそもは実用の観点からこうなってた方がいいってのが実際
ゲッターセッターみたいに何でって?そりゃなるわ
実用の観点から捉えないと意味不明だと思う
例外は極力排除したい、ゼロイチどっちかに寄せたい、ルールを遵守すべきとかの考え方がベースにあってクラスの有り難みがわかる
つまり初学者本を書いてるやつがバカ


166: 名無しさん@涙目です。(庭) [TR] 2018/08/20(月) 22:54:16.70 ID:hR/n+0/q0

>>159

その通り。
ずっとCで書いていて、最初は車とかの説明が書いてあった本を読んだ。
初心者があの説明でわかるはずがない。

理解するにはコードを読め。
簡単なソースを1ステップごと実行させて、何をやっているか調べれば理解できる。


160: 名無しさん@涙目です。(庭) [ID] 2018/08/20(月) 22:38:18.30 ID:ncw+va930

というか最終的なアウトプットで出力するもの意外をgetする必要ってあんまないし
個別の操作って継承クラスの中で閉じてても大体問題ないんだよね


163: 名無しさん@涙目です。(長野県) [DE] 2018/08/20(月) 22:44:19.58 ID:/VkSkZOF0

昔々、まだ C++ があまり使われず、 C が主流だったころ。
「グローバル変数は管理しにくいからできるだけ使うな」と、ことあるごとに主張していたのだが
なかなか賛同されなかった。

現在、 C++ ではグローバル変数はほとんど使われなくなっている。
しかし、クラスのメンバ変数の乱用で、結局似たような状況になっている。
「メンバ変数は管理しにくいからできるだけ使うな」と主張しているが、
なかなか賛同されない。


ちなみに、そのおかげで私の書くコードは引数だらけとなる。
理想と現実のバランスが必要だ。


164: 名無しさん@涙目です。(大分県) [JP] 2018/08/20(月) 22:47:34.89 ID:zdKu9SnE0

>>163
メンバ変数もいいけど、クラスの中にあらゆる処理突っ込んじゃうと
結局グローバル変数と変わんなくなるよねw
なんというか結局、クラス使っても書く人の能力次第でしかないというw


168: 名無しさん@涙目です。(長野県) [CN] 2018/08/20(月) 22:55:19.92 ID:UEg803vV0

>>164
Cの時代に1ファイルになんでもかんでも突っ込んできた人にその傾向がある

もともとファイルを分けて実装してきた人は、クラスをうまく使える印象


167: 名無しさん@涙目です。(やわらか銀行) [CN] 2018/08/20(月) 22:54:54.73 ID:lhzSKyfO0

Cで書くとグチャクヂャになるからな


169: 名無しさん@涙目です。(群馬県) [JP] 2018/08/20(月) 23:07:25.98 ID:q6NdpeZQ0

クラスって構造体が拡張されたもんだろ?


170: 名無しさん@涙目です。(茸) [US] 2018/08/20(月) 23:52:36.92 ID:ERNI87MJ0

PHPとJavaとJavascriptの勉強をやってみたが、すぐ忘れてしまうわ。


179: 名無しさん@涙目です。(やわらか銀行) [AE] 2018/08/21(火) 00:48:07.80 ID:W76GoHcg0

>>170
PHPは、perlやrubyに比べて、データベース使ったWebプログラムを組みやすい気がする。
もうプログラミングなんて、10年以上やってないが・・・


172: (catv?) [PK] 2018/08/21(火) 00:08:39.00

構造化
int Add3( int x, int y, int z){
return (x + y + z);
}

int main(){
return Add3(3, 5, 8);
}

オブジェクト
Public class Add3{
public int x;
public int y ;
public int z;
public int execute() {
return (x + y + z);
}
}

int main(){
Add3 add3 = new Add3();
add3.x = 3;
add3.y = 5;
add3.z = 8;
return add.3.execute;
}


173: 名無しさん@涙目です。(宮城県) [GB] 2018/08/21(火) 00:17:29.65 ID:u+OGxH8D0

>>172
フィールド変数はプライベート原則
メソッド実行は()つけろ


174: 名無しさん@涙目です。(東京都) [BR] 2018/08/21(火) 00:21:50.64 ID:P/tp6r2b0

>>172
setterがないやり直し


196: 名無しさん@涙目です。(家) [KR] 2018/08/21(火) 03:38:34.01 ID:H1y6TvIn0

>>172
executeがダサいと思いました
runの方がカッコいいと思います


175: (catv?) [PK] 2018/08/21(火) 00:30:54.77

>>173-174
出てきたw
じゃあ、これでダメな理由をこのクラスを使って具体的に言ってみろw

コードの書き方に感じを書いただけだw


180: 名無しさん@涙目です。(庭) [ニダ] 2018/08/21(火) 01:00:32.23 ID:YE2DwmLN0

>>175
この例だとクラスをインスタンス化する必要もメンバ変数で保持する必要もないから、
静的クラス静的メンバでメソッドコンテナにするべきじゃね?
Mathクラスみたいな感じで。


182: (catv?) [PK] 2018/08/21(火) 01:21:30.91

>>180
インスタンス化する必要かどうかなんて設計の話だよ。
servlet の様に一つのプロセスに複数スレッドで動かす場合だと、静的か動的生成で結果が変わってしまう場合もある。


176: 名無しさん@涙目です。(catv?) [US] 2018/08/21(火) 00:35:45.50 ID:6zuWgISb0

>>172-175
簡単なプログラムだったら構造化で十分ということがよく分かった。


177: 名無しさん@涙目です。(東京都) [US] 2018/08/21(火) 00:38:18.82 ID:qaj9TG5G0

クラスじゃなくて、そこからの変数であるインスタンスという概念が大事なんだが


178: 名無しさん@涙目です。(庭) [PS] 2018/08/21(火) 00:47:37.66 ID:CDKaTmF40

1はmixin信者かgolang使いと見た。


181: 名無しさん@涙目です。(千葉県) [PL] 2018/08/21(火) 01:02:17.53 ID:JeJ3Hyfl0

まあなんだ
syntax errorの話だよな


183: 名無しさん@涙目です。(神奈川県) [ニダ] 2018/08/21(火) 01:22:04.50 ID:Lu/j/FbD0

c++11をチームで使うことになってるのにnewとポインタ渡し大好きでいくら言っても使い続ける人がいて困ってる
ちなみに研究職だから開発に渡すには短く分かりやすいコードの方がいいんだがコンパイラの最適化がーって譲らない


184: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 01:36:50.36 ID:v1/Jj0sb0

newするのはインスタンス


185: 名無しさん@涙目です。(兵庫県) [US] 2018/08/21(火) 01:54:47.69 ID:2YcXfLxs0

美少女クラスも俺と同じ排便メソッド継承してるかと思うと胸熱だわ。


186: 名無しさん@涙目です。(東京都) [VN] 2018/08/21(火) 02:20:13.35 ID:E82Iss5R0

public class BiSyoujyo : Syoujyo
{
  override public Unko
    Haiben ()
    {
     // return new Unko(Unko.Type.Normal);
     // return new Unko(Unko.Type.Gold); // 価値を付ける場合はこちら
// △月△日:仕様変更:美少女はうんこ出さない
     // return null;
// ●月〇日:ミーティングでnullでなくType.Ghostになった
       return new Unko(Unko.Type.Ghost);
    }
}


188: 名無しさん@涙目です。(愛知県) [CN] 2018/08/21(火) 02:27:21.87 ID:KQhDGoJX0

オーバロードオーバライドしないなら何が書いてあってもいいけどな
とは言ってもC++のclassとstructの違いがわからない奴が多くて嫌だ


189: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 02:34:35.88 ID:v1/Jj0sb0

構造体との違いは寿命


190: 名無しさん@涙目です。(愛知県) [CN] 2018/08/21(火) 03:21:57.56 ID:KQhDGoJX0

寿命とな?


191: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 03:27:19.34 ID:v1/Jj0sb0

構造体はただの変数で寿命はスコープによる
インスタンスは寿命をプログラマが制御する


211: (catv?) [PK] 2018/08/21(火) 07:06:32.06

>>191
ポインタ知らないのか?


215: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 07:37:22.63 ID:v1/Jj0sb0

>>211
ちょっと何言ってるかわからん


218: (SB-iPhone) [ニダ] 2018/08/21(火) 07:45:44.91

>>215
ポインタ勉強しろよ、自分で寿命って言ってるのに分からんとかw


220: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 08:07:20.16 ID:v1/Jj0sb0

>>218
>>219
そりゃ構造体だろうがなんだろうがヒープに確保できるがなw
実際そうやってCでクラス実現したのがObjCだw
ポインタとかそういうレベルの話をしてるんじゃないw


227: 名無しさん@涙目です。(庭) [ID] 2018/08/21(火) 08:23:06.72 ID:sFkFNQmN0

>>220
objective-cの事言ってるんなら全然別もんだろあれは


228: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 08:24:38.83 ID:v1/Jj0sb0

>>227
どの辺が?


229: 名無しさん@涙目です。(SB-iPhone) [ニダ] 2018/08/21(火) 08:30:34.81 ID:x8Izff130

>>228
キミが言ってる寿命の定義を言ってよ


230: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 08:31:48.39 ID:v1/Jj0sb0

>>229
寿命は寿命だよ
mallocからfreeまでだが


234: (東京都) [US] 2018/08/21(火) 08:41:20.60

>>230
構造体使うのにわざわざそんなことやってんのか?


235: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 08:42:59.93 ID:v1/Jj0sb0

>>234
俺の話の意味わかる?


219: 名無しさん@涙目です。(dion軍) [ニダ] 2018/08/21(火) 07:53:51.32 ID:3obzZbFK0

>>215
構造体だってアロケーションできるって話だよ

構造体の真価はそういう事じゃなくてbit単位で通信するデータをブロック化できるってところだと思うんだがね


237: 名無しさん@涙目です。(catv?) [KR] 2018/08/21(火) 08:51:35.13 ID:dVpW35Xo0

>>191
構造体でもポインタにNULLぶち込めば殺せるし、
プログラマが制御できるじゃん


240: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 08:54:53.13 ID:v1/Jj0sb0

>>237
freeしなきゃポインタにNULL入れても確保されたままだぞ


247: 名無しさん@涙目です。(catv?) [KR] 2018/08/21(火) 09:07:45.68 ID:dVpW35Xo0

>>240
>>191 名前:名無しさん@涙目です。(やわらか銀行) [US] ▽2件 投稿日:2018/08/21(火) 03:27:19.34 ID:v1/Jj0sb0
>構造体はただの変数で寿命はスコープによる
>インスタンスは寿命をプログラマが制御する

なんで変数の話してんのにfreeがでてくんの?
逆にいえばインスタンスだって寿命は最大でもインスタンス変数のスコープの範囲内じゃないの?


248: (東京都) [US] 2018/08/21(火) 09:10:10.70

>>247
もうあんまり関わらない方がいいよw


249: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 09:12:15.62 ID:v1/Jj0sb0

>>247
簡単に言っただけだぞアスペかよ
あとインスタンス変数の使い方間違ってないか?


192: 名無しさん@涙目です。(東京都) [ニダ] 2018/08/21(火) 03:28:09.01 ID:Z6iOlESf0

関数型言語やってみたい


193: 名無しさん@涙目です。(愛知県) [CN] 2018/08/21(火) 03:33:00.98 ID:KQhDGoJX0

へー C#と間違ってない?


195: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 03:37:41.51 ID:v1/Jj0sb0

いや、俺はC/Objective-Cの話をしてる
マイナーですまんねw
C++の構造体ってnewするんだっけ?


197: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 03:43:16.24 ID:v1/Jj0sb0

クラスってコンセプトは継承とインスタンス化じゃね?


198: 名無しさん@涙目です。(愛知県) [CN] 2018/08/21(火) 03:46:47.19 ID:KQhDGoJX0

C++の違いは基本暗黙の宣言がprivateかpublicなだけ
structはclassと同じでありc++において構造体と呼ぶのも気が引ける


199: 名無しさん@涙目です。(埼玉県) [UA] 2018/08/21(火) 03:49:29.09 ID:hAk92sRI0

ビジネスクラスは快適だぞ


200: 名無しさん@涙目です。(家) [KR] 2018/08/21(火) 03:58:05.95 ID:H1y6TvIn0

別に無くても同様のことは実現できる
継承やインスタンス化もそう
じゃー何で存在するか
あった方が便利だから設計実装されてるだけ
単なる整理整頓管理のし易さだけ
プログラミングなんて大半がアホみたいな整理整頓とその保全だね
こんな理由なのに初学者の敷居を上げてしまうのはいけない
ちゃんとまずは別にいらねーよ、知らなくても問題ない事を教えてあげないと


201: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 04:01:37.72 ID:v1/Jj0sb0

プログラミングパラダイムって、究極にはコード自体をどう構造化するかって事だ


203: 名無しさん@涙目です。(神奈川県) [PK] 2018/08/21(火) 04:11:04.49 ID:hAm5CtPS0

他人が作った機能を使い回すのに必要
クラスなんか必要ないって言うやつは必ずボッチ


204: 名無しさん@涙目です。(群馬県) [BR] 2018/08/21(火) 04:12:16.66 ID:aQP1EGfX0

どうせコピペしかし無いんだろ何でも同じ


205: 名無しさん@涙目です。(東日本) [US] 2018/08/21(火) 04:24:09.45 ID:5eKyQwSU0

javaから勉強しはじめたからクラスがあるのは当たり前って感覚なんだけど
どのクラスに何を入れるかでいつも悩んで結局網の目状になっちゃうわ
できれば魚の骨みたくメインのクラスを軸にして他のクラスはそのメインだけに繋がるようにしたいんだが・・・


212: 名無しさん@涙目です。(家) [FR] 2018/08/21(火) 07:13:38.94 ID:awRrzKM30

>>205
メインのクラスとか考えると手続き型を分割しただけになるから細部から考えたほうがええで。オブジェクト指向エクササイズとかで少し大きめのプログラム書いて見たらええ。


関数型の世界だとクラス/オブジェクトみたいなステートフルなのは好まれない雰囲気もあるし、OOP捨ててコード組めるぐらいの実力ないと今後は辛そうねぇ。


207: 名無しさん@涙目です。(大阪府) [CN] 2018/08/21(火) 05:43:07.55 ID:9a6zGXZx0

関数の数が増えてくると自然にクラスを使うようになるぞ


208: 名無しさん@涙目です。(滋賀県) [US] 2018/08/21(火) 05:56:44.92 ID:y7Wqiz9o0

増えすぎたプログラマをふるい落として
単価上げるためだけに複雑化してる
って白状してるからな。


213: 名無しさん@涙目です。(東京都) [US] 2018/08/21(火) 07:35:36.26 ID:mawpZLf+0

クラスは必要だ。
ふつうにプログラムしてればたどり着く考え。
たとえば、aという変数もグローバルだと衝突してしまうが。
あるまとまり(クラス)の中だけで通用するようにするなど。


214: 名無しさん@涙目です。(西日本) [BG] 2018/08/21(火) 07:35:44.29 ID:V0ad0lee0

とりあえず何でもブチ込める神クラスを作ります(生え抜きのC書き)


225: 名無しさん@涙目です。(愛媛県) [ニダ] 2018/08/21(火) 08:19:34.32 ID:Zej4eXwq0

>>214
それっぽいものを作る人、何十人か知ってます


216: 名無しさん@涙目です。(家) [ニダ] 2018/08/21(火) 07:37:26.49 ID:QzGXPFm70

一時期オブジェクト指向オブジェクト指向ってうるさかったけどあれ今もあるの?
web2.0とかもうるさかったな


217: 名無しさん@涙目です。(東京都) [US] 2018/08/21(火) 07:43:29.05 ID:mawpZLf+0

オブジェクト指向に少なくとも2通りはあって。
C++のはクラス型で。Javascriptのはプロトタイプ型。
Javascriptの方がある意味徹底されてるという認識。最初からすべてがオブジェクトで。
C++だとオブジェクトはプログラマーが明示したときだけ。


221: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 08:10:18.86 ID:v1/Jj0sb0

クラスってコンセプトのカナメは継承とインスタンス化だろうと言ってる


222: 名無しさん@涙目です。(東京都) [US] 2018/08/21(火) 08:15:07.22 ID:oD70E6UH0

なんでその言語仕様が生まれたのか?
そのほうが便利だから
では、それはどういった点で便利だからなのか?

みたいな逆算より、普通にCからやったほうがいいのは、その不便さを身を持って体感できるから


223: 名無しさん@涙目です。(家) [KE] 2018/08/21(火) 08:17:54.53 ID:gNa1W7T/0

おれはお前らが嫌いなニッカポッカ土木作業員だけど昼休みにオブジェクト指向の本を読んでいる。
クラスが必要か?関数でいいじゃん?
クラスの理解の前に、関数の理解をしようぜ。おそらくお前はそこを理解出来てないと思う。
関数の役割としては、処理の共通化が挙げられるよな?そこは分かってるはず。
そしてその関数を呼ぶ側が引数を渡して(引数があれば)結果を得る。
問題はこの時に「関数を使う側」が引数に渡す値を用意する部分。ここにクラスを使うための答えの1つがあると俺は理解した。
お前も考えてみてくれ、問題を理解しないと解決策であるクラスは理解できないぜ


224: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 08:18:53.79 ID:v1/Jj0sb0

60年代ぐらいにプログラムが肥大化したときに、どう解決しようとしたかなんだよな
OOPも構造化も関数型もその頃に生まれたコンセプト


226: 名無しさん@涙目です。(新疆ウイグル自治区) [US] 2018/08/21(火) 08:19:55.56 ID:4kYcAni+0

この世界がオブジェクト指向で出来てる以上、クラスは必要だわ。


231: 名無しさん@涙目です。(庭) [US] 2018/08/21(火) 08:33:32.92 ID:KDxiK7Ul0

プログラミングが簡単単純になるから
気に入らないならすべて機械語で自分でコーディングすればなんでもできるぞw


232: 名無しさん@涙目です。(東京都) [US] 2018/08/21(火) 08:34:57.60 ID:3AAQlGiV0

構造体の構成要素として関数を入れただけだ


233: 名無しさん@涙目です。(愛知県) [JP] 2018/08/21(火) 08:40:54.50 ID:plRLVJfe0

クラスってのは「分類」だよ

なんの分類かというと、クラスの要素である変数とメソッド
変数とメソッドはデータと処理だ

プログラムやシステムというのはデータと処理の集合な訳で、これが肥大化したときにどのようにモジュールとして分割するか?というのが大きなテーマになってくる。一度に全てを見渡す事ができないからね

このモジュール分割や分類というのが厄介で、理路整然と体系化された分類もできるし、
複雑で例外だらけの分類もできるわけだ

そこでシステム化対象領域の「モノ」=「オブジェクト」と、その関係に着目して分類をすると割と体系的な分類ができますよ、というのがオブジェクト指向設計


236: 名無しさん@涙目です。(dion軍) [ニダ] 2018/08/21(火) 08:49:18.47 ID:3obzZbFK0

組み込みとかローレベルな通信のプログラミングをしない限り構造体の意義は多分分からないと思うよ


238: 名無しさん@涙目です。(兵庫県) [JP] 2018/08/21(火) 08:52:49.72 ID:oCkInMWi0

何の言語の話をしてるんだ、おまえらは?


239: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 08:53:03.70 ID:v1/Jj0sb0

俺はクラスの話をしてんの


241: 名無しさん@涙目です。(東京都) [US] 2018/08/21(火) 08:54:58.31 ID:MmBbHytO0

アンマネージドなコード扱いたくない


242: 名無しさん@涙目です。(SB-iPhone) [AU] 2018/08/21(火) 08:54:59.73 ID:rfhER7oQ0

クラスはとても難しい概念なんだ。理解できる人を選ぶ。素人さんが生齧りでやらないほうがいい。
プログラミングのことはプログラミング屋さんに任せないってこった。


244: 名無しさん@涙目です。(東京都) [GB] 2018/08/21(火) 08:56:32.30 ID:195BDiKu0

>>242
任せねーのかよ


243: 名無しさん@涙目です。(やわらか銀行) [US] 2018/08/21(火) 08:55:58.75 ID:tUw9WOr60

なんかクラスを使わないとマルチスレッドのプログラミングが大変だった記憶


245: 名無しさん@涙目です。(dion軍) [ニダ] 2018/08/21(火) 08:57:22.48 ID:3obzZbFK0

>>243
C#でやれば楽だけどね
まぁそういう話じゃないんだろうけど


246: 名無しさん@涙目です。(千葉県) [CN] 2018/08/21(火) 09:03:25.83 ID:Djjv2Y3u0

俺の親父huge始めてるけどめっちゃいいclassしてるわ


250: 名無しさん@涙目です。(茸) [ニダ] 2018/08/21(火) 09:13:47.27 ID:5518wrum0

C++のクラス←わかる
CSSのクラス←何これ


この記事へのコメント