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
- public void act()
Anropet new Hero("Ada");
ger nedanstående objekt.
: Hero
- name "Ada"
- health 8
Objektdiagram visas ovan.