初心者プログラマーワイ、オブジェクト指向が理解できず死亡
■ このスレッドは過去ログ倉庫に格納されています
今じゃんけんのプログラム作ってるけど難しいンゴ・・・ >>6
全部わからんで
オーバーロードとかライドとかクロージャとか何言ってるんや? オブジェクト指向がわからないのか、プログラミング言語のクラスとかの機能がわからないかどっちなのかをしっかりした方が良い
オブジェクト指向わからんという場合大抵はクラスの使い方がわからないレベルのことが多い >>9
マジレスすると今お前がやっているレベルのプログラミングならそのへんは理解しなくて良い
無駄だから一回捨てろ 手を動かせ
座学だけじゃそこは掴めん
適当にデータベースからデータ引っ張ったりするソフトウェアでも作ってみろ >>8
Mac使っとるんやがOSの機能ってどうやって呼び出すんや
Swiftじゃないと無理なん? オブジェクト指向が理解出来ん奴はセンスないからやめたほうがいい >>9
概念についてはコード書いてるうちに理解してくるもんだから先に手を動かした方がいいよ 俺はクラスとオブジェクトとインスタンスの違いがわからん 言ってる事自体は理解できるんやが使い道がよくわからんのや
ホンマにこれ使うんか? >>17
使うとかじゃない、そういうパラダイムがあるってだけや
アプリケーション開発に慣れてきてようやく「あ、これがコンポーネントね」って分かってくる 何がわからないのかわからないレベルの場合どうすればええんや いまMVVMでGUIアプリ用の雛形をPythonで書く宿題やってるんだが全然わからん
デザインパターン使えって言われたんだがそもそもObserverパターン理解できてない
ChatGPTさんに聞いてもチンプンカンプン・・・おわた ワイにわかりやすく説明できるほど頭ええやつおらんの?
くだらんマウント撮ってるやつは論外として >>21
何から始めれば良いか分からないってこと?
適当にクローンでも作ったら? ワイも前本読んだけけど当然のようにオーバーライドとか出てきて泣いたわ その言葉ホリエモンっぽい香具師がでてくるブラック企業の漫画で初めて覚えた >>13
macはあんましらんけど、cocoaフレームワークかAPIの単語で検索すればでてくるんやない? クラスやオーバーロードの書き方は分かるけど使い方、使い道が分からんということか? >>30
だいたいそんなかんじや
説明効いたその場ではわかるんやけど何に使うのかわからんし
使えなくてもそこまで困ってないから忘れるんや
これそんな重要なん? >>32
理解が難しい場合も有るけどほぼそれやな
でもGithubとかですごい人のコード見るとしっかりオブジェクト指向だしいるんか? 場数をこなしていくと再利用性や可読性、つまり保守性について考えるようになるし
その時にOOPで纏められていると助かるって話や
イッチは場数が足らない じゃんけんプログラムの場合
なにをオブジェクトとして定義するんや?? 料理を考えてみいや
ネギをみじん切りにします、みじん切りはこう切ります
ニンジンをみじん切りにします、みじん切りはこう切ります
たまねぎを・・・
っていちいち全部書くの面倒やん
だから
「カット」って汎用クラスを作っておいてそこにみじん切り関数を実装しておけば
それ呼び出すだけでええから楽できるやろ?
もっと言うとこの「カット」って汎用クラスはDIYプログラムにも流用できるな
すごく楽できるやろ? >>22
Observer自体は、対象の状態を監視、通知するモデルというだけで、そんなに複雑じゃない。
デザインパターンもよく使うやつを定型化して、使いやすくしてるだけやから、サンプル動かして変数の動きとかを追えばだんだんわかるようになると思う >>35
Pythonとかで3000行程度のプログラム組んだりしたんやけど
それでもオブジェクト指向なしでつくれたんや
でも可読性低いんかこれやっぱ? >>34
いる
ワイも最初はオブジェクト指向のメリットわからんかったけど、Webアプリのフレームワークの機能使い出したら理解できたわ
イッチもそのうち理解できると思うで >>40
GPT-4にリファクタリングさせてみ
えらいことになると思う じゃんけんのプログラムでオブジェクト思考とか使わなくていいと思うけど
ワイが思いついたのはランダムで1〜99の数字が出るようにしてもし1〜33だったらパー、34〜67だったらグー、68〜99だったらチョキみたいに確率をやったらええんやないの? オブシコもできんのに初心者名乗るなや
この業界に来ること自体間違いやで じゃんけんじゃなくてルーイダの酒場みたいなシステム作ろうとしたら理解しやすいかもしれんで いうてOOPも別に万能じゃないし
肥大化すると誰も触れないクラスとかが出来て死ぬみたいのは同じだから
動くものが作れるところまでいけてるなら別に絶望せんでいいと思うで 自分の経験から言うと使い続けて突然「こういうことか」って理解できるようになる >>40
誰かが作ったmoduleは必ずimportしているやろし、その時点でclassとかに纏められてるもんを使ってる。
まとめ方の定番の方法とかを見ていけば何故そうなってるか理解できるようになると思う。
理屈の理解と場数両方必要と思う 大学でオブジェクト指向教えるときに車クラスのようなクソクラス作らせんのがいけんのや
車クラスを継承してトラッククラス、タクシークラス作りましょうとかアホかと 数年後3000行のコード見てうわぁあああああってなって欲しい 分かりやすいのはドラクエみたいなコマンド戦闘じゃない?
キャラにhpとか攻撃力みたいなステータスをもたせてアクションさせるやつ オブジェクト指向入門
プログラミング未経験の底辺高卒でもわかりやすいようにオブジェクト指向について教えてください
ChatGPT
もちろんです!オブジェクト指向プログラミング(Object-Oriented Programming、OOP)は、プログラミングの基本的な概念の一つです。初めて学ぶ方にとっては少し難しいかもしれませんが、わかりやすく説明しますので、一緒に学んでいきましょう。
オブジェクト指向プログラミングでは、プログラムを「オブジェクト」という小さな部品に分割し、それらのオブジェクトが相互作用することでプログラム全体を構築します。オブジェクトは実世界の物や概念を表現するもので、それぞれがデータ(属性)と振る舞い(メソッド)を持ちます。
例を挙げて説明します。考えてみてください、自動車というオブジェクトを作りたいとします。自動車にはいくつかの属性(データ)があります。例えば、色や速度、メーカーなどです。また、自動車は振る舞い(メソッド)を持ちます。例えば、加速する、ブレーキをかける、ライトを点けるなどです。
この場合、自動車というオブジェクトはクラスと呼ばれる設計図に基づいて作られます。クラスはオブジェクトの属性と振る舞いを定義します。自動車クラスでは、色や速度などの属性と、加速する、ブレーキをかけるなどのメソッドが定義されます。
実際にプログラムを書いてみましょう。以下は、Pythonのコード例です。
pythonCopy code
class Car: def __init__(self, color, speed, manufacturer): self.color = color self.speed = speed self.manufacturer = manufacturer def accelerate(self): self.speed += 10 def brake(self): self.speed -= 10 def turn_on_lights(self): # ライトを点ける処理 # Carクラスからオブジェクトを作成して使用する例 my_car = Car("Red", 0, "Toyota") print(my_car.color) # 出力: Red my_car.accelerate() print(my_car.speed) # 出力: 10
上記の例では、Carクラスが定義されています。__init__という特別なメソッドは、オブジェクトが作成されるときに呼び出され、オブジェクトの初期化を行います。 それ以外のメソッドは、オブジェクトが持つ振る舞いを表現しています。accelerate()メソッドは自動車の速度を増加させ、brake()メソッドは速度を減少させます。また、turn_on_lights()メソッドはライトを点ける処理を行う想定です。最後の行では、Carクラスからmy_carというオブジェクトを作成し、属性やメソッドを使用しています。my_car.colorはオブジェクトの色を取得し、my_car.accelerate()はオブジェクトの速度を増加させます。このように、オブジェクト指向プログラミングでは、クラスという設計図を元にオブジェクトを作成し、それぞれのオブジェクトがデータと振る舞いを持つことでプログラムを構築します。このアプローチにより、プログラムの設計や保守が容易になり、再利用性や拡張性が高まるという利点があります。
オブジェクト指向プログラミングは多くの言語でサポートされており、PythonやJava、C++などで広く使用されています。初めて学ぶ方にとっては最初は少し難しいかもしれませんが、実際にコードを書きながら練習してみてください。徐々に概念が理解されるはずです。 こう言う上っ面の知識だけ得ようとして実際になんもできひん口だけのカスプログラマーがガチで害悪やわ
ベトナム人の方がよっぽど要領ええわ オブジェクト指向なんて一人でやってるなら分かる必要はないよ
複数でやってるなら分かるやつに合わせればいい
なんでも自分で分からないとダメって思うんじゃなく手動かせよ ほんとに初心者のときは、クラスを使うべき場面とかそもそものとこが分からんよね
その状態で車クラスとか言われても、ほーんくらいしか感想出んわな チャットgpt4にプログラム書いてっていうだけの簡単なお仕事やろが Javaさっぱりわからんかったからネットワーク行ったわ🥺 オブジェクト指向って青春みたいなものやで
たくさん実務積んである時あれがオブジェクト指向だったんだと気づくんや ■ このスレッドは過去ログ倉庫に格納されています