Introductie
Overzicht
Java
Classes en objecten
Programmeren in Java 3 W. Oele
2 september 2007
W. Oele Programmeren in Java 3
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Programmeren in Java 3 voor deeltijdstudenten
Kop van Zuid Rotterdam, 3 juni 2007
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Even voorstellen
Naam: Wessel Oele(31) Docent bij opleiding technische informatica Kamer: I210 (tweede verdieping, links de gang in) Email:
[email protected] Website: http://med.hro.nl/oelew
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
Voorkennis
werken met variabelen methodes arrays strings if/else en switch constructies loops public, private en protected
W. Oele Programmeren in Java 3
De constructor
Variabelen
Introductie
Overzicht
Java
Onderwerpen infprog03dt
infprog03dt: objectori¨entatie: pointers classes en objecten interfaces class deriving method overriding abstract classes interfaces polymorphisme
W. Oele Programmeren in Java 3
Classes en objecten
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
formaliteiten
Modulecode: infprog03dt Beheerder: niemand Leermiddelen: boek: Schaum’s outlines boek: Introduction to Java programming dictaat Jeroen Fokker (UU) editors zoals Emacs, Jedit, netbeans of andere hersenen en de wil deze te gebruiken houding
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Toetsing
Toetsing geschiedt middels ´e´en programmeeropdracht: persoonlijk maken, samenwerken toegestaan demonstreren en mondeling verdedigen in de les geen deadline, veel later/eerder verdedigen toegestaan niet inleveren per e-mail geen tentamen
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Deze les
korte introductie in programmeertalen en paradigma’s objecten en classes structuur van een class relatie met classes instanti¨eren/aanmaken structuur van objectgeori¨enteerde programma’ s constructoren
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Paradigma’s
Programmeertalen zijn gebaseerd op een bepaalde gedachte: Imperatieve talen (Fortran, Pascal, C, C++, Java) Functionele talen (Haskell, Prolog, Gopher) Objectgeori¨enteerde talen (Smalltalk, Object Pascal, C++, Java)
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Imperatieve talen Uit het Latijn: imperare=bevelen Een programma bestaat uit een aantal bevelen/instructies/commando’s druk iets af op het scherm lees iets van de gebruiker (invoer) reken iets uit schrijf antwoord naar het het scherm enzovoorts
Voorbeelden: Fortran, C, C++, Pascal, Java, Basic, APL, C#, J#, e.v.a. Bij imperatieve programmeertalen vertel je de computer van stap tot stap wat deze moet doen. W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Variabelen
Functionele talen
Veelal gebaseerd op een bepaalde wetenschappelijke discipline Logica: Prolog Lambda calculus: Haskell
Voornamelijk gebruikt in het wetenschappelijk onderzoek
W. Oele Programmeren in Java 3
Introductie
Overzicht
Java
Classes en objecten
De constructor
Prolog We vertellen aan de computer: Een weg heeft een begin en een einde Je kunt over een weg rijden en lopen Er ligt een weg tussen: Hogeschool en Eendrachtsplein Eendrachtsplein en centraal station Centraal station en Hofplein
We vragen aan de computer of je van de hogeschool naar het Hofplein kunt lopen. . . Antwoord van de computer: ”yes!” Kun je lopen over het centraal station? Antwoord: ”no!” W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Objectgeori¨enteerde talen
Gedachte: Deel een programma op in losse modules, zgn. objecten Objecten: Functioneren zoveel mogelijk op zichzelf Nemen ieder een klein stukje van de functionaliteit voor hun rekening Vormen in combinatie met elkaar een programma Kunnen hergebruikt worden in andere programma’s Voorbeelden: Smalltalk, Object Pascal, C++, Java
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Variabelen
Java leren
droge conceptuele kennis van de taal is belangrijker dan grafische bling bling geavanceerde ontwikkelomgevingen werken pas indien men het bovenstaande respecteert onderscheidt twee zaken: de regels van de taal de denkwijze van het programma (algoritme) onafhankelijk van de taal vaak uitgedrukt in wiskunde tijdloos
W. Oele Programmeren in Java 3
Introductie
Overzicht
Java
Classes en objecten
De class
vormt een recept voor een object schrijfwijze: public class classnaam { class variabelen constructoren methodes }
W. Oele Programmeren in Java 3
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
Voorbeeld public class vierkant { /********VARIABLES***********/ private int zijde; /********CONSTRUCTORS********/ public vierkant() { zijde=1; } /********METHODS*************/ public void printoppervlakte() { System.out.println("oppervlakte: "+(zijde*zijde)); } } W. Oele Programmeren in Java 3
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Classes en objecten
De klasse is het recept, de taart(en) het object source public class x { .......... }
W. Oele Programmeren in Java 3
geheugen ⇒
object x1 object x2 object x3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
Een object aanmaken
Gegeven de klasse vierkant In een (methode van een) andere klasse: vierkant v = new vierkant(); vierkant w = new vierkant(); vierkant x = new vierkant(); In het algemeen: Object x = new Object();
W. Oele Programmeren in Java 3
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
In het geheugen
W. Oele Programmeren in Java 3
v ⇒
vierkant object
w
⇒
vierkant object
x
⇒
vierkant object
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Voorbeeld
public class application { public static void main(String[] args) { int a=5; String naam=’’Wessel’’; ......... vierkant x=new vierkant(); ......... }
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
In het geheugen
a
⇒
5
naam
⇒
Wessel
x
⇒
vierkant object
W. Oele Programmeren in Java 3
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Een object vernietigen simpelweg de variabele die naar het object verwijst gelijk maken aan null:
x
⇒
vierkant object
x=null;
x
⇒
W. Oele Programmeren in Java 3
..............
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
De constructor
is een bijzondere methode heeft dezelfde naam als de klasse geeft per definitie niets terug(void) wordt uitgevoerd zodra een object wordt aangemaakt heeft toegang tot alle variabelen in de klasse mag alle methodes van de klasse aanroepen gebruik je om bij het instanti¨eren: variabelen een waarde te geven dingen te controleren
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Voorbeeld
public class vierkant { /********VARIABLES***********/ private int zijde; /********CONSTRUCTORS********/ public vierkant() { zijde=1; } ................
Bij het instanti¨eren wordt de variabele zijde op 1 gezet.
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
In het geheugen
vierkant x = new vierkant();
x
W. Oele Programmeren in Java 3
⇒
vierkant zijde ⇒ 1
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Constructor overloading
Een klasse: kan meerdere constructoren hebben constructoren: kunnen verschillende soorten parameters hebben kunnen verschillende aantallen parameters hebben gebruiken om af te wijken van standaard waarden
Bovenstaand concept: heet overloading werkt op dezelfde wijze bij normale methodes
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Voorbeeld
public class vierkant { /********VARIABLES***********/ private int zijde; /********CONSTRUCTORS********/ public vierkant() { zijde=1; } public vierkant(int van_buiten) { zijde=van_buiten; }
W. Oele Programmeren in Java 3
Classes en objecten
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Voorbeeld gebruik
public class application { public static void main(String[] args) { ......... vierkant x=new vierkant(); ......... vierkant y=new vierkant(12); }
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
In het geheugen
vierkant x = new vierkant(); vierkant y = new vierkant(12);
x
⇒
vierkant zijde ⇒ 1
y
⇒
vierkant zijde ⇒ 12
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Class vs. local variabelen
Class variabelen: bestaan zolang het object bestaat zijn toegankelijk voor alle constructoren zijn toegankelijk voor alle methodes Lokale variabelen: zitten in constructoren of methodes bestaan zolang de methode wordt uitgevoerd worden derhalve vernietigd zodra de methode eindigt
W. Oele Programmeren in Java 3
Variabelen
Introductie
Overzicht
Java
Classes en objecten
Vragen
Mag dit? .... vierkant x=new vierkant(); vierkant y=new vierkant(8); vierkant z; z=x; x=y;
W. Oele Programmeren in Java 3
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
Vragen
Mag dit? .... vierkant x=new vierkant(); vierkant y=new vierkant(8); vierkant z; z=x; x=y; Ja Geheugen?
W. Oele Programmeren in Java 3
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
Structuur van een klasse class declaratie public class Programma { variabelen int x; int y; constructoren public Programma(){......} methodes public void doe_iets(){........} } W. Oele Programmeren in Java 3
De constructor
Variabelen
Introductie
Overzicht
Java
Classes en objecten
De constructor
Structuur van grotere programma’ s
class a ........
class c ........
class b ..........
class d ........
W. Oele Programmeren in Java 3
class e main methode
Variabelen