第3週(2.17から2.23)
Day11
補足2次元配列
-
2次元配列構文を作成します。
-
最初の文、再配布スペース
- データタイプ[] []配列名;配列=新しい名前データタイプ[高次元の長さ] [低次元の長さ]。
-
最初の文と割り当てられたスペース
- データタイプ[] [] =新しいアレイ名データタイプ[高次元の長さ] [低次元の長さ]。
-
声明と代入(繁体字)
- データタイプ[] [] =新しいアレイ名データタイプ[高次元の長さ] []; //不規則なアレイ、新しい低自己次元アレイ
-
そして、代入文は(簡体字)
- データタイプ[]配列名= {{V1、V2、V3}、{V4、V5}、{V6、V7、V8、V9}}; //初期表示
-
オブジェクト
-
コンセプト:物事のすべての客観的存在がオブジェクトである、すべてがオブジェクトであります
- 特徴:オブジェクトが持っている何を表しているかというプロパティ、通常名詞、
- 動作:メソッドが呼び出されるが、一般動詞何、オブジェクトを表し
-
物事のすべての客観的存在がオブジェクトである、すべてがオブジェクトであります
-
任意のオブジェクトは、独自の特性と動作を持っている必要があります
-
このプログラムは、あなたが持っている必要がありますし、同じオブジェクトの現実は、現実の世界をシミュレートします
- 使用して、現実を表しプログラムオブジェクト内のオブジェクト、およびアクションを実行し、現実的な問題を解決します
-
作成されたオブジェクト:
パブリッククラスTestCreateObject {
パブリック静的無効メイン(文字列[] args){犬myDog =新しい犬();
myDog.breed =「莎魔」。
myDog.age = 2。
myDog.sex =「公」。
myDog.fuColor =「白色」。
System.out.println(myDog.breed + "\トン" + myDog.age + "\トン" + myDog.sex + "\トン" + myDog.fuColor)。myDog.eat();
myDog.sleep();}
}
-
オブジェクトの作成
- オープンスペースは、メモリ内のオブジェクト
- 各属性の初期値を付与
- コンストラクタは、コードを実行します
- 変数に割り当てられたオブジェクトのアドレス
-
カテゴリー:
-
コンセプト:オブジェクトは、クラスの特性や振る舞いを持つべきである定義すると、テンプレートオブジェクトであります
-
クラス定義:
例
クラス犬{公共の
文字列の品種; //ブランドの
int型の年齢; //年齢
のString性別; //性別
文字列furColor; //毛皮公共ボイド(){食べ
System.outy.println(「食べるの...」);
}
公共ボイド睡眠(){System.out.println(「眠れます...」);
}}
-
定義されたプロパティ
- プロパティ:変数を表し、また、インスタンス変数として知られています
- 構文:データ型の属性名。
- 場所:外部クラス、メソッド内
-
定義されたメソッド
- 方法:方法も知られている、関数で表さ例
- 構文:public戻り型メソッド名(パラメータ){//メソッド本体}
- 書き込みは、もはや静的ではありません
-
連絡先のクラスとオブジェクト
- クラス:特性とクラスの振る舞いを持つべきであるオブジェクトは、テンプレートオブジェクトで定義します
- オブジェクト:オブジェクトは、クラスのインスタンスの特性やエンティティの行動が複数ありました
ローカル変数とインスタンス変数の違い
-
ローカル変数
- 構造や方法の中で:場所を定義します
- デフォルト:デフォルトなし
- 範囲:その端部の定義から含む構造体へ
- 競合を命名:名前の重複を許可していません
-
メンバ変数
- 外部クラス、メソッド内
- デフォルト:リテラル(同じ配列)
- 使用する:効果的なのこのクラスを
- 競合を命名:することができ、同じ名前とローカル変数を、ローカル変数の優先順位
二つの部分を含む例Methodオブジェクト:方法としてメソッド宣言のための方法を実装し
-
Method文:オブジェクトの代表を何
- 作曲:修飾子戻り値の型メソッド名(パラメータリスト)
-
オブジェクトの代表を行う方法:メソッドの実装方法をオブジェクトに対応する機能を達成するために
- 組成:[]
オーバーロードされたメソッド:行動オブジェクトの同じ種類は、プロセスの実装の多様存在することができます
- 過負荷:同様に、複数の定義されたクラス名
- 要件:異なるパラメータ(種類、数、配列)と修飾リターンの同じ名前のリストを持つ方法にかかわらず、値型のリターンの
- 渡された引数のメソッドに一致する方法を見つける必要があるとのオーバーロードされたメソッドを呼び出す場合
- 利点:使用して、違いをシールド柔軟かつ便利
コードが間違っ曲です
- メソッド名とパラメータリストの二つの方法は同じで、ただではない同じパラメータ名、コンパイルエラーです
- 注:唯一の違いパラメータ名は、過負荷の方法を構成するものではありません。
コンストラクタ:クラスの特別な方法は、主にオブジェクトを作成するために使用します
-
機能
- まったく同じ名前とクラス名
- なし戻り値の型ません
- あなたは、オブジェクトを作成するとき。コンストラクタへの呼び出しをトリガーすることができ、呼び出しを手動期間とすることができません
-
注:コンストラクタは、クラスで定義されていない場合、コンパイラは引数なしでデフォルトコンストラクタを提供します
オーバーロードコンストラクタ:コンストラクタもフォローにルールを過負荷、過負荷状態にすることができます
プロパティの割り当てのコンストラクタ:
- 同時にオブジェクトを作成し、値がコンストラクタに渡されました
Day12
キーワード
-
この
-
クラスは、このクラスのすべてのオブジェクトを果たすことができるテンプレートは、このクラスのデフォルトのリファレンスである現在のインスタンスを表すときに、オブジェクトの時のクラスのサービス、オブジェクトにこの点
-
この最初の使用:コールインスタンス・プロパティ、インスタンスメソッドを使用します。this.nameとして、this.sayHi()
-
このとき、同じ名前とローカル変数、ローカル変数の優先順位;.のインスタンスは、インスタンス変数にアクセスするには、この接頭辞が存在しない同じ名前を大きくする必要があるときは、これを省略することができます
-
二つの使い方:この第二の使用法:このクラスの他のコンストラクタを呼び出します。この()この(引数)として、
- 本発明の方法の他の構成のコンストラクタコールで、ロジックコードの再利用方法を構成することができます
- 注:この():この(引数)引数なしのコンストラクタを呼び出します。そこ引数コンストラクタメソッド呼び出し:コンストラクタの最初の行であることを
- 引数が参照した構造の割り当てに直接渡さ受け取っあり、構成パラメータ
-
-
superキーワード
-
親クラスの属性およびメソッドから継承するサブクラスが、同じ名前(遮蔽性、メソッドカバレッジ)の存在下で、親クラスのプロパティまたはメソッドならば、特別なアクセスの前に、区別する必要があり、直接アクセスすることができます
-
使用方法:次に、超それによってサブクラスに多重親クラスへのアクセスを完了するの形で使用される方法は、追加の機能コードと新しいフィーチャを形成するために重ね合わせ
-
スーパーのアクセス属性:アクセスするために別の接頭辞を使用するには、2つのスペース(親サブクラス遮蔽性)の存在が必要ながら、同じ名前の親子クラス属性は、関係をカバーするには存在しません。
-
スーパー引数なしでスーパークラスのコンストラクタを呼び出します
- スーパー()引数なしで親クラスのコンストラクタを呼び出す示しています。あなたが書いていない場合。最初の行のサブクラスのコンストラクタで暗黙的に存在します
-
注:サブクラスのコンストラクタた場合は、非表示の定義スーパー()やスーパー(引数)、同じサブクラスのデフォルトのスーパー()コンストラクタメソッドを提供し、スーパー()は、この()は共存できません
-
-
instanceofのキーワード
- 下方遷移する前に、変換のタイプの精度を保証するために、実際のオブジェクト・タイプを参照して判断すべきものです
- 構文:参照instanceofは、タイプ//戻り値boolean型
三つの特徴
-
パッケージ
- プロパティの割り当てオブジェクトの外部オブジェクトで、不正なデータのエントリが存在してもよいです
- 権限の隠された可能性の内部実装の詳細などのオブジェクト、およびアクセス制御オブジェクトの変更:概念
- アクセス修飾子:プライベート(プライベートのみ、このカテゴリでは、visibleプロパティを変更することがあります)
-
一般的なアクセス方法
-
適切なデータ入力を確実にするためにパブリック・アクセス方法
-
命名規則
命名規則:
割り当てを達成するための割り当てのsetXXX()//メソッドのパラメータ
値:のgetXXX()//値がレンジング方法リターンを使用して実装
-
-
-
継承
-
クラスまたは取得の特性との行動の間の1つの種類のギフト
-
抽象親クラス:同一または類似グループ内のクラス、抽出された特徴と、親クラスで定義された一般的な挙動、リユース
-
構文:親クラスのクラス、サブクラス{} //親クラス表示継承サブクラスの定義を拡張
-
アプリケーション:継承をオフに生成した後、サブクラスは親クラスのプロパティとメソッドを使用することができ、サブクラスは、特定の属性およびメソッド定義することができます。
-
連続が作成しました:
-
オブジェクトを作成するには継続的な関係、建物の意志最初のビルドサブクラスのオブジェクトの親オブジェクトを持っています
-
共通の親クラスの内容、それのユニークなコンテンツオーバーレイサブクラスによって、完全なサブクラスのオブジェクトに
-
作成プロセス
- サブクラスのオブジェクトを作成、最初のビルドの親クラスのオブジェクト
- 1、2割り当てられた空間、コードコンストラクタを実行し、親オブジェクト3、4初期化プロパティを構築します
-
-
利点:のみコードの再利用性を向上するだけでなく、コードのスケーラビリティが向上
-
注:単一継承などのJavaクラスは、唯一の直接の親を持つことができますが、ステップの重ね合わせによる複数のクラスの継承、属性とメソッドのステップを持つことができます
-
継承されませ
- コンストラクタ:コンストラクタクラスは、このクラスは、オブジェクトを作成するための唯一の責任があり、継承することはできません
- プライベートと変更されたプロパティ:アクセス修飾子の一つ、目に見えるだけでこのカテゴリで
- 親子クラスがパッケージに含まれていないと同時に、デフォルトの属性と修正方法:修飾の一種にアクセスするには、パッケージだけで見ることができます
-
-
アクセス修飾子
-
民間
- このクラスはアクセス可能です。同じパッケージ。珍しいパンクラス、他にアクセスすることはできません
-
デフォルト
- このクラスは、同じパッケージにアクセスすることができます。珍しいパンクラス、他にアクセスすることはできません
-
保護されました
- このクラスは、パッケージに、異常なアクセスクラスをパン。他の人がアクセスをすることはできません
-
公衆
- このクラスは、パッケージと、異常なパンクラス、他の缶アクセス
-
-
被覆法
-
の原理を覆う方法
- メソッド名、パラメータリストには、戻り値の型が同じ親でなければなりません
- アクセス修飾子は、親クラスと同じか、親クラスよりも広くてもよいです
-
実行カバレッジの方法
- サブクラスは、親クラスのメソッド、優先コールカバレッジサブクラスの後に実行されるメソッドをオーバーライドします
-
-
ポリモーフィズム
例:
親クラスリファレンス
(参照型)動物=新しい犬() ; サブクラスオブジェクト(オブジェクトタイプ)-
コンセプト:
- 親クラスは、それによって様々な形態を生成する、サブクラスオブジェクト
-
両方の直接的または間接的な継承を有する、親クラスの参照サブクラスオブジェクトは、すなわち多形体を指すこと
-
親クラス参照のプロパティとメソッドが唯一の父が宣言呼び出すことができる、あなたは子クラス独自の属性とメソッドを呼び出すことはできません。
-
ポリモーフィックアプリケーション
- オーバーロードされたメソッドは、異なるオブジェクトパラメータを受信する問題を解決することができるが、欠点も明らかです
- シーン:親クラスのパラメータの使用方法としてはポリモーフィズムを実現する、方法がより一般的な型パラメータ
- シーン2:親クラスのメソッドを使用して多型を達成するように値を返し、この方法は、異なるサブクラスのオブジェクトを返すことができ
-
アップキャスト(梱包
- 親クラス参照が上方遷移と呼ばれる、実際のサブクラスオブジェクトが格納されている(すなわち、多型のコアコンセプト)
- 注:動物が呼び出し可能で宣言されただけのプロパティとメソッド
-
意気消沈(開梱)
- ダウンキャストと呼ばれる実際のサブクラスのオブジェクト自体強力なバックサブクラスの種類、内の親クラス参照
- 注:のみサブクラス独特のプロパティとメソッドを呼び出す前に、真のタイプのサブクラスに変換
-
異常な型変換
- 参照サブクラスのオブジェクトとターゲットタイプの親クラスが一致しない場合には下向きの移行は、変換例外の種類が発生した場合
-
Day13
三の修飾子
-
アプリケーション抽象クラス:抽象クラスに変更、新たなターゲットではありません
-
変更された抽象クラス、抽象クラスと呼ばれます。抽象クラスは、不完全なクラスを意味し、具体的なクラスではない、抽象クラスのオブジェクトは独立して存在することはできません、それは新たなターゲットではありません
-
役割:
- それは、共通のプロパティとメソッドを提供し、サブクラスに継承することができます
- それは、多型の参照、義務的使用として宣言することができます
-
経験:抽象スーパークラス、サブクラス、サブクラスの依存性と完全なサブクラスのオブジェクトの共通の親クラスのサブクラス+独特の組成物による物体の存在、の一環として、
-
抽象メソッドが抽象メソッドが抽象クラスでは、不完全な方法を達成する方法はない、唯一の方法抽象メソッド宣言と呼ばれる、修飾されることが意図されている({}の一部)を含んでいなければなりません
-
継承を生成した後、サブクラスは親クラス、抽象クラスまたはサブクラス内のすべての抽象メソッドをオーバーライドする必要がありますか
-
概要
抽象修正クラスは、オブジェクトが新たにすることはできませんが、文引用された
抽象修正方法:だけメソッドの宣言は、達成するための方法はありません。(抽象クラスに含まれる)
抽象クラスが抽象メソッドを持っていないかもしれないが、抽象メソッドが抽象クラスである必要がありますがある
サブクラスは親クラス抽象メソッド、またはサブクラスまたは抽象クラスの全てをカバーしなければならない、抽象クラスを継承した後
-
-
静的
-
属性の例:各オブジェクトのインスタンス属性はそれぞれ独立空間(以上)によって保持され、一方的に他のオブジェクトに影響を与えずに、オブジェクトを修正します
-
静的プロパティ静的プロパティは、クラス全体で共通に保持されている()は空間を共有し、任意のオブジェクトの変更は、他のオブジェクトに影響を与えます
-
静的な状態
- 静的プロパティとメソッドを変更することができます
- 静的プロパティ(クラスプロパティ)、静的メソッド(クラスメソッド)
- 静的クラスのメンバは、すべての共有オブジェクトのフルメンバーであります
- 唯一の理由は、クラス全体の複数のコピーを生成するために複数のオブジェクトを作成しません
- 代わりに、オブジェクトを作成するのではなく、直接クラス名によってアクセスすることができます
-
staticメソッド
-
既知の静的メソッド
- Arrays.copyOf()
- Arrays.sort()
- Math.random()
- Math.sqrt();
- 直接クラス名の呼び出しを使用しています
-
-
静特性
- 静的メソッドは、静的メンバへの直接アクセスを可能にします
- 静的メソッドはできません直接アクセス非静的メンバ
- 静的メソッドは、このまたはsuperキーワードで許可されていません
- 静的メソッドは、何の多型を継続することはできませんし、書き換えることができません
-
静的コードブロック
パブリッククラスTestStaticBlock(){
公共の静的な無効メイン(Stirng []引数){MyClass.method();
}
]
MyClassクラス{静的な文字列sField =「静的プロパティ」;
静的{
System.out.println(sField)
のSystem.out.println( "静的ブロック")。]
パブリック静的ボイド方法(){
}
}
- クラスがロードされると、トリガーは、静的コードブロックを(一度だけ)を行います。実行位置:初期化後の静的プロパティ。静的プロパティを割り当てる、または動作に必要な初期化:ロール
-
概要
-
-
最後の
-
コンセプト:最終的には、変更することはできません
-
最終的にコンテンツを変更することができます。
-
クラス(finalクラス)
- 継承することができない、最終的な修飾クラス
- 注:文字列、数学、システムが最終修正クラスは継承できませんされています
-
メソッド(最終メソッド)
- 最終修正方法:このメソッドをオーバーライドすることはできません
- カバレッジのサブクラス修正された形式をサポートしていません最終的にアプローチするためのもの
-
変数(final変数)
- 変数の最終変更:この変数の値を変更することはできません(定数)
- 例定数は初期値を手動で割り当てる必要があります、デフォルト値を提供しなくなりました。割当時間:ディスプレイの初期化、動的コードブロックコンストラクタ
- 注:インスタンスコンストラクタ定数の割り当てた場合。我々は、すべての構築方法は、その割り当てを修正できるようにする必要があります
-
静的定数
- 静的定数は、もはやデフォルト値を提供し、手動で初期値を代入してはなりません。割り当てのタイミング:ディスプレイの初期化、静的コードブロック
-
オブジェクトリテラル
- 基本的なタイプの最終修正:価値不変
- 最終修正参照型:アドレス不変
-
概要
-
-