Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.

Slides:



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

Van domeinklasse tot implementatie
PROS2 Les 11 Programmeren en Software Engineering 2.
Het type int Tekenen met Java operatoren
Klassen en objecten.
Hoofdstuk 6: Controle structuren
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
Hoofdstuk 2 Hallo, C# !.
De koektrommel of de grabbelton
Inleidend probleem Data structuur (hiërarchie van classes)
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
Hoofdstuk 10 Overerving.
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 8 Objecten en klassen.
CONTROLESTRUCTUREN (DEEL 2)
Oefeningen Hoofdstuk 3.
1 HOOFDSTUK 5 CONTROLESTRUCTUREN (DEEL 2) 5.1. INTRODUCTIE  Vervolg discussie omtrent gestructureerd programmeren  Introductie van de overblijvende controlestructuren.
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.
Java GUI nJava is platform-onafhankelijk nLook&feel past zich aan aan het platform new FileDialog(……).show();
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
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,
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Polymorphisme en Interfaces: inleiding
Hoofdstuk 3 Methoden om te tekenen.
Programma zonder window commandline interface. Commandline programma public static void main (String [ ] params) { System. out. println (“Hoi allemaal!”);
Hoofdstuk 12 Ontwerp van programma’s. Ontwerp van de GUI nStandaard in Applets: alle met add toegevoegde componenten komen naast elkaar (totdat de regel.
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Hoofdstuk 4 Nieuwe methoden. Tekenen g.drawRect(20,60,40,40); g.drawLine(20,60,40,40); g.drawLine(40,40,60,60); g.drawRect(70,60,40,40); g.drawLine(70,60,90,40);
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.
Reader en Writer Stream FileStream MemoryStream NetworkStream BufferedStream GZipStream CryptoStream TextWriter StreamWriter StringWriter BinaryWriter.
Hoofdstuk 2 Hallo, C# !. Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Eerste deeltentamen nNagekeken werk ligt voor in de zaal nNeem je eigen werk mee: in het college wordt het besproken nVragen over de beoordeling: in de.
1e Deeltentamen nNagekeken werk ligt voor in de zaal (alfabetisch op achternaam) nNeem het even mee, de uitwerking wordt in het college besproken nDiscussies.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 2 inleveropdrachten) college Tent. 1 Tent. 2 college prakt. 1 prakt. 2 prakt.
1 februari Web concepts formulieren. 2 File i/o (input) $filename = “FILE_IO.CSV” ;// naam van het bestand $filesize = filesize( $filename )
Bestanden Lezen Schrijven Afbeeldingen. Bestandstypen.txt.png eigen.
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Activity Bij het starten van een app:
Aanroep van een methode voert opdrachten uit in de body daarvan
2e Deeltentamen Nagekeken werk ligt voor in de zaal (alfabetisch op achternaam) Neem het even mee, de uitwerking wordt in het college besproken Discussies.
ISensorEventListener
Gameprogrammeren: Objecten en geheugen
Reader en Writer leest en schrijft bytes leest string en char
Gameprogrammeren: Lists en interfaces
Windows-applicatie using System.Windows.Forms; using System.Drawing;
vandaag èn vrijdag deadline maandag 12 dec.
Gameprogrammeren: Tiles in Tick Tick
Gameprogrammeren: Afsluiting
Gameprogrammeren: Herhalingen
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
OOS Object geOrienteerd Software-ontwerp - 5
Tinpro015b-les6 Templates.
Voorbeeld: Simulatie van bewegende deeltjes
Arjan Egges Paul Bergervoet Wouter van Toll
Gameprogrammeren: Klassen en objecten
Digitale beeldverwerking
Eerste deeltentamen Nagekeken werk ligt voor in de zaal
Gameprogrammeren: Arrays
Transcript van de presentatie:

Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile

Opgave 2b nMet super.naam() roep je de oorspronkelijke versie aan van een methode die is hergedefinieerd in een subklasse

Opgave 2c nIn een lichtgewicht toolkit (zoals Swing) worden alle componenten door de library getekend. uvoordeel: meer componenten mogelijk unadeel: langzamer, groter programma nIn een zwaargewicht toolkit (zoals AWT) worden de componenten van het operating system gebruikt.

Opgave 2d } void paint (Graphics g) { int w, h; w = this.getWidth(); h = this.getHeight(); Graphics2D g2; g2 = (Graphics2D) g; g2.setStroke( new BasicStroke(10) ); g2.drawLine(0,0,w,h); g2.drawLine(0,h,w,0);

Opgave 2e nVan een abstracte klasse kun je geen nieuwe objecten maken uSommige beloofde methoden ontbreken uSommige methoden hebben geen body nJe kunt er wel een subklasse van maken

Opgave 2f nVoor een generic collection geef je bij de declaratie het type van de elementen op uVoordeel: type van de elementen die worden toegevoegd kan compile-time worden gecontroleerd uGeen run-time cast meer nodig bij het ophalen van elementen uit de collection

Opgave 3a n Wat merkt de gebruiker hiervan? uAan het begin wordt een plaatje ingelezen uit de file die aan het eind wordt weggeschreven. uHet plaatje blijft bewaard in een file tussen twee sessies class Drie extends Frame { Tekening t; String filenaam = “tekening.txt”; Drie() { t = new Tekening(); t.lees(filenaam); …… } …… void windowClosing(WindowEvent e) { t.schrijf(filenaam); System.exit(0); }

Opgave 3b nBetekenis van try { A } catch(Exception e){ B } Als er tijdens uitvoering van A een Exception optreedt wordt, in plaats van de resterende opdrachten, B uitgevoerd. nDit wordt hier gebruikt omdat dit verplicht is bij I/O-gerelateerde methoden, omdat tijdens I/O veel Exceptions kunnen optreden.

Opgave 3c class Punt { int x, y, d; boolean raak(int ax, int ay) { } return ax>=x–d/2 && ax =y–d/2 && ay<=y+d/2 ;

Opgave 3d&e class Tekening { char mode; Tekening() { } void paint(Graphics g) { } Punt zoek(int ax, int ay) { } List punten; List lijnen; Punt start; punten = new ArrayList (); lijnen = new ArrayList (); start = null; for (Punt p : punten) p.teken(g); for (Lijn ln : lijnen) ln.teken(g); if (start!=null) { g.setColor(Color.BLUE); start.teken(g); } for (Punt p : punten) if ( p.raak(ax,ay) ) return p; return null ;

Opgave 3f class Tekening { char mode; List punten; List lijnen; Punt start; void mouseMoved(MouseEvent e) { } switch (mode) { case ‘P’: break; case ‘L’: break; case ‘B’: break; } this.repaint(); punten.add( new Punt (e.getX(), e.getY() ) ); if (start==null) start=p; Punt p = this.zoek( e.getX(), e.getY() ); else if (p!=null) { lijnen.add( new Lijn(start,p) ); p=null; } if (p!=null) start=p;

Opgave 3f… class Tekening { char mode; List punten; List lijnen; Punt start; void mouseDragged(MouseEvent e) { } this.repaint(); start.verplaats( e.getX(), e.getY() ); if (mode==‘B’ && start!=null)

Opgave 3g class Tekening { char mode; List punten; List lijnen; Punt start; void schrijf (String naam) { } PrintWriter pw = new PrintWriter(new FileWriter(naam)); pw.println( “P ” + p.x + “ ” + p.y ); for (Punt p : punten) for (Lijn ln : lijnen) pw.println( “L ” + punten.indexOf(ln.begin) + “ ” + punten.indexOf(ln.eind) ); try { } catch (Exception e) { }

Opgave 3g… class Tekening { char mode; List punten; List lijnen; Punt start; void lees (String naam) { } BufferedReader br = new BufferedReader (new FileReader(naam)); try { } catch (Exception e) { } while ( (s=br.readLine()) != null ) { } Scanner scan = new Scanner(s); char c=scan.next( ).charAt(0); int x=scan.nextInt( ); int y=scan.nextInt( ); punten.add(new Punt(x,y)); lijnen.add(new Lijn(…, …)); if (c==‘P’) else punten.get(x)