Algoritmiek

advertisement
Algoritmiek
Object-georiënteerd Programmeren
Klassen en objecten; constructoren en methoden;
integers: notaties.
Hoorcollege 3 - Ma. 18 sept. 2006
L.M. Bosveld-de Smet
Te behandelen onderwerpen

Object-georiënteerd Programmeren



Klassen en Objecten
Constructoren en Methoden
Integers




Rekenen met
Two’s Complement Notation
Excess Notation
Floating-point Notation (week 4)
Wat is een object?
Beschrijving kenmerken blikje




Drank: pepsi
Hoeveelheid: 250 ml
Temperatuur: 6 0C
…
Wat kun je ermee?
Wat kun je ermee?
Beschrijving operaties
uitvoerbaar door of op blikje







Openen
Leegdrinken
Leeggieten
Koelen
Weggooien
Ontploffen
…
Beschrijving van alle blikjes
i.h.a

Algemene kenmerken en operaties



Klasse
Instantievariabelen
Instantiemethoden
Klasse en object
Voorbeeld



Telonderzoek in diverse wijken van een
stad
Consumentenonderzoek in winkels
Verkeersonderzoek
Java: klasse Teller
class Teller {
.
.
.
}
Tellerstructuur: toestand en
gedrag
class Teller {
int aantal;
void verhoog () {
…
}
void zetTerug () {
…
}
int geefWaarde () {
…
}
}
Instance variable
Beschrijving van het gegeven
dat elk object met deze
structuur bevat
Methods
Beschrijving van het gedrag dat
elk object met deze structuur
heeft
Objecten van type Teller
Teller teller1, teller2;
int i, j;
double k;
char c;
door Java al gedefinieerde
datatypen
Primitieve datatypen
data type + lijst variabelen
Declaratie en initialisatie
primitieve variabelen
int i ;
i
i=0;
i
0
Constructoren
class Teller {
int aantal;
Teller () {
aantal = 0;
}
Teller (int beginWaarde) {
aantal = beginWaarde;
}
void verhoog () {
…
}
void zetTerug () {
…
}
int geefWaarde () {
…
}
}
Specifieke methoden:
constructoren
Declaratie en initialisatie
objectvariabelen: 2 staps
Teller teller1;
teller1 = new Teller () ;
teller1
???
aantal
0
Tellerobject
Declaratie en initialisatie
objectvariabelen: shortcut
Teller teller1 = new Teller () ;
Tellerobject
teller1
aantal
0
objectvariabelen: NULL
waarde
teller1 = null ;
Tellerobject
teller1
aantal
0
Nog een teller
Teller teller2 = new Teller (100) ;
Tellerobject
teller2
aantal
100
Let op toekenningen!!!
teller1
teller2
teller1 = teller2 ;
0
100
Verdere kenmerken van OOP



Inheritance = overerving
Polymorphism = veelvormigheid
Encapsulation = inkapseling
Inkapseling
class Teller {
private int aantal;
niet bereikbaar vanuit andere
programma-eenheden
public Teller () {
aantal = 0;
}
public Teller (int beginWaarde) {
aantal = beginWaarde;
}
public void verhoog () {
wel bereikbaar vanuit andere
…
programma-eenheden
}
public void zetTerug () {
…
}
public int geefWaarde () {
…
}
}
Klasse Teller: definitie
class Teller {
private int aantal;
public Teller () {
aantal = 0;
}
public Teller (int beginWaarde) {
aantal = beginWaarde;
}
public void verhoog () {
aantal = aantal + 1;
}
public void zetTerug () {
aantal = 0;
}
public int geefWaarde () {
return aantal;
}
}
Meerdere klassen
class Teller {
private int aantal;
public Teller () {
aantal = 0;
}
public Teller (int beginWaarde) {
aantal = beginWaarde;
}
public void verhoog () {
aantal = aantal + 1;
}
public void zetTerug () {
aantal = 0;
}
public int geefWaarde () {
return aantal;
}
}
class TellerStanden {
public static void main (String[] args) {
//creëer 2 tellers
Teller t1 = new Teller ();
Teller t2 = new Teller (25);
//print de tellerstanden
System.out.println (t1.geefWaarde ());
System.out.println (t2.geefWaarde ());
//reset t2
t2.zetTerug ();
//verhoog t1 drie keer, t2 twee keer
t1.verhoog ();
t1.verhoog ();
t1.verhoog ();
t2.verhoog ();
t2.verhoog ();
//print de tellerstanden
System.out.println (t1.geefWaarde ());
System.out.println (t2.geefWaarde ());
}
}
Datatypen

int


double, float


getallen met komma: ‘floating point notatie’, bijv.
560e-1
boolean


- 2.147.483.648 …. 2.147.483.647
true, false
char

‘a’, ‘A’, ‘8’, ‘%’, ‘ ’
Voorbeelden






int i = 2; j = 4; double k = 1.0;
i = i * j;
i = 17 / 4; i = 17 % 4;
i = k / 2;
k = i / 4;
i =+ 2;
Binaire optelling
00111010
+ 00011011
01010101
Binaire breuken
101.101
1 x 1/8 = 1/8
0x¼=0
1x½=½
1x1=1
0x2=0
1x4=4
5 5/8
Weergaven van integers


Two’s complement notatie
Excess notatie
Two’s complement notatie
bitpatroon
weergegeven waarde
011
010
001
000
111
110
101
100
3
2
1
0
-1
-2
-3
-4
sign bit
Excess four notatie
bitpatroon
weergegeven waarde
111
110
101
100
011
010
001
000
3
2
1
0
-1
-2
-3
-4
sign bit
Download