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; data type + lijst variabelen door Java al gedefinieerde datatypen Primitieve datatypen
Declaratie en initialisatie primitieve variabelen int i ; i i i = 0 ;
Specifieke methoden: 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 ??? teller1 = new Teller () ; aantal Tellerobject
Declaratie en initialisatie objectvariabelen: shortcut Teller teller1 = new Teller () ; Tellerobject teller1 aantal
objectvariabelen: NULL waarde teller1 = null ; Tellerobject teller1 aantal
Teller teller2 = new Teller (100) ; Nog een teller Teller teller2 = new Teller (100) ; Tellerobject teller2 100 aantal
Let op toekenningen!!! teller1 teller2 100 teller1 = teller2 ;
Verdere kenmerken van OOP Inheritance = overerving Polymorphism = veelvormigheid Encapsulation = inkapseling
Inkapseling class Teller { private int aantal; public Teller () { } public Teller (int beginWaarde) { aantal = beginWaarde; public void verhoog () { … public void zetTerug () { public int geefWaarde () { niet bereikbaar vanuit andere programma-eenheden wel bereikbaar vanuit andere programma-eenheden
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 () { public int geefWaarde () { return aantal;
Meerdere klassen class Teller { private int aantal; public Teller () { } public Teller (int beginWaarde) { aantal = beginWaarde; public void verhoog () { aantal = aantal + 1; public void zetTerug () { 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 (); t2.verhoog (); }
Datatypen int double, float boolean char - 2.147.483.648 …. 2.147.483.647 double, float getallen met komma: ‘floating point notatie’, bijv. 560e-1 boolean true, false char ‘a’, ‘A’, ‘8’, ‘%’, ‘ ’
Voorbeelden int i = 2; j = 4; double k = 1.0; i = i * j; i = k / 2; k = i / 4; i =+ 2;
Binaire optelling 00111010 + 00011011 01010101
Binaire breuken 101.101 1 x 1/8 = 1/8 0 x ¼ = 0 1 x ½ = ½ 1 x 1 = 1 5 5/8
Weergaven van integers Two’s complement notatie Excess notatie
Two’s complement notatie bitpatroon 011 010 001 000 111 110 101 100 sign bit weergegeven waarde 3 2 1 -1 -2 -3 -4
Excess four notatie bitpatroon weergegeven waarde 111 3 110 2 101 1 100 011 010 001 000 sign bit weergegeven waarde 3 2 1 -1 -2 -3 -4