1 / 13

Hoofdstuk 8.5

Hoofdstuk 8.5. Subklassen. Voortborduren op eerder gedaan werk. Eerste poging: “knip&plak”. class Twee { int x, y; int oud ( ) { return x+y; }. Drie. class Twee { int x, y; int oud ( ) { return x+y; }. int z;. +1;. }. int nieuw ( )

neva
Download Presentation

Hoofdstuk 8.5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hoofdstuk 8.5 Subklassen

  2. Voortborduren opeerder gedaan werk • Eerste poging: “knip&plak” class Twee { int x, y; int oud ( ) { return x+y; } Drie class Twee { int x, y; int oud ( ) { return x+y; } int z; +1; } int nieuw ( ) { return x+y+z; } versie-management problematiek }

  3. Voortborduren opeerder gedaan werk veel gedoe • Tweede poging: “doorverwijzen” class Twee { Twee t; int oud ( ) { return t.oud(); } Drie class Twee { int x, y; int oud ( ) { return x+y; } int z; } int nieuw ( ) { return t.x+t.y+z; } raar asymmetrisch }

  4. Voortborduren opeerder gedaan werk • Derde poging: “subklassen” class Twee : Twee { Drie class Twee { int x, y; int oud ( ) { return x+y; } int z; } int nieuw ( ) { return x+y+z; } }

  5. Subklassen • class Ruimte : UserControl • Ruimte is een subklasse van UserControl • UserControl is de superklasse van Ruimte • Elk Ruimte-object is tevens UserControl-object • Een Ruimte-object is een bijzonder geval van een UserControl-object

  6. Over-erving • Objecten van een subklasseerven variabelen en methoden&propertiesvan de superklasse CirkelGroei geërfd kleiner straal zelf gede-clareerd groter

  7. Klasse en subklasse class Bolletje { class KleurBol : Bolletje { int x, y, diam; Color kleur; void verf(Color k){ this.kleur = k; } void plaats(int x0, int y0){ this.x = x0; this.y = y0; } override void groei( ){ this.diam++; } void teken(Graphics g){ g.FillEllipse( new Brush(kleur) , x, y, diam, diam ); } virtual void teken(Graphics g){ g.DrawEllipse( Pens.Black , x, y, diam, diam ); } g.DrawEllipse( Pens.Black , x, y, diam, diam ); base.teken(g); } } Bolletje b = new Bolletje(); KleurBol k = new KleurBol(); b = k; b.plaats(10,20); k.plaats(10,20 ); b.teken(gr); b.groei ( ); k.verf( Color.Green ); b.teken(gr); k.teken(gr); k = b; b.verf( Color.Red );

  8. Virtual - Override A a = new B (); a . m( ); dit mag, alsclass B : A deze methodekomt uit klasse: • B als m virtual in A en override in B • A anders

  9. Superklassen in libraries • Button : ButtonBase • ButtonBase : Control super- superklasse superklasse

  10. Klasse-hiërarchie in Forms CommonDialog Component FileDialog ColorDialog Control Label TrackBar property vanContainerControl ButtonBase Button CheckBox f = new Form(); RadioButton b = new Button(); TextBoxBase TextBox t = new TextBox(); RichTextBox ScrollableControl ContainerControl f . Controls . Add(b); Form f . Controls . Add(t); UserControl Panel heeft eenControlparameter ListView TreeView

  11. Klasse-hiërarchie in Forms Object String Bitmap Graphics moeder vanalle klassen EventArgs PaintEventArgs MouseEventArgs KeyPressEventArgs Component CommonDialog Control Label TrackBar ButtonBase

  12. Voertuig Motor Voertuig Auto Vracht Wagen Motor Fiets Fiets Vliegtuig Boot Motor Boot Stoom Boot Zeil Boot Hiërarchie-ontwerp Vervoer middel ontwerpkeuze: motorfiets is meer motor dan fiets ontwerpkeuze: ondergrond gaatvoor motorisatie

  13. Hiërarchie-ontwerp Voertuig Vervoer middel • class Voertuig : Vervoermiddelclass Boot : Vervoermiddel Boot “is een”

More Related