Difference between revisions of "Composition - 2017"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(Other Examples)
Line 28: Line 28:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
The Warren class declare an array of Rabbit. The constructor method for Warren creates each rabbit:
+
The Warren class declares an array of Rabbit. The constructor method for Warren creates each rabbit:
  
 
<syntaxhighlight lang="csharp">
 
<syntaxhighlight lang="csharp">

Revision as of 05:57, 26 May 2017

Composition is where if you delete the main class the subclasses are deleted along with it, or they no longer work.

  class Location
  {
    public Fox Fox;
    public Warren Warren;

    public Location()
    {
      Fox = null;
      Warren = null;
    }
  }

As you can see Location is creates an instance of Fox & Warren. So if you remove the instance of location then the Fox & Warren instances for that location will also be destroyed.

Other Examples

Warrens & Rabbits - warren creates and destroys rabbits:

class Warren
  {
    private const int MaxRabbitsInWarren = 99;
    private Rabbit[] Rabbits;
    private int RabbitCount = 0;

The Warren class declares an array of Rabbit. The constructor method for Warren creates each rabbit:

public Warren(int Variability)
    {
      this.Variability = Variability;
      Rabbits = new Rabbit[MaxRabbitsInWarren];
      RabbitCount = (int)(CalculateRandomValue((int)(MaxRabbitsInWarren / 4), this.Variability));
      for (int r = 0; r < RabbitCount; r++)
      {
        Rabbits[r] = new Rabbit(Variability);
      }
    }

So if a Warren is destroyed it will destroy all of the rabbits in that warren also.