Platformonafhankelijk programmeren

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Practica Computerlinguistiek Tekst en uitleg:
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Het type int Tekenen met Java operatoren
VBA en VBS Een introductie.
Klassen en objecten.
Hoofdstuk 6: Controle structuren
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
Hoofdstuk 2 Hallo, C# !.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Verdieping Programmeren in Java - deel 1 college 6 mei 2001.
Inleidend probleem Data structuur (hiërarchie van classes)
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Hoofdstuk 10 Overerving.
Hoofdstuk 8 Objecten en klassen.
CONTROLESTRUCTUREN (DEEL 1)
Oefeningen Hoofdstuk 3.
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
6.1 Inleiding HOOFDSTUK 6 METHODEN
Hoofdstuk 3: Inleiding tot Java Applets
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
PHP & MYSQL LES 01 PHP BASICS. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 3: Werken met numerieke gegevens.
Inleiding tot programmeren
Introductie tot GoF patterns in Java
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
CONTROLESTRUCTUREN (DEEL 1)
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
tircms02-p les 1 Operating Systems practicum
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
JAVA: een platformonafhankelijke taal
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Polymorphisme en Interfaces: inleiding
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
INFITT01 - Internettechnologie WEEK 3. Programma Sessies JSP.
Java & het Web Programma: Databases (jdbc, JNDI, ORM, JPA)
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Java & het Web Programma: Sessies JSP. Stateless vs. Stateful(1) HTTP is stateless WAT IS STATELESS?
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Aanroep van een methode voert opdrachten uit in de body daarvan
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Hoofdstuk 9.2 Strings.
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Basis Gameprogrammeren
OOS Object geOrienteerd Software-ontwerp - 5
Voorbeeld: Simulatie van bewegende deeltjes
Aanroep van een methode voert opdrachten uit in de body daarvan
Unified Modeling Language
COINS Navigator 2.
ASP.NET MVC Web Development
COINS Navigator 2.
SQL Les February 2019.
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Platformonafhankelijk programmeren Aan het werk met Java Platformonafhankelijk programmeren Begeleidend presentatiemateriaal Versie 1.0 23/6/2011 Aan het werk met Java Lieven Smits

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

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

Aan het werk met Java Lieven Smits 1.5 Handboek http://hoger.deboeck.com/titres/ 120802_1/aan-het-werk-met-java.html Aan het werk met Java Lieven Smits

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

Aan het werk met Java Lieven Smits 2.1 Abstractie Aan het werk met Java Lieven Smits

2.3 Attribuut: primitieve types doel geheugen extreme waarden byte geheel getal 1 byte -128; +127 short 2 bytes -32 768; +32 767 int 4 bytes -2 147 483 648; +2 147 483 647 long 8 bytes 9 223 372 036 854 775 808; +9 223 372 036 854 775 807 float vlottende komma +/- 2-128; +/-2127 double +/- 2-1024; +/-21023 char alfabetisch karakter – boolean logische waarde waar of onwaar Aan het werk met Java Lieven Smits

Aan het werk met Java Lieven Smits 2.5 Constructoren student1 ? Aan het werk met Java Lieven Smits

Aan het werk met Java Lieven Smits 2.5 Constructoren student1 familienaam voornaam ? Aan het werk met Java Lieven Smits

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

Aan het werk met Java Lieven Smits 2.7 Primitief type getal Aan het werk met Java Lieven Smits

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

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

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

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

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

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

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

Volgorde der bewerkingen groep bewerkingstekens unaire operatoren + - ! vermenigvuldiging * / optelling, concatenatie + - ongelijkheid < > <= >= gelijkheid == != en && of || toekenning = Aan het werk met Java Lieven Smits

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

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

Aan het werk met Java Lieven Smits start <voorwaarde> voldaan? neen ja <opdrachten> einde Aan het werk met Java Lieven Smits

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

start ja neen einde voer <opdrachten> uit <voorwaarde> voldaan? ja neen einde Aan het werk met Java Lieven Smits

<opdrachten voor> start <opdrachten voor> <voorwaarde> voldaan? neen ja <opdrachten na> einde Aan het werk met Java Lieven Smits

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

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

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

6 Pakketten, afscherming en groepering Gebruik van pakketten Tekst Invoer/uitvoer Toegang Aan het werk met Java Lieven Smits

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

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

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

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

Aan het werk met Java Lieven Smits tekstverwerker tekstbestand database engine gegevensbank Aan het werk met Java Lieven Smits

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

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

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

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

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

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

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 van @exception @param gevolgd door de naam van een parameter, documenteert de betekenis van een methodeparameter. Nauw verwant hiermee is @return @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

Aan het werk met Java Lieven Smits 7.5 Domeinklassen persoon klant bestelling Aan het werk met Java Lieven Smits

Aan het werk met Java Lieven Smits 7.5 Domeinklassen Aan het werk met Java Lieven Smits

Aan het werk met Java Lieven Smits 7.5 Domeinklassen Aan het werk met Java Lieven Smits

Aan het werk met Java Lieven Smits 7.6 Architectuur gui frontend backoffice domein database Aan het werk met Java Lieven Smits

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

8 Bijzondere technieken Annotaties Abstracte gegevenstypes Generische gegevenstypes Collections Aan het werk met Java Lieven Smits

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

Aan het werk met Java Lieven Smits 8.4 Collections Collection Map Set List Queue SortedMap SortedSet Aan het werk met Java Lieven Smits

8.4 Collections: wachtlijn 1 2 3 4 remove() add() element() Aan het werk met Java Lieven Smits 50

Aan het werk met Java Lieven Smits 9 Webtoepassingen Servers, browsers, HTTP en HTML Servlets JSP Sessies Aan het werk met Java Lieven Smits

9.1 Servers, browsers en HTTP verzoek browser webserver antwoord Aan het werk met Java Lieven Smits

9.2 Levenscyclus van een servlet Aan het werk met Java Lieven Smits

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

10.2 Component: coördinaten Horizontaal (x) y x Verticaal (y) Aan het werk met Java Lieven Smits

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

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

10.7 Model/View/Controller vraag toestand wijzig toestand meld wijziging gebruikershandeling Controller View bepaal/verander samenstelling Aan het werk met Java Lieven Smits

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

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

12 Parallel programmeren Begrippen Timers Animatie Threads Prioriteit en activering Synchronisatie Aan het werk met Java Lieven Smits

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

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

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

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

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

14 Gedistribueerd programmeren Algemene probleemstelling Webservices Call by value en call by reference Enterprise JavaBeans Spring Aan het werk met Java Lieven Smits

Aan het werk met Java Lieven Smits presentatie zakelijke logica gegevensopslag Aan het werk met Java Lieven Smits

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

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

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

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

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

15.3 Toestanden van een MIDlet active destroyed paused Aan het werk met Java Lieven Smits

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