De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile."— Transcript van de presentatie:

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

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

3 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.

4 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);

5 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

6 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

7 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); }

8 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.

9 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 ;

10 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 ;

11 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;

12 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)

13 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) { }

14 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)


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

Verwante presentaties


Ads door Google