仕事でc言語をつめ込まれた直後にjavaやらされて混乱しとるんじゃが、オブジェクト指向とモジュール構造の差異を教えてほしい
いろいろ調べて自分なりの結論として
・オブジェクトとは、操作に対する「一連の手続き」である
e.g.
操作[電源ボタンを押す]→オブジェクト[PC]→起動[画面がつく]
・モジュールとは「機能or部品の最小単位」である( ≒ 関数)
e.g.
引数[電源ボタンを押す]→main[下位モジュール呼び出し]→(モジュールa[PC内の電源を起動]→モジュールb[プラグから電力を給電]→モジュールc... 以下略...モジュールz[ディスプレイに信号送信])→起動[画面がつく]
つまりモジュールは部品に過ぎないから複数個作って繋げて「一連の手続き」にする必要があるけど、オブジェクトは「一連の手続き」単位だからそれ単体で目的が達成ができる
オブジェクトの中身、処理部分でモジュールが使われていて、スーパークラスとサブクラスみたいな親と子の関係性
こういう認識で合ってる?
c言語的にjavaを教えて
2018/05/08(火) 22:54:32.36ID:CKiuQAUI
2018/05/08(火) 23:08:05.12ID:fJWr41VM
すまんが3行で
3デフォルトの名無しさん
2018/05/08(火) 23:38:30.49ID:CKiuQAUI オブジェクト指向と
モジュール構造って
なにがちがうん
モジュール構造って
なにがちがうん
4デフォルトの名無しさん
2018/05/09(水) 00:31:03.562018/05/09(水) 07:25:01.14ID:1fXIfimd
その程度のことも自力で理解できないなら向いてないから辞職しなよ
6デフォルトの名無しさん
2018/05/09(水) 12:17:55.13ID:rGrv3OR82018/05/10(木) 14:33:47.81ID:Hy3BGaBt
わからないからふんわりした批判しかできない良い例だね
2018/05/10(木) 19:25:10.37ID:4Q48RAux
オブジェクト指向には色々な要素があるけど、まず構造体と同じようにデータをある単位に分割して、そのデータを操作できる関数をメソッドに限るってのが基本と思っていい
Javaなら後は手続き型と何ら変わりなくて
・オブジェクト(データの塊)を作る
・メソッドを順番に呼び出して欲しいオブジェクトを作る
・適宜出力
これだけ
Javaなら後は手続き型と何ら変わりなくて
・オブジェクト(データの塊)を作る
・メソッドを順番に呼び出して欲しいオブジェクトを作る
・適宜出力
これだけ
9デフォルトの名無しさん
2018/05/10(木) 21:10:01.25ID:TJlxQGib10デフォルトの名無しさん
2018/05/10(木) 21:46:33.09ID:TJlxQGib ここまで考えてみて、「でもオブジェクトの挙動って全部クラスに書いてあるんだから、一々インスタンス化せんでも全部クラスでやりゃ良くない?」ってとこに戻ってしまった
オブジェクトを作る利点って何があるのかな・・・
オブジェクトを作る利点って何があるのかな・・・
2018/05/11(金) 07:32:08.15ID:kdHneLaR
そう思うならインスタンスを作らず延々クラスを書き続ければ良い
new禁止な
new禁止な
2018/05/11(金) 08:56:48.68ID:tjPjQfiQ
>>10
敵Aと敵BのHPは同じクラスフィールドで管理するより別個のインスタンスフィールドで管理した方が楽でしょ?
Aさんの残高とBさんの残高は別個のインスタンスに分けた方が処理を書くとき混乱しにくいでしょ?
敵Aと敵BのHPは同じクラスフィールドで管理するより別個のインスタンスフィールドで管理した方が楽でしょ?
Aさんの残高とBさんの残高は別個のインスタンスに分けた方が処理を書くとき混乱しにくいでしょ?
2018/05/11(金) 13:02:07.88ID:kdHneLaR
クラスはCで言うところの構造体を拡張したもの
中身の変数やインスタンスがメンバー 関数がメソッド
インスタンスは他人が書いたAPIライブラリーから使用したいクラスを選んで
実体化したもの 基本実体化しないと利用できません残念
クラス メンバー メソッド が解ってCの知識があればあとはコードかけるよ
オブジェクトは完成品かしら自分はあんまり使わない言葉だから適当
中身の変数やインスタンスがメンバー 関数がメソッド
インスタンスは他人が書いたAPIライブラリーから使用したいクラスを選んで
実体化したもの 基本実体化しないと利用できません残念
クラス メンバー メソッド が解ってCの知識があればあとはコードかけるよ
オブジェクトは完成品かしら自分はあんまり使わない言葉だから適当
2018/05/11(金) 13:48:41.46ID:tjPjQfiQ
>>13
メソッドはあくまでメンバ関数では?(メソッドもメンバであるという意)
あえて対称的な用語を用いるならフィールドとメソッドでしょう
インスタンスを他所のライブラリ中クラスの実体化に限ってるのはシンプルに意味不明なんだけど何か理由があるの?
メソッドはあくまでメンバ関数では?(メソッドもメンバであるという意)
あえて対称的な用語を用いるならフィールドとメソッドでしょう
インスタンスを他所のライブラリ中クラスの実体化に限ってるのはシンプルに意味不明なんだけど何か理由があるの?
2018/05/11(金) 14:01:37.76ID:kdHneLaR
ごちゃごちゃ言うなC的にシンプルに説明してる
2018/05/11(金) 14:14:25.48ID:tjPjQfiQ
2018/05/11(金) 14:27:50.54ID:kdHneLaR
うるせえなじゃあお前が説明しろ
ルールは同じ文字数で言葉遊びはすんな
出来なきゃ黙ってろ
ルールは同じ文字数で言葉遊びはすんな
出来なきゃ黙ってろ
18デフォルトの名無しさん
2018/05/11(金) 14:42:53.95ID:kdHneLaR 俺が間違ってたか
大雑把にメンバー変数メンバーメソッドがクラスの中身な
大雑把にメンバー変数メンバーメソッドがクラスの中身な
19デフォルトの名無しさん
2018/05/11(金) 18:39:30.35ID:i/s7a+bH やっぱり、ホリエモンのそっくりさんの社長が出て来る漫画に出てくる
最近の子はオブジェクト指向から入るからうんたらかんたら
っていう悪口が間違っていることがよくわかる
はじめからJavaを学んでオブジェクト指向から入った方が良い
最近の子はオブジェクト指向から入るからうんたらかんたら
っていう悪口が間違っていることがよくわかる
はじめからJavaを学んでオブジェクト指向から入った方が良い
2018/05/11(金) 18:43:45.10ID:ISO4iwOk
そんな本職のプログラマが書いたわけでもないネタ漫画を
真に受けたらアカンと思うよ
真に受けたらアカンと思うよ
21デフォルトの名無しさん
2018/05/11(金) 22:18:36.14ID:zN/yjFOx >>12
あーなるほど
上の例で言えば、例えばインスタンス化せずにEnemyHPクラスで全てのHPを管理しようとした場合「敵AのHPを計算・出力したあと敵BのHPを計算・出力する」って順々の処理は出来るけど、
範囲攻撃して敵AとBのHPを同時に計算しなきゃならない時とか、敵Aを攻撃したあと敵Bを攻撃すると敵AのHPが上書きされちゃうから、一戦闘でエンカウントしうる敵の分、それぞれの状態を保存するようなメソッドなり変数なりなんなりが別途必要になったりする。
でもオブジェクトを適時作る機能 =インスタンス化があれば基本計算・出力機能だけで完結できるってことよね?
あーなるほど
上の例で言えば、例えばインスタンス化せずにEnemyHPクラスで全てのHPを管理しようとした場合「敵AのHPを計算・出力したあと敵BのHPを計算・出力する」って順々の処理は出来るけど、
範囲攻撃して敵AとBのHPを同時に計算しなきゃならない時とか、敵Aを攻撃したあと敵Bを攻撃すると敵AのHPが上書きされちゃうから、一戦闘でエンカウントしうる敵の分、それぞれの状態を保存するようなメソッドなり変数なりなんなりが別途必要になったりする。
でもオブジェクトを適時作る機能 =インスタンス化があれば基本計算・出力機能だけで完結できるってことよね?
22デフォルトの名無しさん
2018/05/11(金) 22:46:01.84ID:zN/yjFOx いやこの場合出力するってのは余計か
メモリ上にデータを展開して都度そのデータを再利用したり加工したい場合、インスタンス化があるとソースコードが随分スマートになるってところが最大のメリットと理解したのじゃが
メモリ上にデータを展開して都度そのデータを再利用したり加工したい場合、インスタンス化があるとソースコードが随分スマートになるってところが最大のメリットと理解したのじゃが
2018/05/11(金) 22:49:14.90ID:kdHneLaR
パラメータのintの多次元配列作ってをごちゃごちゃいじるのより
キャラ一体分のクラスを作ってそれを必要数複製した方が記述がスマートになるよってこと
キャラ一体分のクラスを作ってそれを必要数複製した方が記述がスマートになるよってこと
24デフォルトの名無しさん
2018/05/11(金) 23:01:59.32ID:/LKYW3YY C言語が理解できるなら、Xのソースを読んでみよう。
その後、高橋真奈著やさしいJavaを読もう。
あら不思議、スラスラ読めます。
おわり。
その後、高橋真奈著やさしいJavaを読もう。
あら不思議、スラスラ読めます。
おわり。
2018/05/12(土) 00:04:42.76ID:qaTekKU3
Javaとオブジェクト言語を理解するにはRPGで例えると
いちばんしっくり来るのはほんまやな
スッキリJavaが人気本になるわけやで
いちばんしっくり来るのはほんまやな
スッキリJavaが人気本になるわけやで
2018/05/12(土) 00:11:01.28ID:+tHIUeTw
Javaは意図的な分割が行える
27デフォルトの名無しさん
2018/05/12(土) 08:27:18.10ID:FziDFmpA28デフォルトの名無しさん
2018/05/12(土) 08:34:41.87ID:FziDFmpA2018/05/12(土) 09:32:11.25ID:0A/PAli+
>>27
その通り
例えばint HPが構造体の要素なら加減乗除何でもできてしまうわけだけどクラスのprivateフィールドだと例えば
enemyA.damage(Power attacked)と
enemyA.heal()とに操作を制限できるんだよね
だから変な操作をしてしまえない
その通り
例えばint HPが構造体の要素なら加減乗除何でもできてしまうわけだけどクラスのprivateフィールドだと例えば
enemyA.damage(Power attacked)と
enemyA.heal()とに操作を制限できるんだよね
だから変な操作をしてしまえない
2018/05/12(土) 19:34:10.74ID:qaTekKU3
ゲームに登場するクラスがEnemyだけだったら
そこまでオブジェクト指向のありがたみは感じないけど
EnemyはそもそもHPやMPみたいなint型のプリミティブな変数だけじゃなくて
SkillとかItemみたいなオブジェクトもフィールドとして当然持つことになるだろうし
そのSkillやItemにもEffectというオブジェクトがフィールドにあるかもしれない
って考えはじめると、手続き型よりコードを書くのが楽にn感じるようになる
そこまでオブジェクト指向のありがたみは感じないけど
EnemyはそもそもHPやMPみたいなint型のプリミティブな変数だけじゃなくて
SkillとかItemみたいなオブジェクトもフィールドとして当然持つことになるだろうし
そのSkillやItemにもEffectというオブジェクトがフィールドにあるかもしれない
って考えはじめると、手続き型よりコードを書くのが楽にn感じるようになる
2018/05/13(日) 08:49:36.07ID:FE+GfUzy
32デフォルトの名無しさん
2018/05/13(日) 13:02:55.43ID:rS373Qjo33デフォルトの名無しさん
2018/05/21(月) 01:41:35.37ID:j3ztAmor >>1
レス読んでないから解決済みかもだが
× オブジェクトとは、操作に対する「一連の手続き」である
○ オブジェクトとは「物」。属性(プロパティ)と操作(メソッド)から成る
で、 切り口が違う。例えば女をイカせたい場合、Cだと op=onna("AV女優"); ikaseru(op, KUNNI); に対し、Javaだと、op=new Onna("AV女優"); op.ikaseru(KUNNI); となるのだが、ニュアンスの違いわかるかな?操作から入るのではなく、物から入る
そうすると、ソフトが複雑にならないって良さがあるんだけど、これも経験をつまないピンとこないと思う
で
× モジュールとは「機能or部品の最小単位」である( ≒ 関数)
○ モジュールとは「機能or部品をある程度まとまった単位でまとめた単位』である( ≒ フォルダ)
で
Javaの場合、パッケージと呼ぶ
レス読んでないから解決済みかもだが
× オブジェクトとは、操作に対する「一連の手続き」である
○ オブジェクトとは「物」。属性(プロパティ)と操作(メソッド)から成る
で、 切り口が違う。例えば女をイカせたい場合、Cだと op=onna("AV女優"); ikaseru(op, KUNNI); に対し、Javaだと、op=new Onna("AV女優"); op.ikaseru(KUNNI); となるのだが、ニュアンスの違いわかるかな?操作から入るのではなく、物から入る
そうすると、ソフトが複雑にならないって良さがあるんだけど、これも経験をつまないピンとこないと思う
で
× モジュールとは「機能or部品の最小単位」である( ≒ 関数)
○ モジュールとは「機能or部品をある程度まとまった単位でまとめた単位』である( ≒ フォルダ)
で
Javaの場合、パッケージと呼ぶ
2018/05/21(月) 05:28:33.16ID:wpeO3iTw
2018/05/21(月) 23:15:24.83ID:7HbOeApe
どうでもいいけどなんでこういうふうにわざわざ下ネタを例にとる奴が定期的にわくんだろうな>>33
36デフォルトの名無しさん
2018/05/23(水) 19:08:29.19ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
MHMJT
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
MHMJT
2018/06/20(水) 16:05:37.57ID:LR1LYzpB
>>1
レス読んでないけどC言語はそれまでのプログラム言語が
プログラマが処理先に自由にgotoしてよかったので
処理が飛びまくって後からの解析がシャレにならなくなっていたのに対して
「関数」として「数値入れると答えが出る」単位でプログラムしましょうという発想
C++などはその関数をクラスという単位にしてパーツの付け替え加工で
使い回せるようにしよう!という発想
Javaはちょっと違う系統のオブジェクト指向から思想を取り込んでるから
「クラス」に「命令を与えると答えが出る」単位にしようという発想
なんだかわからない数値を毎回後から来たプログラマーが
「この数値なんだろう?」って追わなくても
人間にわかる命令で「これをやる」って命令が送られると
プログラムがやはり人間にわかる名前のつけられたデータを取ってきて
自分で命令された処理をやっているというコードが理想。
レス読んでないけどC言語はそれまでのプログラム言語が
プログラマが処理先に自由にgotoしてよかったので
処理が飛びまくって後からの解析がシャレにならなくなっていたのに対して
「関数」として「数値入れると答えが出る」単位でプログラムしましょうという発想
C++などはその関数をクラスという単位にしてパーツの付け替え加工で
使い回せるようにしよう!という発想
Javaはちょっと違う系統のオブジェクト指向から思想を取り込んでるから
「クラス」に「命令を与えると答えが出る」単位にしようという発想
なんだかわからない数値を毎回後から来たプログラマーが
「この数値なんだろう?」って追わなくても
人間にわかる命令で「これをやる」って命令が送られると
プログラムがやはり人間にわかる名前のつけられたデータを取ってきて
自分で命令された処理をやっているというコードが理想。
2018/06/20(水) 21:08:03.93ID:FK42nbh4
>>37
30レスくらい読めバカタレ
30レスくらい読めバカタレ
39デフォルトの名無しさん
2018/07/05(木) 01:59:31.57ID:RfoszcD2 W08
2018/08/22(水) 14:15:01.74ID:Opme7aq9
C++の本でも読めばすぐわかるけどな
2020/01/01(水) 15:25:32.54ID:mtZC/qIi
メソッドなんて要らん
関数使わせろ
関数使わせろ
42デフォルトの名無しさん
2020/06/22(月) 14:55:49.77ID:khT4bacP Cのほうがjavaより簡単明朗。推奨されないメソッドの洪水は、見ていて気分が悪くなるし。
でもWebバックエンドならJava一択になるのかな。最初に覚えるなら絶対Cがおすすめ。
そのあとC++そしてjavaが最高の流れ。そこまでいけば、どんな言語もちゃらい・はずだが
・・
でもWebバックエンドならJava一択になるのかな。最初に覚えるなら絶対Cがおすすめ。
そのあとC++そしてjavaが最高の流れ。そこまでいけば、どんな言語もちゃらい・はずだが
・・
43デフォルトの名無しさん
2020/06/22(月) 17:02:20.03ID:5VJoOXgM あんまり関係ないけど、うちシャンプー、メリット。
44デフォルトの名無しさん
2020/06/22(月) 18:49:08.79ID:6gQqm8wo 既に解決してる単発スレでなに言ってんの
ちゃんインシャンにきまってるわ
ちゃんインシャンにきまってるわ
2020/06/23(火) 01:20:34.08ID:ie2ZK16d
リンスインシャンプーはハゲるぞ
46デフォルトの名無しさん
2020/06/23(火) 16:04:37.34ID:atXMAnwf Javaやるとハゲると昔から言われていたな・・
47デフォルトの名無しさん
2021/07/04(日) 11:11:02.24ID:FCGWZtZb 終わってるスレだが、オブジェクト指向の「考え方」を
知らずに、巨大クラス作るとそれは「グローバル変数と
それを操る関数たち」っていう、最悪の状態になるんだよな。
知らずに、巨大クラス作るとそれは「グローバル変数と
それを操る関数たち」っていう、最悪の状態になるんだよな。
48デフォルトの名無しさん
2021/07/04(日) 12:05:50.02ID:pili1Lz/ >>47
OpenGL用のC++ライブラリですね判ります
OpenGL用のC++ライブラリですね判ります
49Mb
2021/07/31(土) 17:10:51.16ID:HS2AjqTr >>47
C だと変数領域を「共有」しているので、誰かがアドレスポインタを
間違えて使うと、酷い目に遭う。
Java だとローカルな変数をオブジェクトが「抱えて」いて、
それをメソッドを使ってどうこうしよう、という形になる。
ただ、それだとグローバル変数を経由しようとしたときに
ややこしい話になるので、シングルトン実装したオブジェクトに
問合せをするとかいったことになる。
ぶっちゃけ C が解ってるんなら Java は難しくない。
ただ。おれみたいな年寄りからすると、可変長のメモリ領域の
扱いが便利すぎて、「ボケるのが早くなりそうだ (-_-!)」という
不安がある。
C だと変数領域を「共有」しているので、誰かがアドレスポインタを
間違えて使うと、酷い目に遭う。
Java だとローカルな変数をオブジェクトが「抱えて」いて、
それをメソッドを使ってどうこうしよう、という形になる。
ただ、それだとグローバル変数を経由しようとしたときに
ややこしい話になるので、シングルトン実装したオブジェクトに
問合せをするとかいったことになる。
ぶっちゃけ C が解ってるんなら Java は難しくない。
ただ。おれみたいな年寄りからすると、可変長のメモリ領域の
扱いが便利すぎて、「ボケるのが早くなりそうだ (-_-!)」という
不安がある。
2021/08/01(日) 00:26:28.25ID:jvrFygM5
>>47
所謂、神クラスのことかな。
一つのクラスに何でも詰め込みすぎて、実質、そのグラス内で定義されているメンバ変数がグローバル変数と化している状態って奴でしょ。
責務もハッキリしてないからテストもできない最悪の状態(再利用性・可読性が死んでる)になってることは容易に想像できる。
所謂、神クラスのことかな。
一つのクラスに何でも詰め込みすぎて、実質、そのグラス内で定義されているメンバ変数がグローバル変数と化している状態って奴でしょ。
責務もハッキリしてないからテストもできない最悪の状態(再利用性・可読性が死んでる)になってることは容易に想像できる。
51Mb
2021/08/01(日) 01:10:48.84ID:poI7LMFp >>50
それって、C のモジュール化の時点で失敗しているので、
このスレの主旨である Java (あるいは OO)とは
何の関係もないように思う。
いや、言いたいことはわかるんだけど、
その手のとばっちりを喰った経験が多々あって、
トラウマに引っかかるので ……
それって、C のモジュール化の時点で失敗しているので、
このスレの主旨である Java (あるいは OO)とは
何の関係もないように思う。
いや、言いたいことはわかるんだけど、
その手のとばっちりを喰った経験が多々あって、
トラウマに引っかかるので ……
2022/12/23(金) 19:45:15.05ID:k2wkvDO7
全部JNIで書けばおk
2023/09/22(金) 14:01:04.27ID:js4fs0bK
人を信じよ、しかしその百倍も自らを信じよ
2023/10/13(金) 22:47:43.33ID:HEQod4fb
c言語の関数をclass内のmethodに置き換えるだけじゃね
?OOの基本はjava のチュートリアルだっけ原文に書いていた 気合いだ〜
?OOの基本はjava のチュートリアルだっけ原文に書いていた 気合いだ〜
55デフォルトの名無しさん
2023/10/19(木) 09:33:38.28ID:rcYEOPS6 C++的にJavaじゃなくて
C的にJavaってのがミソか
C的にJavaってのがミソか
レスを投稿する
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★3 [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★2 [BFU★]
- 小野田氏、”中国経済への依存“に警戒感 高市首相の国会答弁巡り [煮卵★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」 [ぐれ★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で [ぐれ★]
- 【サッカー】独占入手 最年長JリーガーにW不倫疑惑 『お風呂覗きたいんですが笑』LINE流出も… 慰謝料トラブルを本人に直撃 [冬月記者★]
- 中国とのパイプ役がいない高市政権、実施詰みか [668970678]
- 干した猿みたいなミイラ顔の女がネトウヨだらけなのは何故なのか… [667744927]
- 【なぜ】安倍晋三の評価、地味に上がってる模様… [343591364]
- とうすこ🏡愛され絵文字♡🤥👊😅👊👶♡
- 【悲報】ココイチ、売上増収も客離れが止まらずジリ貧。「さらなる値上げも視野」😳 [518915984]
- 中国国営放送「日本は琉球をただちに中国に返還せよ」 キタ━━━━(゚∀゚)━━━━!!!!! [314039747]
