A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
クラス
ある物事に注目した状態(フィールド。プロパティとも。)や振る舞い(メソッド)を持ってるひな形。
メソッド
振る舞い。
インスタンス
クラスの動作を実際に利用できるようにした実体。
1つのクラスは、その物事に対する状態と振る舞いを持つため、その物事に対する責任を有することになります。
(何かバグがあった時に、そのクラスに原因があるということ)
他回答で犬が例に挙がっていますので、それに準ずるなら
犬は、状態として、犬種がある。
犬は、状態として、名前がある。
犬は、状態として、歳がある。
犬は、状態として、体力がある。
犬は、振る舞いとして、歩く/走るがある。
犬は、振る舞いとして、吠えるがある。
犬は、振る舞いとして、食事を摂るがある。
このように考えたら、
状態(プロパティ)として、予め設定するもの、振る舞いによって変化するものなどがあります。
振る舞い(メソッド)として、動作を行うものがあります。
クラス名をdogとしたら、
dog pochi = new dog();
dog hachi = new dog();
この時のpochi、hachiがインスタンスになります。
下記のように、必要な初期状態などが設定され、振る舞いを行ったりします。
(実際はこんなに単純ではありません)
pochi.DogBreed = "雑種";
pochi.Name = "ポチ";
pochi.Age = 2;
pochi.PhysicalFitness = 100;
pochi.Run() // 走れ、走ると体力が減る
pochi.Bark() // 吠えろ、吠えると体力が減る
pochi.Eat() // 食べろ、食べると体力が増える
hachi.DogBreed = "チワワ";
hachi.Name = "ハチ";
hachi.Age = 3;
hachi.PhysicalFitness = 80;
hachi.Run() // 走れ、走ると体力が減る
hachi.Bark() // 吠えろ、吠えると体力が減る
hachi.Eat() // 食べろ、食べると体力が増える
例えば特定の形式(項目の数や型)のCSVを出力をしたいと考えた時、
(A)CSVファイルの出力に責任を持つクラス、
(B)出力する形式に責任を持つクラス
などと分解されます。
(A)は
状態として
・1行目に項目名を出力するかどうか。
・区切り文字は何か。(CSVはカンマとは限らない)
・文字値をダブルクォーテーションで囲むかどうか。
・数値をダブルクォーテーションで囲むかどうか。
・文字内に区切り文字があった場合に、除去するのか、他の文字に置換するのか。
・文字内に改行文字があった場合に、除去してすべて出力するのか、改行文字までを出力するのか。
・出力するデータはなにか。
振る舞いとして
・指定したファイルパスに状態に応じた形で出力する。
などがあります。
(B)は1行分のデータを定義するとし、3項目あるとしたら
状態として
・1項目目の項目名と値。
・2項目目の項目名と値。
・3項目目の項目名と値。
振る舞いとして
・項目名を配列として取得する。
・項目値を配列として取得する。
などがあります。
これらはクラス設計においての考え次第ですが、こんな感じ、ということです。
No.6
- 回答日時:
私はこの本で理解しました。
通称OOSC。途方もなく有名なOOP/OODの解説書。
結構難しい本ですが
とても読む価値が有ります。
2版も有りますが、取りあえず安く手に入る1版で充分。
https://www.amazon.co.jp/%E3%82%AA%E3%83%96%E3%8 …
No.4
- 回答日時:
一般にクラスはアプリケーションですね
インスタンスはクラスにアクセスするために一度変数などに保持しておくもの
メソッドは関数です
webにおけるhtmlやcssのクラスは意味合いがちょっと違うの注意
No.2
- 回答日時:
オブジェクト指向言語を勉強されているのですかね?
その場合、概念も大切ですが実際にどのように使うのかシンタックスもあわせて勉強しましょう。そこでの説明にもクラス、インスタンス、メソッドという言葉が出て来て実際どのようなものなのかがわかります。
で。
誤解を恐れず言うならクラスは実現したい機能のひな型。インスタンスはそこから生成された実際に動作させる実態。メソッドはクラスの機能の呼び出し口。
そんな感じで。
例えば人は(標準実装としては)「腕」というクラスのインスタンスを2つ保持している。腕には「物を掴む」とか「腕を上げる」とか「肘を曲げる」といった多くの機能があり、各機能を実行するメソッドは脳が呼び出す・・・ってな感じで。
参考まで。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- 日本語 添削をお願いします 授業が終わってからの少しのまとめ 中古語のテンスの場合 [き•けり]は過去助動詞 3 2022/05/24 17:48
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/05/21 02:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Pythonで仮想通貨の自動売買が...
-
ウェブサイトのアクセスログに...
-
vba クリップボードクリアにつ...
-
Google ColaboでGUI作成
-
Googleタグマネージャで、既存H...
-
htaccessで特定のディレクトリ...
-
AIの登場でプログラマーたちが...
-
JRのjsonファイルって使って大...
-
UDP通信を使うチャットプログラ...
-
Version Control on Unity
-
Webサイト内に埋め込んだmp4動...
-
P2P地震速報のEEW APIの仕様書...
-
Arduinoに関する質問
-
python コードについて(初学者...
-
パイソン。スクレイピング。Chr...
-
Trix のツールバー(?)を上では...
-
PythonのTkinter詳しい方へ。画...
-
{ CONTROL Forms.Label.1}が...
-
プログラミングサイトについて。
-
VBAでパワーシェルを実行したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数の引数に複数のユーザ定義...
-
インスタンス変数とクラス変数...
-
インスタンスとオブジェクト
-
書籍 メタプログラミングRuby...
-
子クラスのインスタンスから親...
-
クラスメソッドのインスタンス...
-
ImageButtonのマウスオーバーが...
-
ストリームへの保存処理
-
::ってなに?
-
Pythonについてです。 何回見直...
-
Ruby 特異メソッドのnewが先に...
-
お互いをメンバに持つようなク...
-
get() と find() の違いについて
-
「arg」は何の略?
-
エクセルVBA オートフィルタで...
-
教えてください。vb5.0
-
テンプレートの特殊化でコンパ...
-
What class are you in? には何...
-
変数の隠蔽とは?
-
エラー「メソッドまたはデータ...
おすすめ情報