A、クラスとオブジェクト
(1)クラス
[修飾] クラスのクラス名{ // 修飾子1:プライベート、パブリック、保護スリーワン最も頻繁 @ 修飾子2:抽象最後の二つの最も頻繁な1 // 上記修飾静的クラスと組み合わせて使用することができます }
-各単語の最初の文字は、残りの小文字を大文字に
-最適なキーワードは、キーワードを含めることができますされていません
クラスのコンストラクタに関連付けられています
[修飾]コンストラクタ名(パラメータリスト) { // 修飾子:プライベートパブリック保護 // コンストラクタ名:同じクラスの名前 // パラメータリスト:同じパラメータリストの形式および方法を定義 }
- 戻り値のコンストラクタません
(2)オブジェクト
a)のオブジェクトを作成します。
オブジェクトクラス名名名= newコンストラクタ();
b)は、オブジェクトの呼び出し
コンテンツオブジェクトのクラス(静的改変されていない)を呼び出し
;.)==> per.say(;メソッド名、オブジェクト名()呼び出しメソッドを
2呼属性:オブジェクト名は、属性名、利用可能な割当を。例:per.name =「テスト」;
3このキーワード:これは、オブジェクト・クラス、このメソッド名()を表し、このプロパティ名を;.
C)メモリ機構のオブジェクト
P- =人物新しい新規 人物();オブジェクトを作成した後、オブジェクトが割り当てられたメモリに格納されている2つのメモリがあります。一つのスタックメモリである:変数pを格納する、Pだけオブジェクトの変数名を格納し、ヒープメモリに格納され、他方はヒープメモリである:ストレージ・エンティティ・オブジェクト、すべてのプロパティおよびメソッドがスタックメモリです。
対応するエンティティオブジェクトへの可変点スタックメモリヒープは、pは基準変数と等価です。
(3)静的スタティック
1.静的静的、メソッド、プロパティ、修正することができる
静的は変更されず、オブジェクトはそのクラスに属し、一般的に使用される;次いで、メンバーがそのようなスケジューリングを用いるように、クラス自体に属し、2ときに変更静的メンバオブジェクトの呼び出し(も使用可能なクラスの呼び出し)。
3.要約:クラスの名前を持つ静的なコール
を呼び出すことによって非静的オブジェクト(クラス名も呼び出すことができます)
第二に、この方法
修飾されたキーワード[戻り値の型]メソッド名([パラメータタイプパラメータ名]){ // 概要 [ 戻り戻り値] }
注意:
-方法は、独立して、この方法は、唯一のクラスに定義することができ、定義することができない。この方法は、独立して行うか、またはオブジェクトを介して実行クラスを呼び出す必要することはできない。同じクラス、同じ方法は、2つまたはそれ以上のことはできません。
-メソッドのオーバーロード:同じメソッド名、異なるパラメータ。
第三に、メンバ変数とローカル変数
(1)メンバ変数
a)は変数の例:いいえ、静的な変更は、
b)のクラス変数:静的の形であり、
(2)ローカル変数
a)は、ローカル変数の方法(メソッドで定義されるように)失敗に、有効にする変数の定義からは、方法を終了します。
B)ローカル変数のコードブロックのブロックで定義されているが():変数の定義から、ブロック故障の終わりに効果。
C) パラメータ(変数定義されたメソッドのシグネチャ):署名方式、定義された変数、プロセス全体における有効範囲パラメータを定義する場合。
注:
ローカル変数とメンバ変数は、メンバ変数の値をローカル変数の適用範囲と同じ名前にすることができます。あなたはこの方法ではカバーされメンバ変数を参照する必要がある場合、発信者として、あるいは(クラス変数のための)クラス名(インスタンス変数のための)これの使用は、メンバ変数へのアクセスを制限します。
第四に、オブジェクト指向機能
(1)継承 延び
サブクラスは親クラスを継承し、サブクラスは親クラスのメンバーの非プライベートメソッドとプロパティを持っています
また、表紙法として知らA)メソッドのオーバーライド(上書き)
メソッドのオーバーライドは、「従う大型2の小さな二つ。」 1「を2つと」:メソッド、同じパラメータリスト 2「小さな2」:親クラス以下同じよりも戻り値の型サブクラス、スロー範囲の例外クラスは親クラスよりも小さくなっています。 3 「ビッグ」:より多くの親クラスのメソッドまたは同等へのアクセスよりもサブクラスのメソッドにアクセスします。 注: オブジェクトのサブクラスの後にカバーする親クラスのサブクラスは、サブクラスのメソッドのサブクラスでオーバーライド親クラスのメソッドにアクセスすることができない親クラスを呼び出すことができます上書きされます。
B)スーパー定義されました
スーパー();親クラスのコンストラクタは、サブクラスのコンストラクタでのみを使用することができます呼び出します。 スーパー。属性、親クラスのプロパティを呼び出します。 スーパー。メソッド();親クラスのメソッドを呼び出します。
C)スーパーの注意
1 親クラスのコンストラクタを呼び出すためにsuper()を通過していないサブクラスのコンストラクタでは、暗黙のデフォルトの親クラスが引数なしでコンストラクタを呼び出します。
通常、親クラスのプロパティまたはメソッドを複数回呼び出すことができる唯一のコール親クラスのコンストラクタ2サブクラスコンストラクタ。
(2)包装
アクセス指定子
プライベート(現在のアクセスクラス)デフォルト(パッケージアクセス)保護された(サブクラスアクセス)公共(パブリックアクセス)
(3)多形性
1 。異なる動作特性の様々なメソッドを呼び出す提示変数の同じタイプは、多型です。 2 。これは唯一の方法の参照変数コンパイル時の型と呼ぶことができ、それは、メソッドの実行時の型と呼ばれることができません。 そして、理解し、そう覚えておく3.難しいです。F =父新しい新しい息子();親クラスの父に割り当てられた息子例のサブクラス変数、F変数の内容は、親クラスの父を呼び出すことができます
instanceofの演算子: オブジェクト名のinstanceof クラス、オブジェクトは、クラス(サブクラス実装クラス)のインスタンスであるかどうかを決定する前に。そうでない場合はfalse、trueを返します。
V.インターフェースと抽象クラス
(1)インタフェース
インターフェースと呼ばれるインターフェースキーワードクラスを、使用して変更。 Bインタフェース: 1 。すべてのメソッドは抽象(抽象を省略することができます)です。 使用2.メンバ変数は静的定数である(最終および静的は省略されてもよいです)。 Cインタフェースは、インタフェースを継承することができ、クラスは、多重継承を可能に継承することができません。マルチクラスは、複数のインターフェイスを実装することができます。
(2)抽象クラス
定義:抽象クラスと抽象メソッドは抽象を使用するように変更する必要があります。メソッドなければならない抽象クラスは抽象クラスである、抽象クラスは抽象メソッドではありません。
抽象クラスはインスタンス化することはできません。
恣意性を避けるために設計されたサブクラス、サブクラスのためのテンプレートとして抽象クラス。
類似点と相違点(3)インターフェースと抽象クラス
1 。彼らは、インスタンス化、およびサブクラスに実装の継承されていません。 2 。抽象クラスは、抽象メソッドと従来の方法、通常の静的メンバ変数と定数を含んでいてもよい、インタフェースは、抽象と静的定数を定義することができます。 3 インターフェイスが設定されていない、抽象クラスのコンストラクタを持っていますが、インスタンス化されていない、サブクラスは、初期化動作が完了したコール。 4 インタフェースは、コードの最初のブロックを含めることができない。抽象クラスは、元のコードブロックを含んでいてもよいです。 5.クラスは、最も抽象クラスを含む直接の親を持っている;しかし、クラスが複数のインターフェイスを実装することができます。
六、包装
説明:基本データ型は、「オブジェクト」の特性を持っていない、何のメンバ変数、メソッドが呼び出されないことができます。データ処理を包装する方法は、データが良好な動作を容易にするために、存在します。オートローダ/ボックス化解除することによって、ベースおよびパッケージ・オブジェクトのタイプとの間の移行を容易にします。
类型:バイトのIntショートロングキャラクターフロートダブルBooleanストリング
パッケージの関連する方法:
(1)xxxValue():Numberオブジェクトは、データ型の値を返すのXXXに変換します。括弧はパラメータではありません
O対応するByteValue()は、バイトとして指定された数を返します。 ()内のdoubleValueは、doubleとして指定された数を返します。 Oに従ってFloatValueは(); floatとして指定された数を返します。 intValueは(); intとして指定された数を返します。 ()内のlongValueは、長いとして指定された数を返します。 対応するShortValueは(); shortとして指定された数を返します。 例:整数、Xは = 5 ; x.doubleValue(); //はダブルネイティブのデータ型を返します
(2)のcompareTo():オブジェクトパラメータとを比較する数。
Xの= 5の整数。; INT NUM =そのx.compareTo(3 ) 指定されたパラメータは、0を返すの数に等しい場合。 番号が指定されたパラメータを返すよりも小さい場合は -1 。 番号は、指定されたパラメータを返すよりも大きい場合は 1。
(3)と等しい場合()オブジェクトは、パラメータ数が決定さに等しいです。
(4)のvalueOf()は、組み込みデータ型指定された数のオブジェクトを返し
(5)のtoString():文字列として値を返します。
(6)parseXXX():式XXXの文字列を解析。
parseInt():文字列int型を解析します。
parseFloatは():文字列型フロートを解析します。
parseDouble():文字列型のダブルを解析します。
parseShort():ショート文字列型を解析します。
parseLong():ロングに文字列を解析します。
(7)ランダム():0と1の間の乱数を返します。
七、内部クラス
(1)定義:別のクラス内で定義されたクラスは、このクラス(いくつかの場所で、また、ネストされたクラスとも呼ばれる)内の他のクラスにおいて内部クラスと呼ばれています。
(2)の役割を:
優れたパッケージング、クラスの中に隠された外部タイプのインテリアを提供し、クラスが他のパッケージへのアクセスの同じタイプを許可していません。 B内部クラスは、私有財産への直接アクセスだけでなく、外側のクラスの他のメンバーを持って、内部クラスはまた、内部クラスの他のメンバーとして見ることができます。しかし、外部のクラス(クラス内のメンバ変数など)実装の詳細は、内部クラスにアクセスすることはできません。 Cクラスは、外部修飾子三つのカテゴリーよりも内部使用することができます。プライベート、保護された、静的 ----- 外部クラスを使用することはできません。 D非静的内部クラスは、静的メンバを持つことができません
(3)内部のスタティック型/非静的内部クラス
a)は静的な内部クラス
定義:静的な内部クラスと呼ばれる静的な内部クラスを、使用して変更。静的な内部クラスは、外部クラス自体です。
静的な内部クラスは静的メンバでなく、非静的メンバを含めることができます。静的メンバは非静的メンバにアクセスすることはできません。
インターフェイスは、静的な内部クラスすることができ、内部クラスや内部クラスを定義することができます。
B)非静的内部クラス
1つの外部クラスが直接内部クラスメンバにアクセスすることはできません。クラスの外部、内部クラスを介して内部クラスメンバーに内部クラス、インスタンスへのアクセスのインスタンスを作成し、内部クラスに加えて。(同一の一般的なカテゴリとフォーマットを使用して)
2クラスのメンバ外側インナークラスとして使用することができます。これによりクラス内の、定義されたクラス区分として外部.thisクラス名。
a.thisメンバー名:インスタンス変数のアクセス非静的内部クラスは、this.inVarName
外部クラスのインスタンス変数へのアクセス、OutClass.this.outVarName:B外部クラス名は、メンバー名を.this
注意:静的メンバは非静的内部クラスで許可されていません
(4)内部クラス
外a)の内部クラス
1、通常は一般的なカテゴリを使用して大きな違いはありませんが、例の内部クラスの新しい、呼び出し部材を介してクラス内の内部クラスのコンストラクタ呼び出しのインスタンスを作成します。
2(静的及び静的初期コードブロックを含む)クラス外部静的内部静的クラスのメンバーを使用しない、静的メンバは非静的メンバにアクセスすることはできません。
B)外クラスの外側非静的内部クラス
。1つのだけ外側のクラスの.private内部修飾クラス。 2 。省略アクセス指定子インナークラスは、唯一の外部のクラスは、同じパッケージ内の他のクラスで使用されてもよいです。 図3は、唯一の外側のクラスは他のクラスと同じパッケージに外用のクラスのサブクラスであってもよく、内部修飾クラスを.protected。 4.public内部変更クラス、任意の場所を使用することができます。
:非静的な内部クラスの基本的な構文を使用します。 1.インナーOuterClass.InnerClass = 新しい新 OuterClassた()。新新InnerClassを();オブジェクトクラスの内部のインスタンスを作成します。 OuterClassは= 2 OUTた新新)外(; OuterClass.InnerClass中 = OUT。新新InnerClass();同じことがオブジェクトクラス内部のインスタンスを作成することができます。 3.非静的内部クラスのコンストラクタは、あなたが呼び出すために外部クラスのオブジェクトを使用する必要があります。
クラスが継承する場合は、サブクラスのコンストラクタで非静的内部クラスは親クラス非static内部クラスのコンストラクタを呼び出して、我々はコンストラクタをサブクラス化するクラスの外にオブジェクトを渡す必要があります。非静的内部クラスコンストラクタは、クラスのインスタンス・オブジェクトの外側と呼ばなければならないからです。次のように パブリック クラスのサブクラスザが延びるOut.In { 公共のサブクラス(OUTアウト){ // outオブジェクトを通って出て、コンストラクタコールで。 OUT。スーパー( "こんにちは" ); } }
C)外側のクラスの外静的内部クラスを使用して
基本的な構文:
=新しい新規OuterClass.InnerClassでOuterClass.InnerClass();
静的内部クラスは、クラスの外のクラスに関連しているので、それほど静的内部クラス・オブジェクトを作成する場合、オブジェクトは、クラスの外で作成できません。
(5)内部部分クラス(メソッド内部クラス)
定義:メソッドにクラスを定義し、そのクラス部分内部クラス(メソッド内部)のみプロセス内のローカル内部クラス。
1.どこでも外の方法では、内部クラスで唯一の有効な方法のローカルコールのメンバーではない
2.ローカル内部クラスは、静的な変更を使用することはできません。
3.クラス定義内のローカル変数の場合は、インスタンスまたはサブクラスを作成し、この方法は、クラスの内部に局在化することができます。
クラスとオブジェクト処理の8人のメンバー
(1)処理
1つのtoString()のtoStringによって印刷対象()メソッド、オブジェクトの詳細(「自己記述」)プリント。toString()メソッドを使用していない、印刷された情報は、オブジェクトのハッシュ値です。 == 2 と等しい差 とき区別せずに基本データ型の決意。等しい値が等しいある 参照データ型が決定された場合: ==値とメモリアドレス(同じオブジェクト)が等しいとき、それは同じであり、唯一等しい値、すなわちに等しい等しいです
(2)クラスのメンバ
フィールド、メソッド、コンストラクタ、コードの最初のブロック、(インターフェイス、列挙を含む)内部クラス。=コンストラクタは、静的変形に加えて利用可能です
シングルトンクラス:クラスのインスタンスにのみ作成することができます
(3)最終的な修飾子
A)最終的な変性の変数は初期値の割り当てられている必要があり 、初期値が存在した後に、値セットを変更できないこと、b)最終的な修飾変数。 1つのプリミティブ値は不変。 2 参照型、不変の基準オブジェクトは、メモリアドレスが変更されず、アドレスの内容とすることができます。 p.setName()は、コンテンツオブジェクトに変更することができます。ないP = ヌル;このメモリアドレスが解消され、現実的ではありません。 3つのサブクラスは親クラスのメソッドの最終変更を上書きしないことができる 。4クラスは、最終的な不変クラスを変更し、それを継承することができません。