オブジェクトへのI.はじめに
1:多型のオブジェクトは交換可能
オブジェクト指向プログラミング言語の使用遅延バインディング概念を。
オブジェクトにメッセージを送信する場合、コードは実行時まで決定するために呼び出されます。知られる動的結合。
2:単一継承構造
すべてのクラスは、最終的に名前が究極の基底クラスで、単一の基本クラスから継承されていますObject
3:作成したオブジェクトの寿命
データは、スコープ内のオブジェクト、Javaの完全に動的メモリが(基本型のちょうど特別な場合)が割り当てられます
第二に、すべてが対象です
1:基本タイプ
基本的なタイプは「自動」変数への参照ではありません。この変数は、直接格納されている「値」、及びスタック内に配置されます
2:Java配列
配列が初期化されることを保証するJava。そして、その範囲の外にアクセスすることはできません
3:範囲(スコープ)
Javaはオブジェクトおよびプリミティブは同じライフサイクルを持っていません。新しいを使用してJavaオブジェクトを作成すると、それは範囲外生き残ることができます
{
String s = new String("a string"); } // End of scope
-
-
- 引用符で囲まれた
s
範囲の最後に姿を消しました。しかし、s
文字列のポイントは、まだメモリ空間を占有し続けオブジェクト
- 引用符で囲まれた
-
importキーワード
クラスライブラリのパッケージをインポートするようにコンパイラに指示、Javaのすべてのコードは、クラスで記述する必要があります。特定のクラスが java.lang
され、自動的にインポートされたすべてのJavaファイルに。
5:staticキーワード
- ただ、割り当てられた特定のドメインのための単一のストレージスペースを、でも任意のオブジェクトを作成することはありません、あなたがオブジェクトを作成したいどのくらいのスペースを検討することではありません。
- この方法は、一緒にその関連オブジェクトクラスのいずれかが含まれていないことを願っています。場合でも、他の言葉では、オブジェクトが作成されていない、あなたは、このメソッドを呼び出すことができます。
static
フィールドに適用された場合、それはデータが作成される方法が変更されますstatic
この方法の重要な用途は、前提はあなたがそれを呼び出すことができる任意のオブジェクトを作成していないということです。static
方法はないthis
非静的メソッドを直接呼び出すことはできないが、あなたが渡すことができ、メソッドオブジェクト参照(これは参照により静的方法、及びその後this
の非静的メソッドとアクセス非静的データメンバを呼び出すことと同じ効果)。。
第三に、関係演算子
1 ==
と !=
比較すると、オブジェクトへの参照であります
2:特別なメソッドequals()
のデフォルトの動作は比較的リファレンスです
第四には、実行の流れを制御します
1:他にあれば
2:スイッチ
JDK1.7スタートは、スイッチは、選択因子として文字列をサポートするようになりました。switch文では、文字列の比較が使用されていますString.equals()
。
したがって、通過するスイッチことに留意すべき文字列変数がヌルであることができない場合句列スイッチにnullに使用することができないが、
V.の初期化とクリーンアップ
1:メソッドのオーバーロード
オーバーロードされたメソッド、同じメソッド名、異なる仮パラメータ・リスト(既知のパラメータリストパラメータ署名シーケンシャルタイプのパラメータを含む、パラメータのパラメータの数は、限り異なるパラメータリストがあるように、異なる呼ばれます)
2:過負荷の制約
- 宣言された最後のメソッドをオーバーライドすることはできません
- 静的メソッドがオーバーロードすることはできませんが、再び宣言することができるように宣言。
- 過負荷戻り値の型は、同一または異なるが、リターンオーバーロードされたメソッドの異なる種類になるだけで十分かもしれません。
クラスアニマル{
公共の静的な無効徒歩(){System.out.printlnは( "動物行走方法"); }
}
publicクラス馬が延びる動物{
公共ボイド徒歩(文字列S){
するSystem.out.println( "馬四条腿行走")。
}
パブリック静的無効メイン(文字列[] args){
新馬()徒歩( "")。
}
}
動物{クラス
のパブリック静的ボイドウォーク(){System.out.printlnは( "動物ウォーキング法");}
}
publicクラス馬延び動物{
公共静的ボイドウォーク(){ //再定義
するSystem.out.println(「馬)」歩いて4足;
}
公共の静的な無効メイン(文字列[] args){
新しい新馬()徒歩();.
}
}
3:メンバーの初期化
変数があります使用する前に、適切な初期化を受けているが。
Javaのクラスのメンバ変数を自動的に初期化されますが、メソッド内のローカル変数は自動的に初期化されることはありません
自動初期化が行われ、コンストラクタが呼び出される前に、それが起こるのだろう
4:オブジェクトの作成
初期化>エグゼクティブメンバ変数 - - > initメソッド、コンストラクタが実行されたクラスローダをチェック - >メモリを割り当てる - >初期ゼロ値 - >設定オブジェクトヘッダ
5:アレイの初期化
初期化:
int[] a = new int[3];
各要素を初期化することである0
ため、boolean
初期値false
。int[] a = {1, 2, 3};
それぞれの要素を初期化します1, 2, 3
。