読者です 読者をやめる 読者になる 読者になる

クラス、インスタンス、インターフェイスとかんんとか自分なりにまとめる

アドバイスを頂いた

日付: 11/06/23 時刻: 14:16 送信者: xxxxxxxxxx
> @atasatamatara
> - インターフェース
> - クラス
> - インスタンス
> - クラスメソッド
> - インスタンスメソッド
> - クラス変数
> - インスタンス変数
>
> この辺を理解して実際に書いてプログラム実行してみるといいね。

ということで自分なりに頭で理解した程度のなにかをメモっとく。ツッコミ歓迎

クラス

オブジェクト指向におけるモノ。いやそれオブジェクトなんだけど、型っていうかそれ。あんまりちゃんとわかってないな……。パッケージはパッケージだし……。パッケージのなかにclassをつくって、そういうカプセルの中でいろいろメソッド生やしたりインスタンス生成したりする。

インターフェイス

そのままではインスタンス化できない、共通の振る舞いをまとめたもの。Javaではextendsもあるけど、Abstractなもののそれとは別にあるらしい。そこらへんの理解はまだまだわかてっない。ただ、implementsするとき複数扱えるのがインターフェイスは便利らしい。

インスタンス

実体。実体化にはコンストラクタを必要とする。逆に言えばコンストラクタとはインスタンスを生成するための初期化手続き。

クラスメソッド、インスタンスメソッド

それぞれメソッドをもつけど、クラスは抽象的なことにつかい、インスタンスメソッドは実体化されたインスタンスにまつわるメソッド。っていうととそのままだな。実際にはクラスメソッドはインスタンス化が必要ないだけ、抽象的なことを扱ったりする。具体的にはMathのようなインスタンス生成しないでそのまま使うと便利らしい。Javaとしてはstaticがつく。

クラス変数、インスタンス変数

どちらもそのまんまの意味で、クラス変数はクラスに紐付き、インスタンス変数はインスタンスの変数だ。というと理解になってない。インスタンス変数は実体化されたそのまんまの意味での変数なのはわかるが、クラス変数は抽象化されたこれもインスタンスを生成しなくていいものをひもづけるための変数、なのかな?ちょっとここらへんは自信ない。これもJavaとしてはクラス変数の場合staticがつく。

厳密な話

わからない。会社の人が厳密な話をしていたりしたけど、おれはちょっとついていけなかった。

実装すること

main型が見つからないとかいってできねぇぞクソボケがっ!!!!できねーーーーー!おれ無能ーーーーーー!!
こうやってどうにか理屈では頭ではそれなりにわかってきたんだけど、概念は捉えてきたんだけど、実際にコードがかけない。実装ができない。ヒドイ話だ。概念だけわかってても意味がなさすぎる。

結論

おれは死ぬべき

追記

@yyyyyyyyyy
クラスメソッドとインスタンスメソッドは別にわけたほうがいいかも
多分混乱する
Javaソースコードをみて、これがクラス、これがインターフェイスとかやったほうがいいと思う

なるほど