De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Platformonafhankelijk programmeren

Verwante presentaties


Presentatie over: "Platformonafhankelijk programmeren"— Transcript van de presentatie:

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


Download ppt "Platformonafhankelijk programmeren"

Verwante presentaties


Ads door Google