パッケージ
セキュリティ上のリスク:
プロパティは、民営化ではない(直接操作部材の特性は、それが可能な凹凸[危険]の場合です)
{Student01 STU =新しいStudent01( "SAN"、10、 "M")。
//直接操作部材のプロパティ] - > [割り当て
stu.name = "シーズンFengping"。
//stu.age=-5;}
プロパティ民営キーワード:
プライベートプライベートメンバー---à修飾子
かつて私有財産のメンバーのみが現在のクラスで使用することができた場合は、他のクラスはアクセスできません|運営[プライベートint型の年齢;]
私有財産一度:
>(方法) - パブリックアクセスモード設定(プライベートプロパティの値を設定)セッターアクセサ(プライベートプロパティの値を取得する)ゲッターを提供する必要性
快捷键: // Alt + Shift + S - > R - >タブ- >入力- >シフト+タブ- >入力してください
{//年齢セッター
//戻り値:パラメータなし:必要
公共ボイドsetAge(int型の年齢){
IF(年齢> 0 &&年齢<= 150){
this.age =年齢;
}他{
System.out.println( "違法歳!!!");
}
//年齢アクセサ
//戻り値:戻り値int時代に必要なパラメータ:不要
公共INT getAge(){
年齢を返します。
}}
プライベート状態の下では比較的安全です:
直接操作することはできませんプロパティ1. 2.間接演算は、論理的プロセスで決定することができます
あなたはすべてのプロパティにテンプレートクラスを定義した後の一般的なアクセス方法を提供し、プライベートな
オブジェクト指向三つの特徴:
カプセル化、継承ポリモーフィズム
包装:
パブリック・アクセス・メソッドの内部および外部提供の実装の詳細を隠します
プライベートは(パッケージで同じメソッドやクラスは、パッケージに反映されている)ので、私たちはそのプライベートパッケージと言うことができますが、(パッケージがプライベートであると言うことはできませんそれだけでプライベートではありませんので)
パッケージの利点:
セキュリティコードを改善
コードの再利用性を向上させます
JavaBeanは: |エンティティクラステンプレートクラスのシリーズを指し、
開発要件に沿ったJavaBeanクラスの規格:
1)クラスは、パブリックでなければなりません
2)少なくともヌルコンストラクタが存在します
3)私有財産
4)一般的なアクセス方式セッターゲッターを提供
継承:
彼の父の足跡、exteds(継承+拡張子)
クラス:
一般的な一連のオブジェクト - オブジェクトの>抽象化
親クラス:
いくつかの一般的なクラス - >抽象クラス
なぜ使用の継承:
- コードの再利用性を向上させます
- サブクラスは単一の親を継承し、あなたは親クラスの内容を持つことができます
- サブクラスは} {独自の拡散関数を定義することができ
親クラスがサブクラスに継承することができますが、サブクラスは、親クラスから継承することができ、Javaは単一継承メカニズムであるが、より多くを達成することができます
クラス修飾子を変更することができます。public |デフォルト(デフォルト)
単一継承の利点:
使用するのは簡単
短所:
トラブルの修復
オブジェクト指向の原則の一つ:
{シャッターは、拡張のために開いて、修正原理のため閉鎖しました}
アクセス権の修飾子:
アクセス対象のメンバーの権利の範囲を定義します。
異なるパッケージの異なるクラスの他のクラスのパンと、このタイプのバッグ
そしてptivate
デフォルト(デフォルト)Y Y
保護されたY Y Y
公共Y Y Y Y
- 修飾子のメンバーは、メンバーのみを変更し、ローカルで変更することはできません
- クラスの権限修飾子:公共デフォルト(デフォルト)
- プライベートコンテンツを継承することができない、静的なコンテンツを継承することができます
変更を使用して保護されたコンテンツ:
- 袋付き
- 継承を使用することにより、異なるパケット語クラス
書き換えとの違いをリロード:
私たちは、書き換えとヘビーデューティ機能の方法を持っている唯一の方法を参照してください。
過負荷:
- 同じクラス
- 同じメソッド名のより多くの
- 異なるパラメータリスト又はそれがメソッドシグネチャ(メソッド名+パラメータリスト:区別するための唯一の方法)といえます
リライト:
- 異なるクラス(メソッドをオーバーライドするために参照されます)
- オーバーライドするメソッド-à継承クラスまたはインタフェースに基づいて、
- (メソッドをオーバーライドするという)親クラス署名サブ同じケースの方法
役割:
鉱山から継承されますが、独自の特殊な機能は、親クラスのメソッドをオーバーライドする必要があり、サブクラスは、一度親クラス上書きサブクラスのオブジェクトのメソッドは、サブクラスのオーバーライドメソッドと呼ばれながら、同じ名前の親クラスのメソッドシールド
どの方法を書き換えるかどうかを判断するために:
- 左上向きの三角形に表示されます
- ノートオーバーライド@注釈名
状況は書き換えることはできません。
- 変更されたプライベートメソッドをオーバーライドすることはできません
- 修飾された最終的なメソッドをオーバーライドすることはできません
- 変更された静的メソッドをオーバーライドすることはできません
子クラスがその親クラスの静的メソッド(メソッドのシグネチャ)と同じ名前のメソッドを定義する場合、このメソッドは静的である必要がありますサブクラス化
書き換え要件:
==:メソッドのシグネチャは、正確に等しくなければなりません
<= 戻り値型:基本データ型が同じである必要があり、参照データ型:戻り値型サブクラス<= スーパーリターンタイプ
> =:サブクラスオーバーライドメソッド許可修飾しなければならない> = このメソッド修飾子の親クラスのパーミッション
スーパーと この違い:
この:現在の新しいオブジェクトを参照
スーパー:親クラスのオブジェクトを参照します
親クラスのコンストラクタを呼び出します。サブクラスのコンストラクタでのコンストラクタは、親クラスの最初の行を呼び出します
スーパー(パラメータリスト);
呼び出されていない場合は、コールが表示されたら、それが空の親クラスのデフォルトコンストラクタを呼び出しません場合は、デフォルトでは*最初の*は、空の構造の親行を呼び出します
なぜ我々は他のコンストラクタは、親クラスを呼び出して表示される必要があります。
1.親構造は空ではありません
2.コードを簡素化
最初の行にあるようにするので、スーパー、これが存在することはできません。最初の行は、コンストラクタを呼び出し
これは、()がある場合は、最初の行は、この呼び出しコンストラクタで親クラスのコンストラクタを呼び出します。
オブジェクトを作成します。私の亡き父の後サブクラス
初期化:最初の静的メンバの後
最後の:
最終:最終
最終的に修正される変数の定数
最終的な変性方法をオーバーライドすることはできません
最終的な修飾クラスが継承することができない(宦官クラス)
オブジェクトタイプ:
すべてのスーパークラス
オブジェクト:また、親クラスとして知られている|スーパー|基底クラス[継承したクラス]
サブクラス|派生クラス:クラスは、他の人を継承しています
Javaでは内部のすべてのクラスのデフォルトでは、直接または間接的に継承するオブジェクトクラスから
Javaは単一継承され、明示的に他のクラスを継承していない場合は、デフォルトのオブジェクトを継承します
ウォッチtoStirng()メソッド、イコール()メソッド
文字列オブジェクトを印刷する)(1.toString
アプリケーションオブジェクトを印刷する場合、オブジェクトのデフォルトの呼び出しのtoString()
オブジェクトを印刷するとき、オブジェクトに関する基本的な情報を表示する|すべてのメンバープロパティの値、クラスに対応して、toString()メソッドをオーバーライド
2.equals()と==の違い:
==比較値|ターゲットアドレスは同じです
アドレスは、Objectクラスのメソッド、または比較のオブジェクトと等しい場合
パブリックブール等しい(オブジェクトobj){
リターン(この==のOBJ)。
}
サブクラスは、より多くのカスタムルールを持って、平等のコンテンツの比較(属性メンバの値)最初、サブクラスでオーバーライドすることができます()メソッドに等しいです
文字列と他のクラスを書き換えた()メソッドは、コンテンツが、比較対象と等しいです
それはカスタムクラスである場合、あなたは書き換えること、プログラマが必要です:
// 上書き等号方法、比較の年齢を、同じ年齢であれば、ある人のオブジェクト、返す必要があります真
@オーバーライド
パブリックブール等しい(オブジェクトobj){
オブジェクトのアドレスが同じであれば、//、つまり、オブジェクトをプログラムの堅牢性を向上させます
IF(この==のOBJ){
trueを返します。
}
this.id ==((人)は、obj).IDを返します。
}
//要件は比較的であるPersonオブジェクトは、ID、名前、年齢、性別のすべてのメンバーのプロパティの値に応じて等しいです
ポリモーフィック:
多型:様々な形態のもの|様々な形態
ポリモーフィッククラス、インターフェイス多型
ポリモーフィック究極の表現:
親子クラスオブジェクトへの参照
//学生S =新学生();
ポリモーフィック前提:
継承
使用した多型:
サブクラスでオーバーライド親クラスの参照コンテンツを呼び出します
親クラスのメソッドへの参照が見え新しいサブクラスではありません
ポリモーフィックな特徴:
コードの再利用性を向上させ、プログラムをより柔軟にかつ簡単に開発します
多型メンバーの使用:
メンバー変数:コンパイルし、親を見つけるために実行|のタイプを見つける|左見て
メンバー方法:ルック親コンパイル|タイプ|左、オブジェクトを検索するために実行|右|のサブクラス
変換:
基本データ型:自動タイプを持ち上げるキャスト - >型の参照=小(小型)ワイドタイプ。
参考データタイプ:上向きに推移意気消沈大規模:親|親小型コネクタの範囲:サブクラス|実装クラス
変換:
基本データ型:自動タイプを持ち上げるキャスト - >型の参照=小(小型)ワイドタイプ。
参考データタイプ:上向きに推移意気消沈大規模:親|親小型コネクタの範囲:サブクラス|実装クラス
抽象クラス[抄録]:
変更された抽象クラスは抽象クラスであります
修正された方法は、抽象メソッドの抽象であります:{
(抽象メソッドと呼ぶ)は、メソッドのメソッド本体ありません
//パブリック抽象ボイドの仕事();
クラス抽象メソッドがある場合、抽象クラスとしてクラス}が必要
アナログ同社の開発部門:
Java開発エンジニアは、(仕事)
ウェブの仕事()
開発作業を開発()
このような場合メソッドの本体を定義する方法がわからない、私たちは抽象メソッドを使用します!
抽象クラスの機能:
- 抽象クラスはインスタンス化できません
- 抽象クラス本発明の方法は、抽象クラスでなければなりません
- 具体的な方法は存在してもよいが、唯一の抽象クラス、抽象メソッドがあるかもしれません
- 抽象メソッドを書き換える必要があります
- 使用したコンテンツ抽象クラス:
- 具象サブクラス:親クラスのすべての抽象メソッドをオーバーライドする新たな需要+
- 抽象サブクラス:新しい需要は抽象メソッドをオーバーライド需要+
6.抽象メソッドのオーバーライドは、再び書き換え必要とするが、必要に応じて書き換えることができないしたら
7.abstract、最終的に静的な、プライベート、ネイティブでは使用できません
親クラスを選択します。
特定の親
抽象スーパークラス
インターフェイス***:インタフェース定義されたインタフェースは、インタフェースを実装は、
特定の抽象クラス理解
利点インターフェイス:
1.マルチ実装インタフェース、単一継承
2のデカップリング(高凝集および低い結合)
カスタムルール3.
4。コードの再利用性を向上させます
インターフェイス機能:
1.インタフェースは抽象メソッドので、インスタンス化することはできません
。2.使用:インタフェースを達成するための必要性、実装を達成するためのインタフェース
特定のカテゴリを:すべての抽象メソッド内のすべてのインターフェイスをオーバーライドする+新たな需要
抽象実装クラスを抽象インタフェース需要+新たな需要の抽象メソッド
3.親クラスから継承された最初のクラスは、インターフェイスを実装
クラスは、親クラスから継承することができるが、複数のインターフェイスを実装することができる4.
のクラスとインタフェースを部屋、唯一のクラスインターフェースを用いて達成することができ、インタフェースが実現されていない|派生クラス
前記複数のインタフェースの継承インタフェースを、インタフェースは、インタフェースを実装することができない
推奨インタフェース非推奨抽象クラス7.
8インターフェイスインターフェイス多型が発生する可能性があり、クラス発生した多形性クラス
特定の親クラス:なし抽象メソッドは、方法は、本体部材のプロパティを定義することができるビルダー..、サブクラスが継承直接使用することができる
抽象親クラス:本体部材の特性は、メソッドを定義することができるコンストラクタ..、抽象メソッドはまた、
インターフェース:アブストラクトのみ仕様のみを定義するために使用される方法、
インタフェースは多型、多型クラス・タイプが発生する可能性が発生する可能性が