Javaオブジェクト向けのプロパティ


Javaオブジェクト向けの3つの特性
カプセル化、継承、マルチステート
パッヶージ
カプセル化:クラスの情報をクラス内に非表示にし、外部プログラムの直接アクセスを許可するのではなく、このクラスが提供する方法によって非表示情報の操作とアクセスを実現します.カプセル化の実装手順:属性の可視性を変更する:privateとしてgetter/setterメソッドを作成する:属性の読み書きにgetter/setterメソッドに属性制御文を加える:属性値の正当性を判断する
属性の可視性を変更するprivate
//         screen
public float getScreen{
	return screen;
    }
 // viod    ,   .  = ,              .getScreen()   
public viod setScreen(float newScreen){
	screen = newscreen;
	}

変数名属性=値は変数名で直接呼び出すことはできない.getScreen()は、パッケージの役割を果たす:1、Javaファイルの管理2、同名ファイルの競合を解決する定義パッケージ:packageパッケージ名注:Javaソースプログラムの最初の行のパッケージ名の間に置く必要があります.番号の区切り例:com.imooc.MyClassJavaでは、パッケージのネーミング仕様は全小文字スペルです
Javaでのアクセス制御修飾子
public,default,protected,private
  • public:共通で、すべてのクラスが
  • にアクセスできます.
  • default:デフォルト修飾子、同パッケージ内アクセス
  • protected:保護型.このようなアウトソーシングクラスは、同パッケージ内および継承する
  • にアクセスできます.
  • private:プライベートクラスで、final,finally,finalize(継承中)
  • にアクセスできるのは本クラスのみです.
  • final:修飾子.この修飾子で修飾されたクラスは継承できません.この修飾子によって修飾された変数は修正されず、読み取るしかない.この修飾子に修飾される方法は使用するしかなく、再ロードされ、書き換えられない.この修飾子は抽象クラス
  • を修飾することはできません.
  • finally:異常取得後のパージ動作
  • finalize:メソッド;主にGCでオブジェクトを削除する前に、オブジェクトに対してfinalizeメソッドを呼び出して、オブジェクトが
  • 参照されているかどうかを判断します.
    Javaのthisキーワード
    //      
    public void setScreen( float newScreen){
       screen = newScreen;
       }
    //  eclips       
    public void setScreen( float newScreen){
      this.screen = screen;
      }
  • this.属性:現在のオブジェクトを操作する属性
  • this.メソッド:現在のオブジェクトを呼び出すメソッド
  • ecilipseではsetter、getterメソッドを直接生成し、thisキーワード
  • を追加できます.
  • thisキーワードは、メンバー変数またはメンバーメソッドの静的メンバーを呼び出し、静的メソッドではthisおよびsuperキーワードを使用できない場合、クラスの参照および呼び出し構造メソッド
  • を返すこともできる.
    Javaの静的内部クラス
    静的内部クラスはstatic修飾の内部クラスであり、この内部クラスの特徴は:
  • 静的内部クラスは、外部クラスの非静的メンバーに直接アクセスすることはできないが、new外部クラス()を通過することができる.メンバーのアクセス方法
  • 外部クラスの静的メンバーが内部クラスのメンバー名と同じ場合、「クラス名.静的メンバー」から外部クラスの静的メンバーにアクセスできます.外部クラスの静的メンバーが内部クラスのメンバー名と異なる場合、「メンバー名」を使用して外部クラスの静的メンバー
  • を直接呼び出すことができます.
  • 静的内部クラスのオブジェクトを作成する場合、外部クラスのオブジェクトを必要とせず、内部クラスオブジェクト名=new内部クラス()を直接作成できます.

  • 継承
  • 継承の概念:クラスとクラスの関係
  • 継承の利点:1)子クラスが親クラスのすべての属性とメソッド(private修飾の無効な)を持つ2)実装コード再現構文規則:class子クラスextends親クラス{}メソッドの書き換え:サブクラスは親の継承に満足せず、自分の内容を書き換え、書き換え後にサブクラスメソッド構文規則を優先的に呼び出す:戻り値、タイプ、メソッド名パラメータタイプの数は親の統合メソッドと同じである.継承初期化順序の書き換え:親属性初期化>親構築方法>子属性初期化>子構築方法0 superキーワード:
  • は、親オブジェクトを表すオブジェクトの内部で使用されます.
  • 親のプロパティ:super.age;
  • 親へのアクセス方法:super.eat(); superの適用:サブクラスの構築方法では、親クラスの構築方法を呼び出す必要があります.サブクラスのコンストラクションメソッドに親を呼び出すコンストラクションメソッドが表示されていない場合、システムはデフォルトで親を呼び出すパラメータなしコンストラクションメソッドを呼び出します.表示される呼び出し構造メソッドの場合は、サブクラスの構造メソッドの最初の行にある必要があります.子クラス構築メソッドに呼び出した親クラスの構築メソッドが表示されず、親クラスにもパラメータのない構築メソッドがない場合、コンパイルにエラーが発生します.Objectクラス:誰を継承したクラスがObjectクラスtoString()メソッドを継承したかを識別しない:ObjectクラスでtoString()メソッドを定義したときに返されるオブジェクトのハッシュコード(オブジェクトアドレス文字列)は、toString()メソッドを書き換えることでオブジェクトの属性equals()メソッドを表すことができる:オブジェクトの参照が同じメモリアドレスを指すかどうかを比較する.注意:2つのオブジェクトを比較するequals()メソッドは適用されません.新しいオブジェクトを作成すると、メモリに新しいストレージアドレスが作成されます.したがって、オブジェクトのプロパティが一致しても等しくありません.オブジェクトの特定のプロパティ値を比較するには、equals()メソッドを書き換えてgetClass()戻りクラスオブジェクトを比較する必要があります.**getClass()戻りはクラスオブジェクト:**記述クラスのコード情報です.クラスの属性はどれらがあるか、タイプは何なのか、変数名は何なのか、メソッド名は何なのか、さらに注目されているのはクラスのコード情報作成オブジェクト名がクラスのオブジェクトを返すことである:注目されているのはオブジェクトの属性が情報に値するか、あるいはこのオブジェクトデータの情報
  • である.
    マルチステート
    多態:対象の多種の形態を指すのは主に引用多態、方法多態継承が多態の実現基礎であり、子親類に継承関係があることを忘れないでください.マルチステートプロパティ:一、参照マルチステート
  • 親参照は、このクラスのオブジェクトAnimal obj 1=new Animal()を指すことができる.
  • 親参照は、子オブジェクトAnimal obj 2=new Dog()を指すことができる.ただし、親オブジェクトDog obj 3=new Animal();エラー
  • 二、方法多態
  • 種類のAnimalでeat()メソッドを定義し、文(動物には食べる能力がある)を出力します.サブクラスDogでeat()メソッドを書き換え、文(犬は肉を食べている)を出力します.では、クラスmain関数をテストし、obj 1.eat()であれば、親メソッドを呼び出します.obj 2でeat()メソッドを呼び出すと、サブクラスのメソッド
  • が呼び出される.
  • には、親Animalを継承する子Catを作成する場合もあるが、Catには継承のeat()メソッドは書き換えられない.次に,テストクラスmain関数にサブクラスオブジェクト,Animal obj 3=new Cat()を作成する.次にobj 3を呼び出す.eat(); では、結果として呼び出すのは、子が親を継承する方法である.(出力結果:動物は食べる能力がある)
  • 最後の特殊な場合、多態の特性は使用できない.サブクラスに独自のメソッドpublic void watchDoor()を追加すると、出力文(犬がドアを見る能力を持っている)が含まれます.では,テストクラスのmain関数(オブジェクトAnimal obj 2=new Dog()を先に定義しなければならない)ではobj 2を用いることができない.watchDoor()は、親の参照から子を呼び出すことができない方法である.