Download de presentatie
GepubliceerdLeopold Lemmens Laatst gewijzigd meer dan 9 jaar geleden
1
Platformonafhankelijk programmeren
Aan het werk met Java Platformonafhankelijk programmeren Begeleidend presentatiemateriaal Versie /6/2011 Aan het werk met Java Lieven Smits
2
Aan het werk met Java Lieven Smits
1 Inleiding Programmeren Java als programmeertaal Java als programmeeromgeving Handboek Oefeningen De werkomgeving op school Installatie op je eigen pc Een werkend programma Aan het werk met Java Lieven Smits
3
Aan het werk met Java Lieven Smits
broncode editor MijnProgramma.java programmeur compiler JVM MijnProgramma.class vertaalde machinecode gebruiker Aan het werk met Java Lieven Smits
4
Aan het werk met Java Lieven Smits
1.5 Handboek 120802_1/aan-het-werk-met-java.html Aan het werk met Java Lieven Smits
5
2 Objectgeoriënteerd programmeren
Abstractie Klassen en objecten Attributen en gegevenstypes Methodes Constructoren Statische attributen en methodes Primitieve gegevenstypes Referentietypes Aan het werk met Java Lieven Smits
6
Aan het werk met Java Lieven Smits
2.1 Abstractie Aan het werk met Java Lieven Smits
7
2.3 Attribuut: primitieve types
doel geheugen extreme waarden byte geheel getal 1 byte -128; +127 short 2 bytes ; int 4 bytes ; long 8 bytes ; +9 223 372 036 854 775 807 float vlottende komma +/ ; +/-2127 double +/ ; +/-21023 char alfabetisch karakter – boolean logische waarde waar of onwaar Aan het werk met Java Lieven Smits
8
Aan het werk met Java Lieven Smits
2.5 Constructoren student1 ? Aan het werk met Java Lieven Smits
9
Aan het werk met Java Lieven Smits
2.5 Constructoren student1 familienaam voornaam ? Aan het werk met Java Lieven Smits
10
2.6 Statische attributen en methodes
code van statische methode code van normale methode code van constructor objectattribuut (niet statisch) neen ja klassenattribuut (statisch) objectmethode (niet statisch) klassenmethode (statisch) constructor op naam constructor via this Aan het werk met Java Lieven Smits
11
Aan het werk met Java Lieven Smits
2.7 Primitief type getal Aan het werk met Java Lieven Smits
12
Aan het werk met Java Lieven Smits
3 Basisconstructies Opdrachten Veranderlijken Toekenningen Bewerkingen Invoer/uitvoer Uitdrukkingen Normaal verloop van een programma Aan het werk met Java Lieven Smits
13
Aan het werk met Java Lieven Smits
3.4 Bewerkingen bewerking gebruik betekenis >> uitdr >> getal verschuif de bits van uitdr zoveel plaatsen naar rechts als getal aangeeft << uitdr << getal verschuif de bits van uitdr zoveel plaatsen naar links als getal aangeeft uitdr >>> getal verschuif de bits van uitdr zoveel plaatsen naar rechts als getal aangeeft; hou geen rekening met het teken & u1 & u2 bereken bit per bit een logische EN tussen de bits van u1 en u2 | u1 | u2 bereken bit per bit een logische (niet-exclusieve) OF tussen de bits van u1 en u2 ^ u1 ^ u2 bereken bit per bit een exclusieve OF tussen de bits van u1 en u2 ~ ~uitdr bereken bit per bit de logische ontkenning (NIET) van de bits van uitdr Aan het werk met Java Lieven Smits
14
Aan het werk met Java Lieven Smits
3.6 Uitdrukking uitdrukking waarde x 1 -x -1 +x x+x 2 x%x x-15 -14 x=3 3 x/2 x/2.0 0.5 x+1 4 x=x+1 “Ja”+“va” Java Aan het werk met Java Lieven Smits
15
Aan het werk met Java Lieven Smits
4 Controlestructuren Voorwaardelijke opdrachten en uitdrukkingen Lusopdrachten Recursieve aanroep van methodes Aan het werk met Java Lieven Smits
16
Aan het werk met Java Lieven Smits
4.1 Voorwaarden Vergelijken van twee uitdrukkingen Logische bewerkingen Algemene vorm Voorwaardelijke uitdrukking Keuzeopdracht Aan het werk met Java Lieven Smits
17
Aan het werk met Java Lieven Smits
Vergelijkingen bewerking betekenis == is gelijk aan != is verschillend van < is strikt kleiner dan > is strikt groter dan <= is kleiner dan of gelijk aan >= is groter dan of gelijk aan Aan het werk met Java Lieven Smits
18
Aan het werk met Java Lieven Smits
Logische bewerkingen bewerking lees betekenis && en is waar als beide leden waar zijn || of is waar als minstens een van beide leden waar is ! niet keert de betekenis van het rechterlid om – waar wordt onwaar, onwaar wordt waar Aan het werk met Java Lieven Smits
19
Volgorde der bewerkingen
groep bewerkingstekens unaire operatoren + - ! vermenigvuldiging * / optelling, concatenatie + - ongelijkheid < > <= >= gelijkheid == != en && of || toekenning = Aan het werk met Java Lieven Smits
20
Aan het werk met Java Lieven Smits
4.2 Lusopdrachten De while-opdracht Genestelde lussen Rijen De for-opdracht De do-opdracht Iteraties en lusopdrachten afbreken; labels De afgekorte for-opdracht (‘for each’) Aan het werk met Java Lieven Smits
21
voer <reeks1> uit voer <reeks2> uit
start <voorwaarde> voldaan? ja neen voer <reeks1> uit voer <reeks2> uit einde Aan het werk met Java Lieven Smits
22
Aan het werk met Java Lieven Smits
start <voorwaarde> voldaan? neen ja <opdrachten> einde Aan het werk met Java Lieven Smits
23
Aan het werk met Java Lieven Smits
int[] score 17 13 20 11 13 score[0] score[1] score[2] score[3] score[4] Aan het werk met Java Lieven Smits
24
start ja neen einde voer <opdrachten> uit <voorwaarde>
voldaan? ja neen einde Aan het werk met Java Lieven Smits
25
<opdrachten voor>
start <opdrachten voor> <voorwaarde> voldaan? neen ja <opdrachten na> einde Aan het werk met Java Lieven Smits
26
Aan het werk met Java Lieven Smits
4.3 Recursie Voorbeeld Definitie Vervanging van een enkelvoudige recursie door een lusopdracht Aan het werk met Java Lieven Smits
27
Aan het werk met Java Lieven Smits
5 Overerving Subtypes Overerving van attributen en methodes Onderdrukken van methodes Abstracte klassen en methodes Interfaces De klasse Object, stamouder van alle anderen Aan het werk met Java Lieven Smits
28
Aan het werk met Java Lieven Smits
Object Legende: extends Bestaande klasse Number Short String MijnKlasse1 Zelfgemaakte klasse MijnKlasse3 MijnKlasse2 Aan het werk met Java Lieven Smits
29
6 Pakketten, afscherming en groepering
Gebruik van pakketten Tekst Invoer/uitvoer Toegang Aan het werk met Java Lieven Smits
30
Aan het werk met Java Lieven Smits
6.1 Gebruik van pakketten De klassenbibliotheek van de JRE import package Aan het werk met Java Lieven Smits
31
Aan het werk met Java Lieven Smits
6.2 Werken met tekst String en StringBuffer Methodes van de klasse String Methodes van de klasse StringBuffer Aan het werk met Java Lieven Smits
32
Aan het werk met Java Lieven Smits
6.3 Invoer/uitvoer Sequentiële en willekeurige toegang Bytes en characters Bestanden Geheugenstromen Aan het werk met Java Lieven Smits
33
Aan het werk met Java Lieven Smits
6.3 Invoer/uitvoer expressie betekenis abc alleen de streng “abc” a[bc] de letter a gevolgd door de letter b of c [A-Z] een hoofdletter a? de letter a of de lege streng a* een opeenvolging van letters a of de lege streng a+ een opeenvolging van letters a [A-Z] [a-zA-Z]* een hoofdletter, eventueel gevolgd door een willekeurig aantal letters . een willekeurig teken [0-9] [0-9] [0-9]? twee of drie cijfers Aan het werk met Java Lieven Smits
34
Aan het werk met Java Lieven Smits
tekstverwerker tekstbestand database engine gegevensbank Aan het werk met Java Lieven Smits
35
Aan het werk met Java Lieven Smits
6.4 Toegang Toegangsniveaus van attributen en methodes Toegangsniveaus van klassen en interfaces Inwendige klassen Statische inwendige klassen Gewone inwendige klassen Anonieme klassen Scope, visibility, lifetime, access Aan het werk met Java Lieven Smits
36
Aan het werk met Java Lieven Smits
6.4 Toegang character stream byte stream invoer Reader InputStream uitvoer Writer OutputStream character stream byte stream invoer BufferedReader BufferedInputStream uitvoer BufferedWriter BufferedOutputStream Aan het werk met Java Lieven Smits
37
Aan het werk met Java Lieven Smits
6.4 Toegang character stream byte stream gebruik DataOutputStream numerieke gegevens (en eventueel ook tekst) in bestanden opslaan DataInputStream dezelfde bestanden terug lezen ObjectOutputStream objecten (instanties van klassen) in bestanden opslaan ObjectInputStream LineNumberReader LineNumberInputStream regelnummers van een invoerstroom tellen en bijhouden PushbackReader PushbackInputStream eerste letter bekijken vóór de eigenlijke lezing ervan SequenceInputStream verschillende bytestromen achter elkaar plaatsen alsof het slechts één continue invoerstroom betrof Aan het werk met Java Lieven Smits
38
Aan het werk met Java Lieven Smits
6.4 Toegang character stream byte stream invoer CharArrayReader, StringReader ByteArrayInputStream uitvoer CharArrayWriter, StringWriter ByteArrayOutputStream Aan het werk met Java Lieven Smits
39
Aan het werk met Java Lieven Smits
6.5 Toegangsbeperking niveau sleutelwoord betekenis publiek public toegankelijk voor alle andere klassen beschermd protected toegankelijk voor subtypes van de huidige klasse en voor klassen binnen hetzelfde pakket pakket (geen) toegankelijk voor klassen binnen hetzelfde pakket privé private alleen toegankelijk binnen de huidige klasse Aan het werk met Java Lieven Smits
40
Aan het werk met Java Lieven Smits
7 Kwaliteit Exceptions Commentaar en documentatie Levenscyclus systeemontwikkeling Domeinklassen Architectuur Design patterns Unit testing Asserties Aan het werk met Java Lieven Smits
41
7.3 De documentatiegenerator Javadoc
tag betekenis @author gaat vooraf aan de naam van de auteur van een klasse of een onderdeel @version geeft het versienummer en/of de datum, meestal alleen van een hele klasse @exception signaleert dat een methode een bepaald type exception kan genereren, en wat daarvan de interpretatie is @throws synoniem @param gevolgd door de naam van een parameter, documenteert de betekenis van een methodeparameter. Nauw verwant hiermee @return legt de teruggeefwaarde van een methode uit @see verwijst naar de documentatie van een andere klasse of een ander klasseonderdeel Aan het werk met Java Lieven Smits
42
Aan het werk met Java Lieven Smits
7.5 Domeinklassen persoon klant bestelling Aan het werk met Java Lieven Smits
43
Aan het werk met Java Lieven Smits
7.5 Domeinklassen Aan het werk met Java Lieven Smits
44
Aan het werk met Java Lieven Smits
7.5 Domeinklassen Aan het werk met Java Lieven Smits
45
Aan het werk met Java Lieven Smits
7.6 Architectuur gui frontend backoffice domein database Aan het werk met Java Lieven Smits
46
7.7 Moduletest met JUnit methodenaam de test is geslaagd als …
assertEquals de twee parameters gelijke inhoud hebben (zelfs als het verschillende objecten zijn) assertNotEquals de twee parameters geen gelijke inhoud hebben assertSame de twee parameters objecten zijn met hetzelfde adres in het geheugen (dus niet alleen dezelfde inhoud) assertNotSame de twee parameters verschillende objecten zijn assertTrue de gegeven logische waarde false is assertFalse de gegeven logische waarde true is assertNull de gegeven objectreferentie null is (niet naar een object verwijst) assertNotNull de gegeven referentie naar een bestaand object verwijst fail nooit geslaagd – gelijkwaardig met assertTrue(false) Aan het werk met Java Lieven Smits
47
8 Bijzondere technieken
Annotaties Abstracte gegevenstypes Generische gegevenstypes Collections Aan het werk met Java Lieven Smits
48
8.2 Abstract gegevenstype ‘stack’
Object 5 push Object 5 Object 4 Object 4 Object 3 Object 3 Object 2 Object 2 Object 1 Object 1 aanwijzer aanwijzer Aan het werk met Java Lieven Smits
49
Aan het werk met Java Lieven Smits
8.4 Collections Collection Map Set List Queue SortedMap SortedSet Aan het werk met Java Lieven Smits
50
8.4 Collections: wachtlijn
1 2 3 4 remove() add() element() Aan het werk met Java Lieven Smits 50
51
Aan het werk met Java Lieven Smits
9 Webtoepassingen Servers, browsers, HTTP en HTML Servlets JSP Sessies Aan het werk met Java Lieven Smits
52
9.1 Servers, browsers en HTTP
verzoek browser webserver antwoord Aan het werk met Java Lieven Smits
53
9.2 Levenscyclus van een servlet
Aan het werk met Java Lieven Smits
54
Aan het werk met Java Lieven Smits
10 Grafische interfaces Swing-componenten Layout management Event handling Menus Graphics Applets MVC Tabellen en bomen Aan het werk met Java Lieven Smits
55
10.2 Component: coördinaten
Horizontaal (x) y x Verticaal (y) Aan het werk met Java Lieven Smits
56
10.2 Component: overerving
java.lang.Object java.awt.Component Legende: java.awt.Container extends Bestaande klasse java.awt.Window Zelfgemaakte klasse java.awt.Frame javax.swing.JFrame MijnVenster Aan het werk met Java Lieven Smits
57
10.4 Event-driven programming
klassieke, lineaire toepassing gebruiker run return open klik toets select klaar sluit gebeurtenis- gestuurde toepassing Aan het werk met Java Lieven Smits
58
10.7 Model/View/Controller
vraag toestand wijzig toestand meld wijziging gebruikershandeling Controller View bepaal/verander samenstelling Aan het werk met Java Lieven Smits
59
Aan het werk met Java Lieven Smits
10.8 Boomstructuur financiën uitgaven inkomsten arbeid kapitaal wonen vervoer kleding diversen verkoop werkgever huur klima gas+elek Aan het werk met Java Lieven Smits
60
Aan het werk met Java Lieven Smits
11 Beans Herbruikbare componenten: rolverdeling Gebruik van een bestaande bean Het bestandsformaat jar Zelf een bean ontwikkelen Properties Events Bound properties Constrained properties BeanInfo Aan het werk met Java Lieven Smits
61
12 Parallel programmeren
Begrippen Timers Animatie Threads Prioriteit en activering Synchronisatie Aan het werk met Java Lieven Smits
62
Aan het werk met Java Lieven Smits
x1 x0 x2 straal x cos(hoek) X y1 straal hoek y0 straal x sin(hoek) y2 Y Aan het werk met Java Lieven Smits
63
Aan het werk met Java Lieven Smits
uitvoerbaar tijd van sleep om of einde van andere reden nieuw inactief geblokkeerd start sleep of andere reden systeembeslissing yield dood actief einde van run Aan het werk met Java Lieven Smits
64
Aan het werk met Java Lieven Smits
uitvoerbaar tijd van sleep om of einde van andere reden nieuw inactief geblokkeerd start sleep of andere reden systeembeslissing yield krijg sleutel dood actief geblokkeerd op object einde van run synchronized Aan het werk met Java Lieven Smits
65
Aan het werk met Java Lieven Smits
uitvoerbaar tijd van sleep om of einde van andere reden nieuw inactief geblokkeerd start sleep of andere reden systeembeslissing yield krijg sleutel dood actief geblokkeerd op object einde van run synchronized wait notify notifyAll wachtkamer Aan het werk met Java Lieven Smits
66
Aan het werk met Java Lieven Smits
13 Databases SQL Java Database Connectivity Gegevens opvragen Gegevens wijzigen Transacties Gevorderde technieken Hibernate Aan het werk met Java Lieven Smits
67
14 Gedistribueerd programmeren
Algemene probleemstelling Webservices Call by value en call by reference Enterprise JavaBeans Spring Aan het werk met Java Lieven Smits
68
Aan het werk met Java Lieven Smits
presentatie zakelijke logica gegevensopslag Aan het werk met Java Lieven Smits
69
Aan het werk met Java Lieven Smits
presentatie opslag zakelijke logica gedistribueerde presentatie presentatie op afstand gedistribueerde logica opslag op afstand gedistribueerde opslag Aan het werk met Java Lieven Smits
70
Aan het werk met Java Lieven Smits
RekenServerImpl implements RekenServer public int bereken( int param) ClientKlasse ... int resultaat = bereken(17); gewone methodeaanroep in server-JVM gewone methodeaanroep in client-JVM RPC-infrastructuur (eventueel met ClientKlasseSkelet) RekenServerStub implements RekenServer public int bereken( int param) netwerkcommunicatie (afgeschermd van programmeur) Aan het werk met Java Lieven Smits
71
Aan het werk met Java Lieven Smits
14.4 EJB – stateful beans client 1 stateful bean: sessie 1 client 2 stateful bean: sessie 2 Aan het werk met Java Lieven Smits
72
Aan het werk met Java Lieven Smits
14.4 EJB – stateless beans pool van stateless beans client 1 client 3 client 2 Aan het werk met Java Lieven Smits
73
Aan het werk met Java Lieven Smits
15 Java op de GSM De beperkingen van Java Micro Edition Installatie van de programmeeromgeving Voorbeeldprogramma Installatie op de GSM Een spel Aan het werk met Java Lieven Smits
74
15.3 Toestanden van een MIDlet
active destroyed paused Aan het werk met Java Lieven Smits
75
Aan het werk met Java Lieven Smits
15.3 De rekenmachine cijfer cijfer INIT TERM1 TERM2 RESULT cijfer bewerking gelijkteken wis Aan het werk met Java Lieven Smits 75
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.