‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries
Programma vandaag s 1e uur: –Bespreking “Basic Concepts Java” s 2e uur: –Bespreking rest hoofdstuk 2 –Bespreking hoofdstuk 3: Applets
‘Basic Concepts Java’ s Hoofdstuk 1 uit Mughal & Rasmussen, studieboek voor Java Certified Programmer: u ‘A Programmers Guide to Java Certification - A Comprehensive Primer’, K.A.Mughal & R.W.Rasmussen, Addison-Wesley, s aanvulling op Deitel & Deitel, hfst 1 en 2
1. Introductie s Basisbegrippen en concepten van OOP: –klasse –object (instantie) –variabele (veld) u primitieve of referentie –methode (operatie, verzoek, boodschap) –‘member’ = methode / variabele wathoe –contract (wat) versus implementatie (hoe)
Introductie - 2 s Heel veel NIET: –library, package –encapsulation, polymorfisme –exception,multi-threading –Java syntax –GUI, etc.
2. Klassen s in OOP worden abstracties gemodelleerd met klassen en objecten s lopend voorbeeld: de klasse en het object ‘stapel’ s contract: wat kan een object s implementatie: hoe wordt het gedaan
Contract voor een ‘stapel’ s 1. stapel instellen s 2. element toevoegen s 3. element weglaten s 4. kijken welke element bovenop ligt s 5. kijken of de stapel vol c.q. leeg is hoe s Vervolgens: hoe implementeer je dit? s [ encapsulation: scheiding wat - hoe ]
Abstracties en klassen - 1 s modelleren van eigenschappen & gedrag van objecten s klassen abstracter dan objecten wat betreft eigenschappen s klasse is categorie of blauwdruk s objecten zijn instanties van klassen
Abstracties en klassen - 2 s eigenschappen & gedrag geïncorporeerd in object s klassen bezitten zelf eventueel ook eigenschappen & gedrag s notatie in UML
UML notatie voor klassen
Java voorbeeld code
3. Objecten objectreferentie s object manipulatie dmv objectreferentie declaratie s stap 1: declaratie van de referentie CharStack stapel1, stapel2; object creatie s stap 2: object creatie, te koppelen aan de referentie stapel1 = new CharStack(10); stapel2 = new CharStack(5);
UML notatie voor objecten
Referenties s meestal 1 object referentie voldoende aliases s meer referenties: aliases assignment s toekennen van extra referentie via assignment stapel2 = stapel1; s garbage collection s garbage collection: geheugen vrij maken van object zonder referenties
Aliases
4. Instance members s member: variabele - methode s toestand (state): s toestand (state): elk object heeft een set van eigen instantievariabelen die de toestand van het object bepalen s gedrag s gedrag: elk object beschikt over alle methoden van de klasse s Java notatie: binary infix dot operator
Vier verschillende vormen van methoden aanroep
5. Static members s eigenschappen en gedrag specifiek en uitsluitend voor de klasse zelf s modifier: static s voorbeeld: object administratie s voorbeeld: methode main(..) per definitie static s UML notatie
Static Members
Java codering s geen gescheiden notatie s modifier static voor zowel variabelen als methoden s volgorde code conventie? –static variabelen vooraan –static methoden achteraan? –static main(..) wel
Toegang tot statics s op 2 manieren: –met de klassenaam: CharStack.getInstanceCount(); –met referentie van een object: stapel1.getInstanceCount();
definities
6. Overerving s Nieuwe klassen maken –overerving –aggregatie
UML voor overerving
Code fragment extend
Enkelvoudige overerving s slechts 1 superklasse mogelijk s alles wordt doorgegeven behalve private members s [ meervoudige overerving in Java mbv interfaces]
Definitie van een subklasse s uitbreidig en specialisatie van eigenschappen en gedrag s Voorbeeld 1.3 –variabelen protected ipv private –aanroep super in constructor
7. Aggregatie s nieuwe klassen samengesteld op basis van objecten van bestaande s voorbeeld: klasse CharStack maakt gebruik van de klasse Array s géén ‘contain’ relatie
UML notatie voor aggregatie
8. Kernpunten s alles in Java ingepakt in klassen s 2 soorten waarden: primitieven en referenties s referenties verwijzen naar objecten s object manipulatie via referentie s geen ‘contain’ relatie bij aggregatie s object opruiming: GC
9. Java programma’s s Stand-alone programma’s s Applets s [ Servlets ] s [ Java beans ]
10. Voorbeeld van een stand-alone Java programma s Wat zijn de hoofdelementen? s Hoe gaat het compileren en runnen?
Compileren en runnen s broncode met *.java extensie javac s compileren met javac s elke klasse krijgt een *.class bestand met klassenaam java s met interpreter java publieke klasse starten, s main s main methode wordt uitgevoerd
11. Voorbeeld: Java applet s Wat zijn de hoofdelementen ? s Hoe gaat het compileren en runnen van een applet ?
hoofdelementen s extend Applet s geen automatische uitvoering van main(..) maar init(..) en paint(..) s Graphics object tekent in het venster van de browser of appletviewer
compileren en runnen s compileren hetzelfde als gewone applikatie s runnen in browser via HTML pagina of via appletviewer s [ applets hebben beperkte mogelijkheden ivm beveiliging ] s voorbeeld in JBuilder
JBuilder bestanden vb 1.5
HTML code
Met de appletviewer