0100 genomgång kap 4

Lärandemål

  • Kunna anropa en konstruktor med kod.
  • Känna till att en klass består av tre delar: egenskaper, konstuktor, och metoder.
  • Känna till att det finn tre sorters variabler: egenskaper, lokal variabel, och parameter.
  • Kunna deklarera tre sorters variabler.
  • Kunna använda variabler, bland annat ge dem värden.
  • Känna till primitiva datatyper och klassdatatyper.
  • Känna till livslängd för variabler.
  • Kunna läsa klass- och objektdiagram.
  • Kunna läsa dokumentationen för klassen GreenfootImage.
  • Kunna byta bild på ett objekt med hjälp av kod.

Genomgång

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.