0100 genomgång kap 4

Konstruktor

Konstruktorn har samma namn som klassen. Konstruktorhuvudet ser ut som ett metodhuvud som saknar returdatatyp. Ett objekt av klassen skapas med anropet:

  new KlassNamn();

Exempel på konstruktor

  public KlassNamn()
  {

  }

Exempel

  public class CrabWorld extends World
  {
      public CrabWorld()
      {
          super(560, 560, 1);
          Crab myCrab = new Crab();
          addObject(myCrab, 250, 200);
      }
  }

Variabel

Exempel Följande deklarerar en variabel tal som kan innehålla heltal.

  int tal; 

Följande deklarerar en variabel som heter isTimeLeft av datatypen boolean.

  boolean isTimeLeft; 

Följande deklarerar en variabel som heter myCrab och som kan innehålla en referens till ett objekt av typen Crab.

  Crab myCrab; 

Datatyper

primitiv datatyp

  int - heltal
  boolean - true eller false
  double - decimaltal

klassdatatyp

  Crab
  String
  CrabWorld
  Actor
  "alla klasser"

Tilldelning

  int heltal;
  heltal = 30; //heltal innehåller värdet 30

  boolean isTimeLeft;
  isTimeLeft = true;

  Crab myCrab;
  myCrab = new Crab();    

Ovan innehåller myCrab en referens till objektet, inte själva objektet.

Spara världen

Spara världen genom att högerklicka på världens bakgrundsbild och välj

  Save the world

Klassen GreenfootImage - animering

  GreenfootImage image1 = new GreenfootImage("fil-1.png");
  GreenfootImage image2 = new GreenfootImage("fil-2.png");
  //växla bild
  if (getImage() == image2)
  {
      setImage(image1);
  }
  else
  {
      setImage(image2);
  }

Exempel - animering i klassen Hero

  public class Hero extends Actor
  {
      //objektvariabler - egenskaper
      private GreenfootImage image1;
      private GreenfootImage image2;

      //konstruktor
      public Hero(String nameOfHero)
      {
          image1 = new GreenfootImage("fil-1.png");
          image2 = new GreenfootImage("fil-2.png");

      }

      //metoder
      public void act()
      {
          //växla bild
          if (getImage() == image2)
          {
              setImage(image1);
          }
          else
          {
              setImage(image2);
          }
      }
  }

Egenskaper

En klass består av tre delar egenskaper (eng. field), konstruktor och metoder. Det finns två typer av objektvariabler. Egenskaper som tillhör ett objekt kallas objektvariabler. Om de istället tillhör klassen kallas de klassvariabler.

Tre sorters variabler

egenskaper Egenskap är en variabel som deklareras i klassen, i klassens kropp.

lokal variabel En lokal variabel deklareras i en metod eller i konstruktorn. Mer precist i metodkroppen eller i konstruktorkroppen.

parameter En parameter är en variabel som deklareras i metodhuvudet.

Livsläng för variabler

Exempel: egenskap, konstruktor, …

  public class Hero extends Actor
  {
      private String name;
      private int health;

      public Hero(String nameOfHero)
      {
          name = nameOfHero;
          health = 8;
      }

      public void act()
      {
          //code omitted
      }
  }

Klassdiagram visas nedan.

Hero

  • private String name
  • private int health
  1. public void act()

Anropet new Hero("Ada"); ger nedanstående objekt.

: Hero

  • name "Ada"
  • health 8

Objektdiagram visas ovan.

Ada Lovelace var världens första programmerare.