Carpe Diem

  Top > スポンサー広告> オブジェクト指向 > オブジェクト指向の勉強その1  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

オブジェクト指向の勉強その1

2012 - 01/09 [Mon] - 01:23

オブジェクト指向に関するサイトや本を読んでのメモ
今回はJavaのオブジェクト指向入門というサイトを見て.
図が非常に分かりやすく,「どうしてそうなのか?」と思っていた部分がストンと理解出来ました.

以下メモ

参照・・・インスタンスにつける名前みたいなもの.インスタンス単体では操作できない.参照型変数(箱)に入れて操作.

クラス・・・参照型変数とインスタンスの2つを作るもの.
sampleclass ref = new sampleclass();

参照型変数A = 参照型変数Bってしたら参照がコピーされる→一つのインスタンスに対して2つの名前(参照)から操作できる.

プログラム側でインスタンスを操作できなくなると、「ガベージコレクタ」というものがそのインスタンスを削除する.例えば複数インスタンスを作っても,参照を別のインスタンスに割り振ってしまうと,元のインスタンスは操作できなくなる.

逆にインスタンスを持たない参照型変数はある.nullを持ってる.

フィールド(クラスの中)には参照型変数も使える.再帰っぽい.インスタンスの中に更にインスタンスを作成

クラスには「thisフィールド」という、作らなくても最初から存在するフィールドがある
thisフィールドは自分のクラスの参照。インスタンスを作成したときに自動的にthisフィールドへ参照が結び付けられる。

sampleclass ref = new sampleclass();
としたとき、ref = this

使うのは①フィールドと普通の変数の名前が同じ時、フィールドを明示
②メソッドの戻り値として自インスタンスの参照を返す必要があるときに「return this」とかする

参照型変数はインスタンスor nullを入れないとerrorになるけど、フィールドは自動的に初期化されるから、数値を入れなくてもerrorは起きない。
→privateにアクセス出来なくてもerrorはでない

privateは自クラスのメソッドからなら使える。だからpublicなメソッドである
getter(値を受け取る),setter(インスタンスのフィールドへセット)を使用するのが普通。

なぜ使うのか?なくても構わなくない?
getter,setterにチェック関数を入れられる。
フィールドは単なる変数だから何でも代入されるけど、getter,setterでおかしい値を弾くことができる。

staticフィールドがあると、そのデータはインスタンスがなくても存在
=new しなくても代入できる。
=別インスタンスを使用しても固定

staticフィールドはそもそもインスタンス内に作られない。静的領域に作られる。
staticメソッドはstaticフィールドを使用する。インスタンス内のメソッドとフィールドの関係に近い。

staticメソッドは普通のフィールドは使えない。なぜなら静的領域からインスタンスへの結びつきができないから=どのインスタンスのフィールドを使用すればいいのかわからない。
逆のインスタンスから静的領域は可能。静的領域はひとつだから。だから普通のメソッドからstaticなフィールドへはアクセスできる。

静的領域はクラスごとに持っている。だからクラスごとに
public static void main()
を作っても干渉しない。

実行するときは、mainを持ってるクラス名を使って
java クラス名

とすればいい。*.java内に複数mainを持っていても、実行するときにクラス名を指定すればいいだけ。

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。