
1: 以下、5ちゃんねるからVIPがお送りします
JSとかPythonとかJava以前に作られた言語やってるやつに多い気がする
2: 以下、5ちゃんねるからVIPがお送りします
あとRust信者
3: 以下、5ちゃんねるからVIPがお送りします
え?Go言語にオブジェクト指向いらんけど
てか適応できんけど
てか適応できんけど
4: 以下、5ちゃんねるからVIPがお送りします
>>3
マイクロサービスならいけんじゃね?
大規模になると無理でしょ
マイクロサービスならいけんじゃね?
大規模になると無理でしょ
5: 以下、5ちゃんねるからVIPがお送りします
GUIは継承ないとつらい・・
7: 以下、5ちゃんねるからVIPがお送りします
>>5
わかる
わかる
6: 以下、5ちゃんねるからVIPがお送りします
てか思うんだが継承できないとか終わってね?
同じようなコードもう一回書くの?
同じようなコードもう一回書くの?
24: 以下、5ちゃんねるからVIPがお送りします
>>6
構造体が構造体を継承するんじゃなくて、構造体とそれが満たすべき条件がある
構造体が構造体を継承するんじゃなくて、構造体とそれが満たすべき条件がある
30: 以下、5ちゃんねるからVIPがお送りします
>>24
謎
構造体と似たようなもの作りたい場合どうしてんだ?
謎
構造体と似たようなもの作りたい場合どうしてんだ?
36: 以下、5ちゃんねるからVIPがお送りします
>>30
Rustの話なら、構造体は機能として存在する
ただしそれはカプセル化とか継承とかをするクラスとは別の概念として存在してる
関数型の話なら、例えば構造体Tがint型をメンバに持つって、つまり型Tに対して関数T→intがプリセットされてるって意味でしょ?
Rustの話なら、構造体は機能として存在する
ただしそれはカプセル化とか継承とかをするクラスとは別の概念として存在してる
関数型の話なら、例えば構造体Tがint型をメンバに持つって、つまり型Tに対して関数T→intがプリセットされてるって意味でしょ?
41: 以下、5ちゃんねるからVIPがお送りします
>>36
すまんめちゃくちゃわかりにくいんだが…
すまんめちゃくちゃわかりにくいんだが…
42: 以下、5ちゃんねるからVIPがお送りします
>>41
どのへんが分かりにくい?
どのへんが分かりにくい?
45: 以下、5ちゃんねるからVIPがお送りします
>>42
Rust←別の概念として存在する←じゃあどうやってクラス内のメソッドを呼び出したり継承させてんだ???
関数型に関してはそもそもどんな方法でコーディングするのかわからんからいきなり関数体がどうこう言われてもわからん
関数体Tは関数Tと違うの?
関数体ってオブジェクト指向的にはどんな感じになんの?
関数体 Hage()
{
int a;
int b;
}
みたいな?
Rust←別の概念として存在する←じゃあどうやってクラス内のメソッドを呼び出したり継承させてんだ???
関数型に関してはそもそもどんな方法でコーディングするのかわからんからいきなり関数体がどうこう言われてもわからん
関数体Tは関数Tと違うの?
関数体ってオブジェクト指向的にはどんな感じになんの?
関数体 Hage()
{
int a;
int b;
}
みたいな?
52: 以下、5ちゃんねるからVIPがお送りします
>>45
関数体って何?
関数体って何?
55: 以下、5ちゃんねるからVIPがお送りします
>>52
すまん構造体Tだったわ
すまん構造体Tだったわ
59: 以下、5ちゃんねるからVIPがお送りします
>>45
まず、クラスって型の一種だよね
で、クラスTがint型のメンバを持つって、つまり型Tの値を引数に取ってintの値を返す関数が定義されてるって意味だよね
じゃあ型Tの変数の定義時にそういう関数の値が何になるか宣言させれば十分だよね
メソッドも、第一引数にクラスを取る関数のことだよね
じゃあ関数を定義すればいいね
継承は必要ないよね
まず、クラスって型の一種だよね
で、クラスTがint型のメンバを持つって、つまり型Tの値を引数に取ってintの値を返す関数が定義されてるって意味だよね
じゃあ型Tの変数の定義時にそういう関数の値が何になるか宣言させれば十分だよね
メソッドも、第一引数にクラスを取る関数のことだよね
じゃあ関数を定義すればいいね
継承は必要ないよね
61: 以下、5ちゃんねるからVIPがお送りします
>>59
何を言ってるのかほんとわからんのだが
なんか例書いてくれんか?
何を言ってるのかほんとわからんのだが
なんか例書いてくれんか?
63: 以下、5ちゃんねるからVIPがお送りします
>>61
スマホでコード書きたくない
クラスは型
クラスTがint型のメンバを持つとは、つまり関数T→intが存在するということ
ここまでは分かる?
スマホでコード書きたくない
クラスは型
クラスTがint型のメンバを持つとは、つまり関数T→intが存在するということ
ここまでは分かる?
66: 以下、5ちゃんねるからVIPがお送りします
>>63
まずそこからわからんからコードで例を見せてほしいんだわ
まずそこからわからんからコードで例を見せてほしいんだわ
8: 以下、5ちゃんねるからVIPがお送りします
下回り書いてるとクラスが必要な機会が少ないんじゃね
知らんけど
知らんけど
10: 以下、5ちゃんねるからVIPがお送りします
>>8
下回りとは?
下回りとは?
9: 以下、5ちゃんねるからVIPがお送りします
GoとかRustって流石にクラスをインスタンス化してそのメソッド呼び出してるよな?流石に?
11: 以下、5ちゃんねるからVIPがお送りします
機能ごとにクラス分けたほうが管理しやすいと思うんだが
クラス無くて良いっていう人はどうやって機能使ってんの?
クラス無くて良いっていう人はどうやって機能使ってんの?
20: 以下、5ちゃんねるからVIPがお送りします
>>11
構造体で良くない?
構造体で良くない?
23: 以下、5ちゃんねるからVIPがお送りします
>>20
そもそもなんだが構造体にメソッドって入るの?
構造体使ったこと無いしだいたいデータ入れるようとしか思ったこと無いからわからん
そもそもなんだが構造体にメソッドって入るの?
構造体使ったこと無いしだいたいデータ入れるようとしか思ったこと無いからわからん
27: 以下、5ちゃんねるからVIPがお送りします
>>23
関数ポインタとかだと自分の属する構造体のメンバにアクセスできないかも。
まあ、クラスと言うか、型定義がされた構造体的なものがあって、メンバが関数であれば属するメンバ変数の操作ができればいいよね。
OOPはいらない。
関数ポインタとかだと自分の属する構造体のメンバにアクセスできないかも。
まあ、クラスと言うか、型定義がされた構造体的なものがあって、メンバが関数であれば属するメンバ変数の操作ができればいいよね。
OOPはいらない。
32: 以下、5ちゃんねるからVIPがお送りします
>>27
?
構造体にメソッドは入らないってこと?
string a {get a;
set a+2;}的なことしてa+2の関数を呼出してるって意味か?
?
構造体にメソッドは入らないってこと?
string a {get a;
set a+2;}的なことしてa+2の関数を呼出してるって意味か?
35: 以下、5ちゃんねるからVIPがお送りします
>>32
Cの構造体だと関数ポインタでメソッドみたいなことができなくはない。めんどくさいけど。
どんな言語でも構造体的なものはあるから、OOPである必要はないってこと。構造体的なもののメンバとして関数や変数があるだけ。
Cの構造体だと関数ポインタでメソッドみたいなことができなくはない。めんどくさいけど。
どんな言語でも構造体的なものはあるから、OOPである必要はないってこと。構造体的なもののメンバとして関数や変数があるだけ。
40: 以下、5ちゃんねるからVIPがお送りします
>>35
めんどくさいならクラスにメソッド入れればよくね?と思わなくもない
そっちのほうが楽じゃね?
めんどくさいならクラスにメソッド入れればよくね?と思わなくもない
そっちのほうが楽じゃね?
12: 以下、5ちゃんねるからVIPがお送りします
OOPとかクソだろ
時代はFP
時代はFP
18: 以下、5ちゃんねるからVIPがお送りします
>>12
やったこと無いんだがどんな感じでやんの?
クラス作ってその中にメソッド作ってクラスをインスタンス化してからそのメソッド使うじゃん?OPPだと
FPだとどうなるの?
やったこと無いんだがどんな感じでやんの?
クラス作ってその中にメソッド作ってクラスをインスタンス化してからそのメソッド使うじゃん?OPPだと
FPだとどうなるの?
13: 以下、5ちゃんねるからVIPがお送りします
おまえら今日プログラミングの話なんてしてどうした
14: 以下、5ちゃんねるからVIPがお送りします
手続き型という言葉すら知らない世代か
15: 以下、5ちゃんねるからVIPがお送りします
ちっちゃいファーム書くくらいならまあ要らないかなって感じ
そもそも使えない事も多いけど
そもそも使えない事も多いけど
16: 以下、5ちゃんねるからVIPがお送りします
webアプリとかの細かいチビっちゃいプログラムにはいらないだろうな
17: 以下、5ちゃんねるからVIPがお送りします
どこ修正すれば良いかわかんないから、とりあえず基底クラスに機能追加するの
19: 以下、5ちゃんねるからVIPがお送りします
>>17
あるあるっちゃあるあるだが…
あるあるっちゃあるあるだが…
21: 以下、5ちゃんねるからVIPがお送りします
FPってなんだ?
とりあえず同じファイル内に関数羅列していってメイン関数でその作った関数を順次呼び出していくの?
とりあえず同じファイル内に関数羅列していってメイン関数でその作った関数を順次呼び出していくの?
22: 以下、5ちゃんねるからVIPがお送りします
オブジェクト指向プログラミング未だにわからないVBAすら手続き型しか書けない
29: 以下、5ちゃんねるからVIPがお送りします
>>22
どんまい
クラスを実体化(インスタンス化)させてそのグラス内のメソッドを使用することだと簡単に思っていればいい
例えばファイルを開くとき
Dim wb As Workbooks
wb.Open ファイル名
とすると思うが
Dim wb As Workbooksの部分でWorkbooksクラスをインスタンス化している
でwbはそのインスタンス化した名前で
wb.OpenでWorkbooksクラス内のOpenメソッドを使うようにしてるわけ
オブジェクト指向はこれを更に高度にしたやつだけどこれが理解できればオブジェクト指向なんてすぐ理解できる
どんまい
クラスを実体化(インスタンス化)させてそのグラス内のメソッドを使用することだと簡単に思っていればいい
例えばファイルを開くとき
Dim wb As Workbooks
wb.Open ファイル名
とすると思うが
Dim wb As Workbooksの部分でWorkbooksクラスをインスタンス化している
でwbはそのインスタンス化した名前で
wb.OpenでWorkbooksクラス内のOpenメソッドを使うようにしてるわけ
オブジェクト指向はこれを更に高度にしたやつだけどこれが理解できればオブジェクト指向なんてすぐ理解できる
34: 以下、5ちゃんねるからVIPがお送りします
>>29
まだ理解足りないが考えてみる
あとメソッドとプロパティの使い分けが全く分からん
まだ理解足りないが考えてみる
あとメソッドとプロパティの使い分けが全く分からん
39: 以下、5ちゃんねるからVIPがお送りします
>>34
メソッドは行動、プロパティは値ってイメージ
例えばHageクラス側にプロパティ aがあってPlusメソッドでa+2にするメソッドであったとしよう
Dim hage As Hage←Hageクラスをインスタンス化
int result = hoge.a←hogeクラスのaの値を呼び出す。今回は値に何も変化がないので0のはず
hoge.Plus←Plusメソッドを実行aプロパティに+2を足したので0+2=2となる
int result2 = hoge.a←2となる
メソッドは行動、プロパティは値ってイメージ
例えばHageクラス側にプロパティ aがあってPlusメソッドでa+2にするメソッドであったとしよう
Dim hage As Hage←Hageクラスをインスタンス化
int result = hoge.a←hogeクラスのaの値を呼び出す。今回は値に何も変化がないので0のはず
hoge.Plus←Plusメソッドを実行aプロパティに+2を足したので0+2=2となる
int result2 = hoge.a←2となる
47: 以下、5ちゃんねるからVIPがお送りします
>>39
>メソッドは行動、プロパティは値ってイメージ
それは分かる
C++とVBAしか知らないけどプロパティに直接代入して挙動変わるのいっぱいあるじゃん
あれとメソッドの違いが判らん
>メソッドは行動、プロパティは値ってイメージ
それは分かる
C++とVBAしか知らないけどプロパティに直接代入して挙動変わるのいっぱいあるじゃん
あれとメソッドの違いが判らん
50: 以下、5ちゃんねるからVIPがお送りします
>>47
すまんプロパティに直接代入してってのがわからん
ちょっと例を上げてくれたら助かる
すまんプロパティに直接代入してってのがわからん
ちょっと例を上げてくれたら助かる
54: 以下、5ちゃんねるからVIPがお送りします
>>50
プログラミングからかなり離れてるからすぐ例が出ない
もう寝るし手間だからいいや
プログラミングからかなり離れてるからすぐ例が出ない
もう寝るし手間だからいいや
57: 以下、5ちゃんねるからVIPがお送りします
>>54
了解
ありがとう
了解
ありがとう
25: 以下、5ちゃんねるからVIPがお送りします
継承なんてしちめんどくさい悪習は淘汰されて当然。
ソース管理がしっちゃかめっちゃかになるからな。
結局ほぼ同じ名前だけ変えた別ソースを作って管理するはめになる。
スーパークラス触るなんて立ち上げ当初くらい。
ソース管理がしっちゃかめっちゃかになるからな。
結局ほぼ同じ名前だけ変えた別ソースを作って管理するはめになる。
スーパークラス触るなんて立ち上げ当初くらい。
28: 以下、5ちゃんねるからVIPがお送りします
>>25
継承は禁止で良いと思う
継承は禁止で良いと思う
31: 以下、5ちゃんねるからVIPがお送りします
>>25
なるほど継承じゃなく同じコードを2回書いて付け足す方法がGoやRustで取り入れられてるわけね
めんどくせってなるけどまぁ君等が良いなら良いと思う
なるほど継承じゃなく同じコードを2回書いて付け足す方法がGoやRustで取り入れられてるわけね
めんどくせってなるけどまぁ君等が良いなら良いと思う
26: 以下、5ちゃんねるからVIPがお送りします
OOPはウンチだと思う。
継承とかゴミすぎる。
継承とかゴミすぎる。
33: 以下、5ちゃんねるからVIPがお送りします
おーい
Go やRustに詳しくて関数型もできる人こーい
どうやって構造体内のメソッドを呼び出してるのか
そもそも構造体にメソッドはかけるのか
Go やRustに詳しくて関数型もできる人こーい
どうやって構造体内のメソッドを呼び出してるのか
そもそも構造体にメソッドはかけるのか
37: 以下、5ちゃんねるからVIPがお送りします
OOPは概念
43: 以下、5ちゃんねるからVIPがお送りします
>>37
それ
しかもかなり人間側にとってわかり易い概念だと思うんだが難しいっていう人割といるよね?
それ
しかもかなり人間側にとってわかり易い概念だと思うんだが難しいっていう人割といるよね?
38: 以下、5ちゃんねるからVIPがお送りします
オブジェクト指向じゃないと今はきついだろ
ワンオペみたいな長ったらしい文は読みにくくてしゃーない
ワンオペみたいな長ったらしい文は読みにくくてしゃーない
53: 以下、5ちゃんねるからVIPがお送りします
オブジェクト指向はなくてはならない存在だけど
オブジェクト指向と調べて出てくるような項目は現代プログラミングに不必要だと思ってる
あくまでIDEの恩恵を受けやすい形が良いというだけ
オブジェクト指向と調べて出てくるような項目は現代プログラミングに不必要だと思ってる
あくまでIDEの恩恵を受けやすい形が良いというだけ
コメント
コメント一覧 (17)
結局何かしらのデータ型とメソッドを関連付けて扱う事になる
それを引数で渡すのかオブジェクトの中に隠蔽するのかの違いくらいで
基本的な考え方はどちらも同じ
〇〇じゃないと駄目と言ってる人はどちらの理解も足りない
imihunet
が
しました
imihunet
が
しました
3つの原則のうち、継承はすごく言語仕様っぽくて他の2つと全然違うし、JSは当初の3原則とちょっと違うけどオブジェクト指向だと言われる。この辺の曖昧さを理解せず丸覚えしてるやつの多いこと
そもそもこれはオブジェクト指向プログラミング言語の特性であって、オブジェクトとメッセージパッシングで説明できるっていう本来のオブジェクト志向ともずれてる
この辺を全部考えたことがあったら、オブジェクト指向って言葉はフワフワしているものだから、理解しているという方が恥ずかしいとなるハズなんだわ
imihunet
が
しました
imihunet
が
しました
論文なり専門家の著書なり引用示せばいいのに謎の自論喚いてるだけ
めちゃくちゃ不毛やし知識以前に大人の振る舞いやないんやけど
imihunet
が
しました
imihunet
が
しました
それさえ実現できるならなんでもいい。
別にオブジェクト指向にこだわる必要もない。
imihunet
が
しました