web-dev-qa-db-ja.com

oopの状態と動作を持つオブジェクト

オブジェクトには動作と状態、またはそれらの1つだけがあるという用語を聞き続けています。しかし、違いは何ですか、それはどういう意味ですか。誰かが例を挙げていただければ、本当にありがたいです。

17
Mythriel
  • ランプは対象です。
  • ランプの「状態」:オンとオフ。
  • ランプの「動作」:オンとオフを切り替えます。

プログラミングでは、「フィールド」で状態を宣言し、「メソッド」などで動作を宣言します。

読んで学ぶ オブジェクト指向

31
bong bang
class Door {
  boolean isOpen;

  void close(){
    isOpen = false;
  }
}

この単純なスニペットを見てください。クラスDoorがあり、stateisOpen-変数がこのドアの現在の状態を記述します。メソッドcloseそれはドアのbehaviourであり、それを呼び出すと、オブジェクトの現在の状態を変更します。

オブジェクト指向プログラミングに関する初心者向けの本を読むことをお勧めします: Head First Object-Oriented Analysis and Design 。あなたがそれを読むならば、あなたはより良い理解を得る。

9
mishadoff
abstract class Animal
{
   int age;
   abstract void Run();
}

class Tiger:Animal
{
    override void Run()
    {
      //something.
    }
}

main()
{
     Tiger t1 = new Tiger();
     Tiger t2 = new Tiger();
     t1.age = 25;
     t2.age = 10;
}

これで、2つのTigerオブジェクトが作成されました。 Tiger can Run。これがオブジェクトTigerの動作です。 t1 age25およびt2 age10t1.age, t2.ageはオブジェクトの状態です。

お役に立てれば。

5
Sandeep

オブジェクトは、メソッドとフィールドによって定義されます。

フィールドまたは状態は、オブジェクト内の現在の状態と考えることができます。バナナの状態は、その形、色、サイズになります。方法や行動は、その作用について考えることができます。バナナの場合、熟しているか乾燥しているかが行動になります。

3
user3666132