06オブジェクトの作成と使用

オブジェクトを作成します。

V      クラスオブジェクトを取得するには、2つの手順が必要です。

あなたはクラス型の変数を宣言する必要があります§、この変数は、オブジェクトが定義されていません。実際には、それは単純な変数は、オブジェクトを参照することができます。

実際の物理的なコピーのオブジェクトを作成する文を§、およびオブジェクトへの参照を変数に代入されて置きます。

Statementオブジェクト

Vの      声明「クラス名変数名;」文は達成するために

上記目的は、(すなわち、NULL)が空である場合、ここでの目的は、使用することができない;エラーのようなタイプの使用は、NullPointerExceptionが報告されます。

メモリを割り当て

キーワードでメモリの割り当て「を新+クラスのコンストラクタ();」ステートメントは、達成するために

V      メモリ割り当てをオブジェクトに処理エンティティ(変数)で割り当て、いくつかの変数が割り当てられ、どのメンバ変数によって決定されたクラスを作成している割り当てます。

V      自動的にオブジェクト変数(オブジェクトを作成する)に割り当てられたデフォルト値で初期化した後、クラスのメンバ変数は、初期化されず、偽のブールデフォルト、デフォルト整数0;フロートデフォルト0.0;デフォルトクラス型ヌルを、

オブジェクトを使用してください

V      オブジェクトのみが、自分の特性を持っていない、それはまた、クラスメソッドを作成しました。

V      「オペレータによるオブジェクト呼び出しの彼らの方法、そのプロパティにアクセスしてください」。

 

V      基準値の転送を渡します

パラメータの受け渡し

V      メソッドが呼び出され、パラメータ場合、パラメータ必要インスタンス化(初期化)、すなわち、特定のパラメータ値。

Vは、      クラスタイプが参照によって渡され、Java(登録商標)、基本パラメータのデータ型が渡されるときの値です。

クラス変数とインスタンス変数の違い

V      、各オブジェクトは、それ自身のエンティティ(変数)を有し、クラスオブジェクトの複数の(新しい+コンストラクタによって)作成することができるため、適切なクラスのオブジェクトの作成時間をロードするために必要な、オブジェクトはクラスによって作成されます。

Vの      違い:

§クラス変数は、クラスがメモリにロードされた時に割り当てられている、あなたがオブジェクトを作成するときに、インスタンス変数が割り当てられたメモリを、クラス変数リリースメモリプログラムの終了時に、オブジェクトがインスタンス変数は存在しない存在しません。

各オブジェクトに固有のインスタンス変数;§クラス変数は全てのこのような変数のクラス内のすべてのオブジェクトの同じクラスを共有するオブジェクトによって共有されている他のオブジェクトに影響を与えることなく、独自のインスタンス変数を操作します

§クラス変数は、一般的に、クラス名によって呼び出されます。

§クラスの静的変数を宣言します

方法の方法及びクラス区別例

V      クラスがロードされるときに、クラスエントリは、アドレス方式を割り当てられ、最初のオブジェクトが作成されるときの例エントリアドレスが割り当てられています

Vの      クラスメソッドは、一般的に、クラス名によって呼び出されます

 

V      この方法は使用できないクラスキーワード、現在のオブジェクトのこの代表的なため、クラスのロードメソッド時間があるときにクラス・オブジェクトが存在しません

ガベージコレクション(ガベージコレクション)

Vの      メモリ解放

       Javaは再割り当てメモリのアプローチに自動化されたプロセスを使用しています:ガベージコレクションを:オブジェクトへの参照がない場合、オブジェクトはもはや必要と考えられていない、それはメモリが解放されます占めています。

   

V      あなたは、ガベージコレクションを強制したい場合は、呼び出すことができます

              System.gc();

ファイナライズ()メソッド

Vは      主に、このようなファイルハンドルやウィンドウのフォント文字などの非Javaリソースを、解放するために使用されます

V      メソッドプロトタイプ:
保護された無効ファイナライズ(){
  //ここにファイナライズコードの壁紙
}

V      オブジェクトが解放されると、自動的にオブジェクトのファイナライズ()メソッドを呼び出します

静的ブロックの特長

V      静的ブロックの特長

クラスがロードされたときに実行される静的ブロック(Java文すべての静的ブロック)§。

一般的に一度だけ実行静的ブロックを§。

対象ブロック:実行時にクラスは、コンストラクタの前に実行、インスタンス化されます。

追加ポイント:

 

1:基準パラメータが渡されると、渡された値

       A:値が渡されます。基本的なデータ転送型は値によって渡されます

       B:リファレンス転送(転送アドレス):オブジェクト・データ・タイプは参照によって渡されます。

 

2:クラス変数とメンバ変数(インスタンス変数、オブジェクト変数)

 

       クラス変数を:クラス名を呼び出すことにより、クラス変数は、すべてのインスタンスで共有されます。

       finalstatic INT MAX = 20; // Javaの定義された定数

       オブジェクト変数:(新しいオブジェクトが出て来なければならない)を呼び出すことによってオブジェクト。

 

3:クラスメソッド(メソッドのインスタンス、オブジェクトメソッド)のメンバーと方法

      

       クラスメソッド:クラス名を呼び出すことによって、あなたはクラスメソッドで、このキーワードを使用することはできません。これは、現在の代表を表すので。

       メンバー・メソッド:オブジェクトを呼び出すことによって、(オブジェクトが出て新しいなければなりません)。

4:

  コンストラクタ

  破壊法(確定)

       オブジェクトが破棄されたときに破壊メソッドが呼び出されます。

       オブジェクトはそれを明確に参照でない場合は、ヒープ、Java仮想マシンオブジェクトは役に立たないとみなされたとき。

 

  オブジェクトのヒープ割り当てを回収するガベージコレクタ。ガベージコレクタは3回しか回復します

  メモリ。ガベージコレクタの仮想マシンが自動的に呼び出されます。(状況が呼び出すの下にヒープメモリが十分ではありません)

 

  しかしにSystem.gcでガベージコレクタを実行するように強制することができます()。

 

5:静的ターゲットブロックの静的ブロック

 

---> ---(一度だけ初期化)クラス>静的ブロック符号がロードされたクラスをロードmainメソッドを探し

 

負荷の--->静的メソッドと静的変数(一度だけ初期化)---->ターゲットブロックに基づく方法

 

--->コンストラクタ--->オブジェクトのメソッドを呼び出す--->オブジェクトの破壊方法は、オブジェクトを実行します。

 

====高速な静的

  Javaは、多くの場合、クラスを生成する前に初期化するために使用されているいくつかの静的なブロックは、関係なく、C ++の静的さらにジャワの、それは最初の良い初期化されています。

だから、注意を払います:

静的メソッドは、(変数とメソッドを含む)他の類似の静的メンバに直接呼び出すことができるが、直接非静的クラスのメンバにアクセスすることはできません。非静的メソッドと変数のために、あなたが使用する前に、クラスのインスタンスを作成する必要があり、静的メソッドは、使用前に任意のオブジェクトを作成しないためです。

静的メソッドの呼び出しは、このことにより、参照されるオブジェクトが生成しなかったときの静的メソッドを使用する前に、オブジェクトのインスタンスを作成していないので、Bの静的メソッドは、どのような方法で、このスーパーのキーワードを参照することができません

非静的ブロックに対して最初(コンストラクタの前に)、実行された静的ブロックと加えて、各クラス内に存在します

 

 

いずれの場合も、私たちは、このキーワードを使用する必要があります。

1.私たちは、メンバ変数、変数名とクラスメンバーの引数のコンストラクタの同じ形に渡されたパラメータ外コンストラクタの割り当てをしたい、あなたはローカル変数とクラス変数を区別するために、このキーワードを必要とします。

オブジェクトは、我々は、のような他のメソッドを呼び出すプログラムでは、コンストラクタを呼びたいが、我々はコンストラクタで他のオーバーロードされたコンストラクタを呼び出すことができますすることができないとき2.工法が自動的に呼び出され、名前は、コンストラクタではありませんフォームが、この(パラメータリスト)、前記パラメータリストによれば、構造の適切な方法を選択します。

 

==========

メソッドは、オブジェクト・クラスの方法で確定、任意のクラスは、そのオブジェクトがこのメソッドを継承します。システムはゴミを呼び出すための唯一の方法これは、

しかし、すべてのゴミは、各オブジェクトのメソッドが呼び出される最終決定ではないので、再利用されます。

 

================

コンストラクタとは異なりによって特徴付けられる三点法を有しています。

1.これは、クラス名と同じ名前を持ちます

2.それはあって値を返しません。

3.これは、return文で値を返しません。

それは値を返しませんが、ボイドはありません、それはもはやコンストラクタで、ボイドがある場合:注意すべきもう一つのポイントはこれです。

------------

--------------

クラスのコンストラクタは、それだけで皇帝を助けるために仕事だ、と同様に、皇帝によって送られた皇帝の使者のようなものですが、外の世界に彼が皇帝を表し、それが名前だとコンストラクタとクラス。しかし、帝国皇帝はわずか数を有することができます。

 


ます。https://my.oschina.net/u/2552902/blog/543823で再現

おすすめ

転載: blog.csdn.net/weixin_33994444/article/details/92326539