c言語的にjavaを教えて

2018/05/08(火) 22:54:32.36ID:CKiuQAUI
仕事でc言語をつめ込まれた直後にjavaやらされて混乱しとるんじゃが、オブジェクト指向とモジュール構造の差異を教えてほしい

いろいろ調べて自分なりの結論として

・オブジェクトとは、操作に対する「一連の手続き」である
e.g.
操作[電源ボタンを押す]→オブジェクト[PC]→起動[画面がつく]

・モジュールとは「機能or部品の最小単位」である( ≒ 関数)
e.g.
引数[電源ボタンを押す]→main[下位モジュール呼び出し]→(モジュールa[PC内の電源を起動]→モジュールb[プラグから電力を給電]→モジュールc... 以下略...モジュールz[ディスプレイに信号送信])→起動[画面がつく]

つまりモジュールは部品に過ぎないから複数個作って繋げて「一連の手続き」にする必要があるけど、オブジェクトは「一連の手続き」単位だからそれ単体で目的が達成ができる
オブジェクトの中身、処理部分でモジュールが使われていて、スーパークラスとサブクラスみたいな親と子の関係性

こういう認識で合ってる?
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.56
>>1
細かなイディオムに気を取られるな
CとJavaなんて本質的に何ら違いはない
2018/05/09(水) 07:25:01.14ID:1fXIfimd
その程度のことも自力で理解できないなら向いてないから辞職しなよ
6デフォルトの名無しさん
垢版 |
2018/05/09(水) 12:17:55.13ID:rGrv3OR8
>>4
まあ実際のとこ判らんくても実務ではなんとかなるかもしれんけどjava bronze試験通らんとあかんのよ
どうせ試験までやるならきっちり理解して先進みたいなーと
2018/05/10(木) 14:33:47.81ID:Hy3BGaBt
わからないからふんわりした批判しかできない良い例だね
2018/05/10(木) 19:25:10.37ID:4Q48RAux
オブジェクト指向には色々な要素があるけど、まず構造体と同じようにデータをある単位に分割して、そのデータを操作できる関数をメソッドに限るってのが基本と思っていい

Javaなら後は手続き型と何ら変わりなくて
・オブジェクト(データの塊)を作る
・メソッドを順番に呼び出して欲しいオブジェクトを作る
・適宜出力
これだけ
9デフォルトの名無しさん
垢版 |
2018/05/10(木) 21:10:01.25ID:TJlxQGib
>>8
丁寧にありがとう

今日教科書一通り読み終わって、>>8を見て認識が結構変わった

c言語的に言うなら、モジュールは寧ろクラスに構造が近くて、関数はメソッド
ここだけ見ればやってることはさほど変わりないんだね

じゃあ何が違うのかと言えばただ1点、オブジェクトを作るか否か。
で、オブジェクトをc言語的に表現すると「構造体と関数を目的に応じてまとめたもの」。

こんな感じで合ってるかな
10デフォルトの名無しさん
垢版 |
2018/05/10(木) 21:46:33.09ID:TJlxQGib
ここまで考えてみて、「でもオブジェクトの挙動って全部クラスに書いてあるんだから、一々インスタンス化せんでも全部クラスでやりゃ良くない?」ってとこに戻ってしまった
オブジェクトを作る利点って何があるのかな・・・
2018/05/11(金) 07:32:08.15ID:kdHneLaR
そう思うならインスタンスを作らず延々クラスを書き続ければ良い
new禁止な
2018/05/11(金) 08:56:48.68ID:tjPjQfiQ
>>10
敵Aと敵BのHPは同じクラスフィールドで管理するより別個のインスタンスフィールドで管理した方が楽でしょ?
Aさんの残高とBさんの残高は別個のインスタンスに分けた方が処理を書くとき混乱しにくいでしょ?
2018/05/11(金) 13:02:07.88ID:kdHneLaR
クラスはCで言うところの構造体を拡張したもの
中身の変数やインスタンスがメンバー 関数がメソッド

インスタンスは他人が書いたAPIライブラリーから使用したいクラスを選んで
実体化したもの 基本実体化しないと利用できません残念

クラス メンバー メソッド が解ってCの知識があればあとはコードかけるよ
オブジェクトは完成品かしら自分はあんまり使わない言葉だから適当
2018/05/11(金) 13:48:41.46ID:tjPjQfiQ
>>13
メソッドはあくまでメンバ関数では?(メソッドもメンバであるという意)
あえて対称的な用語を用いるならフィールドとメソッドでしょう

インスタンスを他所のライブラリ中クラスの実体化に限ってるのはシンプルに意味不明なんだけど何か理由があるの?
2018/05/11(金) 14:01:37.76ID:kdHneLaR
ごちゃごちゃ言うなC的にシンプルに説明してる
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況