1.クラス
以下のためのパッケージ変更cn.itcast.day06.demo03; / * 問題の説明:あなたは人の年齢を定義すると、不当な値がでてくるように設定されて防ぐことはできません。 ソリューション:秘密鍵はメンバ変数を変更することができ、保護する必要があります。 変更され、その後、このクラスの私的使用後は、まだ自由にアクセスすることができました。 しかし!もはやカテゴリを越えて、この範囲の外に直接アクセスできるようにします。 間接アクセスプライベートメンバ変数は、getter / setterメソッドは、子供のペアの定義である のsetXXXかのgetXXXの命名規則と呼ばれている必要があります。 ゲッターのために、パラメータは、戻り型と対応するメンバー変数を持っていない。 セッターのために、その値、パラメータ・タイプ、および対応するメンバ変数を返すことができません。 * / パブリッククラス人{ 文字列名; //名前 プライベートint型の年齢; //年齢 ます。public voidショー(){ System.out.printlnは( "私の名前:" +名+ "年齢:" +年齢); } /具体的には年齢にデータを設定するための部材の/方法、 公共ボイド(NUM INT)setAge { IF {//それが合理的である場合(NUM <100 && NUM> = 9) 年齢= NUM。 }他{ のSystem.out.println( "データ不合理な!"); } } //このメソッドのメンバー、特に年齢データ取得ささやき )公共int型getAgeを({ リターン年齢; } }
2.オブジェクト
cn.itcast.day06.demo04パッケージ変更のため、 パブリッククラスDemo01Person { 公共の静的な無効メイン(文字列[] args){ 人人=新しい新しい人(); 自分の名前の設定// person.name =「王健林を」; person.sayHello ( "Sicong"); のSystem.out.println(人物); //アドレス値 } }
cn.itcast.day06.demo04パッケージ; パブリッククラスDemo02Student { 公共の静的な無効メイン(文字列[] args){ 学生STU1新しい新しい学生=(); //引数なしのコンストラクタ のSystem.out.println(「====== ======「); 学生STU2 =新新学生( "趙麗穎"、20); //引数全体のコンストラクタ のSystem.out.println( "名:" + stu2.getName()+ "年齢:" + stu2.getAgeは()); あなたがオブジェクト間のメンバ変数データの内容を変更する必要がある場合は、//、まだのsetXXXメソッドを使用する必要があります stu2.setAge(21); //は、年齢に変更 するSystem.out.println(「名:」+ STU2を。 getName()+ "年齢:" + stu2.getAge()); } }
cn.itcast.day06.demo04パッケージ; / * 「近接の原則」に従い、プロセス変数と授業時間の同じ名前のローカル変数は、優先的にローカル変数を使用するメンバー。 :あなたは形式を使用する必要があり、このクラスのメンバ変数にアクセスする必要がある場合 。このメンバー変数名を *「これは誰で、呼び出すメソッドにより、」 / パブリッククラス人{ ; //自分の名前の文字列名を //パラメータ名人の名前です //メンバ変数名は彼の名前である 公共のボイドのsayHello(文字列名){ System.out.printlnは(名前+「こんにちは、私は」+ this.name); System.out.printlnは(この); } }