Processing
Børre Stenseth
Skisser >Objekter

Objekter

Hva

Objektbegrepet står sentralt i all moderne programmering. Erfaringsmessig er forståelsen av dette en terskel for mange ferske programmerere. Både begrepsapparatet og alle mulige varianter og finesser kan oppfattes som ganske komplekst. Det går imidlertid an å betrakte dette på en ganske enkel måte. Det vi trenger for å skaffe oss stor handlefrihet i arbeidet er i bunn og grunn ganske enkelt.

Begreper som du finner i dokumentasjonen til Processing Reference

Object, class, new, this
Relevante Skisser
objektdemo1

Vi ønsker i dette eksempelet å betrakte en kule som et objekt. En kule skal ha noen egenskaper (størrelse, farge og posisjon), og vi vil at den skal kunne tegne seg og finne ut om vi har klikket på den. Dette er i og for seg greitt og kan lett gjøres uten å blande nn objekt-begrepet. Vi vil i midlertid ha flere kuler, og da er det nyttig å ha en generell "kulebeskrivelse". Begrepsmessig vil vi lage en kulebeskrivelse, en klasse, og så vil vi lage flere forekomster, objekter, basert på denne beskrivelsen. Vi begynner med å beskrive en kule som en klasse:

_kule.pde
/*
 Dette er en klasse,class, 
 som beskriver et kuleobjekt
*/
class kule{
  float xPos,yPos;
  float radius;
  color farge;
  
  //-------------------
  // Dette er en konstuktør. 
  // Den kjøres nå vi ber om new kule()
  // Det er her vi setter opp det nye objektet
  // ved å tildele verdier til dette (this) nye objectet 
  // fra parametrene
  kule(float xPos,float yPos, float radius,color c){
    this.xPos=xPos;
    this.yPos=yPos;
    this.radius=radius;
    this.farge=c;
  }
  //------------------
  // denne kula tegner seg selv
  void tegn(){
    fill(farge);
    ellipse(xPos,yPos,2*radius,2*radius);
  } 
}

Så lager vi en fil som bruker kuleklassen.

_objektdemo1.pde
/*
Vi vil lage en scene med noen kuler
*/
// kulene, en array av kule-objekter
kule[] kuleListe;
void setup(){
  size(200,200);
  kuleListe= new kule[3];
  // plasseer nye kuleobjekter i kulelista
  kuleListe[0]= new kule(50,50,20,color(0,255,0));
  kuleListe[1]= new kule(50,100,20,color(0,0,255));
  kuleListe[2]= new kule(100,100,20,color(255,255,0));
}
void draw(){
  background(255,255,255);
  // be kulene om å tegne seg
  for(int ix=0;ix < kuleListe.length; ix++){
    kuleListe[ix].tegn();
  }
}

Resultatet blir slik:

objektdemo1
Skisser >Objekter