Javaクラスとオブジェクト

4679 ワード

オブジェクト:オブジェクトはクラスのインスタンスで、ステータスと動作があります.
≪クラス|Class|emdw≫:オブジェクトの動作とステータスを記述するテンプレートです.
クラスの作成
class   {
//  
//  
}

オブジェクトの作成
オブジェクトを作成するには、次の3つの手順に従います.
宣言:オブジェクト名とオブジェクトタイプを含むオブジェクトを宣言します.
インスタンス化:キーワードnewを使用してオブジェクトを作成する
初期化:newを使用してオブジェクトを作成すると、構築方法を呼び出してオブジェクトを初期化します.
      =new   ();
//           
   .   
//
   .   

定数と変数
定数はキーワードfinalで定義されており、プログラム実行中は変更できません
final int a=3;

変数#ヘンスウ#
int b=3;

変数のタイプ
ローカル変数:メソッドで定義された変数、変数宣言と初期化はメソッドで、メソッドが終了すると変数が自動的に破棄されます.
≪メンバー変数/グローバル変数|Member Variables/Global Variables|oraolap≫:クラス内のメソッドボディ以外の変数を定義します.オブジェクトを作成するときにインスタンス化します.
クラス変数:staticキーワードで修飾された特殊なメンバー変数.
構築方法
各クラスには構造方法があります.Javaコンパイラは、クラスの構築方法を表示せずに定義すると、クラスにデフォルトの構築方法を提供します.
構築メソッドの名前はクラスと同名で、返されずvoidも使用する必要はありません.
コンストラクションメソッドにもマルチステート特性があり、コンストラクションメソッドはオブジェクトの初期化に伴って呼び出されます.
戻るかどうか
メソッドを定義する場合、キーワードvoidを使用してメソッドに戻り値がないことを定義します.
戻り値がある場合は、メソッドを定義するときに返されるデータ型を決定し、メソッドボディ内でreturnを使用して対応するデータ型の値を返す必要があります.
パラメータの有無
メソッドを定義するときに、渡されるパラメータのリストを決定できます.
インスタンスオブジェクトがパラメータ付きメソッドを呼び出す場合は、メソッドで定義されたパラメータリストに従って値呼び出しを行う必要があります.
アクセス制御修飾子
アクセス制御修飾子は、クラス、変数、メソッド、および構築メソッドへのアクセスを制御します.
default:デフォルトで、同じパッケージで使用できます.使用オブジェクトしようおぶじぇくと:クラス、インタフェース、変数、メソッドクラス、インタフェース、へんすう、メソッド
private:プライベートで、同じクラスで使用できます.≪オブジェクトの使用|Use Objects|emdw≫:変数、メソッド.クラスを修飾できません
public:共通で、すべてのクラスで使用できます.使用オブジェクトしようおぶじぇくと:クラス、インタフェース、変数、メソッドクラス、インタフェース、へんすう、メソッド
protected:保護され、同じパッケージ内のクラスとすべてのサブクラスで使用できます.≪オブジェクトの使用|Use Objects|emdw≫:変数、メソッド.クラスを修飾できません
非アクセス制御修飾子
static
静的変数:クラスがインスタンス化されたオブジェクトの数にかかわらず、静的変数はコピーが1つしかありません.
静的メソッド:クラスの非静的変数は静的メソッドでは使用できません.
静的変数と静的メソッドは、オブジェクトとは独立しています.
静的変数と静的メソッドを呼び出すには、クラス名を使用して直接呼び出すことができます.
final
final変数:定数で、指定した初期値を表示する必要があります.
finalメソッド:親のfinalメソッドは布団クラスで継承できますが、布団クラスで書き換えることはできません.
finalクラス:継承できません.
abstract
抽象クラス:
抽象クラスはオブジェクトをインスタンス化するために使用できません.抽象クラスを宣言する唯一の目的は、将来クラスを拡張することです.
1つのクラスをabstractとfinalで同時に修飾することはできません.クラスに抽象メソッドが含まれている場合は、クラスを抽象クラスとして宣言する必要があります.そうしないと、コンパイルエラーが発生します.
抽象クラスには、抽象メソッドと非抽象メソッドが含まれます.
抽象メソッド:
抽象メソッドは、サブクラスによって提供される実装のないメソッドです.
抽象メソッドはfinalとstatic修飾として宣言できません.
抽象クラスを継承する子クラスは、子クラスが抽象クラスでない限り、親クラスのすべての抽象メソッドを実装する必要があります.
クラスにいくつかの抽象メソッドが含まれている場合は、クラスを抽象クラスとして宣言する必要があります.抽象クラスには抽象メソッドを含まなくてもよい.
抽象メソッドの宣言はセミコロンで終わります.
synchronized
synchronizedキーワード宣言のメソッドは、同じ時間に1つのスレッドしかアクセスできません.
transient
シーケンス化されたオブジェクトにtransientによって修飾されたインスタンス変数が含まれている場合、Java仮想マシンJVMはその特定の変数をスキップします.
この修飾子は、クラスと変数のデータ型を前処理するために変数を定義する文に含まれます.
volatile
volatile修飾メンバー変数は、スレッドにアクセスされるたびに、共有メモリからメンバー変数の値を強制的に再読み込みします.
また、メンバー変数が変更されると、スレッドは変更値を共有メモリに戻すように強制します.これにより、2つの異なるスレッドは、常にメンバー変数の同じ値を表示します.
volatileオブジェクト参照はnullである可能性があります.
継承
キーワードextendsの使用
子クラスは親クラスのprivate以外の属性と方法を持つ
サブクラスは独自のプロパティとメソッドを持つことができます.
子クラスが独自の方法で親を実現できる方法
シングル継承、マルチ継承
クラス間の結合性が向上しました.
superとthis
super:現在のオブジェクトの親を参照するための親メンバーへのアクセスを実現します.
super.  
super.  
super()//    

 
this:自分への参照
インタフェース
interface定義
インタフェースは継承され、実現されます.
インプリメンテーション
キーワードimplementsを使用すると、複数のインタフェースを同時に継承でき、インタフェースとインタフェースの間をカンマで区切ることができます.
書き換える
子クラスは親クラスのアクセスを許可するメソッドの実装プロセスを再記述し、戻り値とパラメータは変更できません.
じゅうか
1つのクラスでは、メソッドの名前は同じですが、パラメータは異なり、戻りタイプは同じでも異なるでも構いません.
マルチステート
マルチステートは、同じ動作が複数の異なる表現形式または形態を有する能力である.
マルチステートの存在に必要な3つの条件:継承、書き換え、親参照が子オブジェクトを指す
マルチステート呼び出しメソッドを使用する場合は、まず親クラスにメソッドがあるかどうかを確認し、ない場合はコンパイルエラーです.ある場合は、サブクラスの同名メソッドを呼び出します.
パッヶージ
クラス属性をプライベートに設定し、クラス内のメソッドによって属性の設定と読み取りを行います.