コンストラクタ(コンストラクタ)
構文:
修飾子クラス名(パラメータリスト){
イニシャライザ;
}
コンストラクタの特徴:
1.これは、クラスと同じ名前を持ちます
2.これは、戻り値の型を宣言していません。(異なる宣言ボイド)
3.静的、最終的に、同期化、抽象的、ネイティブ変更することはできません、return文が値を返すことはできません
コンストラクタの役割:物体1の作成、オブジェクトを初期化する2; =新しいオーダ(Oオーダー);人物P =新しい人(Shangxiang、15);.
例:クラス動物のインスタンスを作成する:動物=新しい動物();コンストラクタを呼び出す、脚部4に初期化されます。
パブリック クラス動物{ プライベート int型の脚、 公共動物(){= 4脚;} // コンストラクタコンストラクタを呼び出すためには、足が4初期化し
、前面(無修飾剤とのデフォルトコンストラクタは、アクセスに関連するクラスを定義していますパブリッククラスはデフォルトコンストラクタがパブリックであり、デフォルトクラスは、デフォルトで使用され、既定のコンストラクタ) 公共 ボイド setLegs(INT I){ 足「 = I; } 公共 のint getLegs(){ reyurn脚」; } }
パラメータによっては、コンフィギュレーションは、2つのカテゴリに分けることができます。
1.ない暗黙の引数のコンストラクタ(デフォルト提供)
1つ以上の表示構成を定義2(参照は、参照が存在しません)
注:1.JAVA言語、すべてのクラスは、少なくとも1つのコンストラクタを持っています
2.デフォルトの設定では、修飾子と一致している修飾子のクラスに属します
3.一度定義された構成の表示、システムはデフォルトコンストラクタを提供していません
図4は、クラスのコンストラクタのオーバーロードを複数作成することができ
親クラスのコンストラクタは、サブクラスによって継承されていません
例1:上記で定義されたPersonクラスのコンストラクタを追加し、プロパティの年齢のセットの初期値を使用して、構成はすべて18です。
パッケージday11。 パブリック クラスPERSON1 { パブリックPERSON1(){ 年齢 = 18 。 } 公共の int型の年齢; } パッケージday11と、 パブリック クラスTEST1 { 公共 静的 ボイドメイン(文字列[]引数){ PERSON1 P1 = 新しいPERSON1()。 System.out.println(p1.age)。 } }
実行結果:18
例2:変更タイトルクラスのコンストラクタと年齢や属性名がPersonオブジェクトは、オブジェクトを初期化するたびに作成されるように、name属性、属性値を増やします。
パッケージday11。 パブリック クラスPERSON1 { 公共 PERSON1(int型A、文字列N){ // 年齢= 18。 年齢= ; 名前 = N; } 公共の int型の年齢; 公共の文字列名。 } パッケージday11と、 パブリック クラスTEST1 { 公共 静的 ボイドメイン(文字列[]引数){ // PERSON1 P1 =新しいPERSON1()。 // するSystem.out.println(p1.age)。 PERSON1 P1 = 新しいですPERSON1(15、 "孙尚香" )。 System.out.println(p1.age)。 System.out.println(p1.name)。 } }
実行結果:15
Shangxiang
実施例3:「点」(ポイント)を定義するクラスは、三次元空間(3点の座標)内の点を表すために使用されます。次のような要件は以下のとおりです。
図1は、特定のポイント・オブジェクトの座標を有する生成することができます。
2.方法を提供することは3点の座標を提供することができます。
パッケージday11。 パブリック クラスポイント{ パブリックポイント(INT M、整数 nは、INTのK){ X = M。 Y = N。 Z = K。 } int型のX; int型のy; int型Z; 公共 ボイド設定値(INT M、整数 nは、INTのK){ X = M。 Y = N。 Z = K。 } } パブリック クラスTEST1 { 公共 静的 ボイドメイン(文字列[]引数){ ポイントPO = 新しい新しいポイント(1,2 ,. 3); // 特定のポイントは、オブジェクト座標生成 po.setPoint(6 ,. 7 ,. 8); // 提供M、N、kは6,7,8 } }
第二に、コンストラクタのオーバーロード
オブジェクトが作成されている間、一般的なコンストラクタは、オブジェクトを初期化します。として
クラス人{ 文字列名。 int型の年齢; 公共人(文字列N、INT A){ 名前 = N。 年齢 = ; } }
オブジェクトを作成するためのオーバーロードコンストラクタは、オブジェクトのさまざまを作成しやすい、より柔軟でした。例コンストラクタのオーバーロード:
パブリック クラス人{ 公共の人(){//コンストラクタのオーバーロードは、異なるパラメータリストでなければなりません } 公共者(int型の年齢){ } 公共者(文字列名){ } 公共者(int型の年齢、文字列名){ } }
三、このキーワード
Javaでは、このキーワードとその意味の役割は主に、非常に近いです。
あるメソッド内でこの資料の内容のキーワードは、その役割とその意味は非常に近いです。
2.これは、初期化されるオブジェクトのコンストラクタを表すコンストラクタで使用されます。
これは、現在のオブジェクトを表す、クラス属性、メソッド、およびコンストラクタを呼び出します。必要性はメソッド内でオブジェクトのメソッド呼び出しを使用する場合は、これを使用します。例えば:
パッケージDay12; パブリック クラス人{ プライベート文字列名; プライベート int型年齢、 公共者(文字列名、int型年齢){ この .nameの=名前; // 同じ名前に関与形のメンバ変数、内部メソッドのメンバ変数を使用して、必要に応じて、 この .age =年齢; //は、このクラスのメンバ変数であることを示すために添加しなければならない } 公共 ボイドのsetName(文字列名){ この .nameの=名; // 任意の方法で、現在のクラスのメンバ変数またはメンバーならこの方法は、これの前に読みやすさを向上させるためのプログラムを追加してもよい } 公共 ボイド{setName01(文字列名) この.setName(名); } 公共 ボイドSHOWINFO(){ System.out.printlnは( "姓名:" + 名)。 System.out.println( "年龄:" + この.age)。 } }
このクラスの使用は、(コンストラクタの各呼び出しで、クラスとして、この特別な形式)このコンストラクタを呼び出します
パッケージDay12; パブリック クラスPERSON1 {の プライベート文字列名; プライベート int型年齢、 公共 PERSON1の(){ // 引数なしのコンストラクタ のSystem.out.println(「新しいオブジェクトをインスタンス化」); } 公共PERSON1の(文字列名){ この() ; //は、このクラスの引数なしでコンストラクタを呼び出す この .nameの= 名; } 公共 PERSON1(文字列名のINT 年齢){ この(名前); // のコンストラクタパラメータ呼び出し この .age = 年齢; } 公衆GetInfoは文字列(){ リターン "名:" +名+ "年齢" + 年齢; } }
注:1本()コンストラクタを使用して、最初の行に配置する必要があります!
2.このクラスでは、このコール他のコンストラクタは、少なくとも、コンストラクタはこれではないことを確認してください。(実際には、コンストラクタは自分自身を呼び出すことはできません)。
四、JavaBeanの
1.JavaBeanは、Javaの再利用可能なコンポーネントで書かれた言語です。
2. JavaBeanは、いわゆるJavaクラス満たすために以下の基準を参照します。
>クラスはpublicです
>は、パラメータpublicコンストラクタを持っていません
属性値を持っている>、属性は一般的に民間と対応のget、setメソッドであります
3.ユーザは、関数、処理、値、データベースアクセス、およびパッケージのJavaコードで作成することができる任意の他のオブジェクト、およびその他の内部開発することができるJSPページ、サーブレット、他のJavaBean、アプレットまたはアプリケーションプログラムへとJavaBeansを使用することができこれらのオブジェクトを使用します。ユーザーはJavaBeanのは、コピーの種類を提供して考えると、任意の変更を心配することなく機能いつでも、どこでも、貼り付けることがあります。
以下のためのパッケージ変更Day12; / ** *完全なJavaBeanのは *パブリッククラス *私有財産は、 *対応するgetおよびsetメソッド属性 * * / パブリック クラスPERSON2 { プライベート文字列名; // 名前 民間の int型のセックス; // 性別男性0 1つの女性の プライベート int型の年齢; // 年齢 公共 のボイドのsetName(文字列名){ この .nameの= 名; } パブリック文字列のgetName(){ 返す この.nameのを; } パブリック 無効 setSexを(INTの性別){ この .sex = セックス。 } 公共 INT getSex(){ 戻り性別; } 公共 ボイド setAge(int型の年齢){ この .age = 年齢。 } 公共 INT getAge(){ 戻り 、この.ageと、 } } パッケージday12と、 / ** *のJavaBean的用法 * * * / パブリック クラスのテスト{ 公共の 静的の 無効メイン(文字列年代[]){ PERSON2 P2 =新PERSON2(); p2.setName( "杜甫" ); p2.setSex( 0 )。 p2.setAge( 20 )。 System.out.println(p2.getName())。 System.out.println(p2.getSex())。 System.out.println(p2.getAge())。 } }
結果を印刷します:杜甫
0
20
ヒント:使用Eclipseは自動的に取得し、setメソッドを生成し、
書かれたプロパティの後、コードマウスの右ボタンで、ソース(ショートカットはAltキー+ Shiftキー+ S)オプションを見つけ、その後、GetterおよびSetterの生成]を選択し...、[OK]をクリックし、あなたが得るとsetメソッドを生成したい属性を選択完全な。