Javaの基本 - 05オブジェクト指向

1.finalキーワード

 クラスの完全な説明の後、あなたはサブクラスでオーバーライドしたくない、継承されるように、またはいくつかのクラスメソッド機能の一部が固定されている必要はありません。

 

 キーワード決勝決勝は不変、最終のためのもの。最終的には、クラス、クラスのメンバー、およびローカル変数を変更するために使用できる修飾子です。コンストラクタを変更することはできません。

 最終的な特徴:

 最終修正クラスは継承できませんが、他のクラスから継承することができます。

   最終修正方法はできませんサブクラスを書き換えではなく、親クラス、最終的な修正方法は、サブクラスのオーバーライドポストを追加することができ、最終的な。

    最終的に修正される変数は定数と呼ばれ、これらの変数は一度だけ割り当てることができます。そして、生涯

 変数は参照型オブジェクトのアドレス値であり、アドレス値を変更することはできませんが、オブジェクトのプロパティ値のアドレスを修正することができます。

  メンバ変数を変更し、あなたは、譲渡の前でそれ以外の場合はエラーがオブジェクトを作成する必要があります。(明示的な割り当てが存在しない場合、割当値は、複数のコンストラクタを必要とします。)

 

  

2.staticキーワード 

  静的それは一般的に、クラスのメンバーを変更するために使用、静的な修飾子です。

 

 静的な主要機能:

 1)した変性静的メンバ変数は、クラス、オブジェクトのクラスの一部ではないに属しています。つまり、アクセス、または複数のオブジェクトを変更するには、静的メンバ変数を変更したときに、目的の1つは、値が変更された静的メンバ変数、それと値の変化の他のオブジェクトの静的メンバ変数になり、複数のオブジェクトが静的同じ共有しますメンバ変数

  コードは示しています。

クラス  デモ{

 

公共の 静的な int型 NUM  = 100;

 

}

 

 

 

クラス  テスト{

 

パブリック 静的 ボイド  メイン(文字列[]引数){

 

デモD1 = 新しい  デモ();

 

デモD2 = 新しい  デモ()。

 

D1。 = 200。

 

。システムOUT .println(D1。NUMは); // 結果200を

 

。システムOUT .println(D2。NUMは); // 結果200を

 

}

 

}

 

2)する静的メンバを修正し、提案し、そのクラス名による直接アクセス

形式の静的メンバにアクセスします。

クラス名静的メンバ変数名

クラス名静的メンバーメソッド名パラメータ

オブジェクト名静的メンバ変数名      ------ このモードを使用することはお勧めしません、警告が表示されます

オブジェクト名静的メンバメソッド名パラメータ ------ このモードを使用することはお勧めしません、警告が表示されます

コードは示しています。

クラス  デモ{

// 静的メンバ変数

公共の 静的な int型 NUM  = 100;

// 静的メソッド

パブリック 静的 ボイド  方法(){

。システムOUT .println( " 静的メソッド")。

}

}

クラス  テスト{

パブリック 静的 ボイド  メイン(文字列[]引数){

システム。アウト .println(デモ。NUM);

デモ。方法()。

}

}

 

静的な注意事項

1)静的コンテンツは、オブジェクトが存在するために優先されるだけの静的アクセスすることができ、あなたが使用することはできません。この/スーパーを静的領域に格納された静的修正されたコンテンツ。

2)同じクラスには、静的メンバーは静的メンバーのみにアクセスすることができ、コードを示します。

クラス  デモ{

 

// メンバ変数

 

公共 int型の  A = 100;

 

// 静的メンバ変数

 

公共の 静的な int型の   = 200;

 

// 静的メソッド

 

パブリック 静的 ボイド  方法(){

 

//System.out.println(NUM); staticメソッドは、あなただけの静的メンバ変数や静的メンバメソッドにアクセスすることができます

 

システム。アウト .println(カウント)。

 

}

 

}

 

 

3)メインメソッドは静的メソッド手順のみ、任意のクラスに定義することができる任意のオブジェクトにも属していない入口、のために実行されます。

 

4) 多型メソッド呼び出しを、コンパイラが参照 =左、正常にコンパイル親クラスは、そこにある、父は、コンパイルに失敗しませんでした

 

実行して、静的メソッド、親クラスの静的メソッドを実行し、

 

オーバーライドメソッドの実行、非静的メソッド、実行サブクラス

 

メンバー変数は、すべての親クラスをコンパイルして実行します

 

 

 

静的定数を定義します。

  開発は、私たちはしばしば、クラスで使用される静的定数、定義したいのpublic static final 定義を完了するために、変数の変更をこの場合、変数名はすべて大文字で、複数の単語はアンダースコアを使用します。

定義フォーマット:

 

パブリック静的最終的なデータの型 変数  =

コードは示しています。

クラス  学校{

公共の 静的な 最終  文字列SCHOOL _NAME  =「北京大学」。

パブリック 静的 ボイド  方法(){

。システムOUT .println(「静的メソッド)。

}

}

 

あなたはクラスの静的メンバを使用したいときには、オブジェクトを作成するに直接アクセスするためのクラス名を使用する必要はありません。

システム。アウト .println(スクール。SCHOOL _NAME)。

。学校の方法は、(); // 静的メソッドを呼び出します

 

 

注意:

 

各メンバ変数インターフェイスはデフォルト使用のpublic static final 修飾を。

 

インタフェースはコンストラクタを有していないので、インタフェースのすべてのメンバ変数は、静的定数を有し、割り当てを表示する必要があります。あなたは直接のインターフェイス名にアクセスすることができます。

 

インターフェースインター{

 

public static final int型の  COUNT  = 100;

 

}

 

アクセスインターフェイスの静的変数

 

Inter.COUNT

 

 

3.匿名オブジェクト

  匿名オブジェクトは、オブジェクトのステートメントを作成するには、オブジェクトが作成されることを意味はなく、オブジェクトの値を変数に割り当てられている対応していませんでした。

例えば:

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

 

人物P =新しい人();

 

 

 

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

 

新しい人();

 

これは、匿名オブジェクトが特徴

 

1) 直接ではない変数名を匿名オブジェクトを作成します。

新しい人()。食べる()を食べる// メソッドは、ノー名でのPerson オブジェクトが呼び出されます。

 

その参照変数は、一度だけ使用することができる場合2)匿名オブジェクトを指定していません。

 

新しい人())(食べ; 。 匿名のオブジェクトを作成し、呼び出して食べる方法を

 

新しい人())(食べ; 。 再び呼び出すしたいと思い食べ匿名オブジェクトを再作成する方法を

 

メソッドの戻りで使用するための方法のパラメータ値として3)受信した匿名オブジェクト

 

クラス  デモ{

 

パブリック 静的  人getPerson(){

 

// 通常の方法

 

//人物P =新しい人();

 

//リターンのp;

 

 

 

// メソッドとして匿名オブジェクトは値を返します。

 

返す 新しい  人を();

 

}

 

 

 

パブリック 静的 ボイド  方法(人物P){}

 

}

 

 

 

クラス  テスト{

 

パブリック 静的 ボイド  メイン(文字列[]引数){

 

// 呼び出すgetPersonの取得する方法を人物オブジェクトを

 

一人の人=デモ。getPerson();

 

 

 

// 呼び出すメソッドの方法を

 

デモ。方法(人)。

 

// 受信メソッドのパラメータとして匿名オブジェクト

 

デモ。方法新しい  人());

 

}

 

}

 

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/sunlangui/p/11479171.html