1 / 13

Arv

Arv. Klassrelationer. Klasser kan använda sig av varandra. Användningen innebär att klasserna blir beroende av varandra. Ändring i en klass kan påverka funktionaliteten i andra. Allmänt beroende kallas dependency. Klassrelationer. Det finns tre speciella kategorier av beroenden;

orson-cote
Télécharger la présentation

Arv

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

  2. Klassrelationer • Klasser kan använda sig av varandra. • Användningen innebär att klasserna blir beroende av varandra. • Ändring i en klass kan påverka funktionaliteten i andra. • Allmänt beroende kallas dependency

  3. Klassrelationer • Det finns tre speciella kategorier av beroenden; • Anropa metoder – association • Ha objekt som attribut – komposition • Dela på attribut och metoder - arv

  4. Association import java.awt.Polygon; public class Triangle { … private void draw() { DrawingPaper paper = DrawingPaper.getPaper() … paper.fill(new Polygon(xpoints, ypoints, 3)); … } }

  5. Komposition public class Picture { private Square wall; private Square window; private Triangle roof; private Circle sun; public Picture() { //initialisera attributen } … }

  6. Problemet • Klasserna Square, Triangle och Circle i shapes-exemplet i boken är ganska lika.-Nästan samma attribut-Nästan samma metoder-Mycket dubbel kod • Onödigt arbete • Onödigt mycket kod • Fel måste fixas på många ställen • Ändringar och tillägg måste göras på många ställen • Inte flexibelt

  7. Lösningen = Arv • Definiera gemensamma attribut och metoder en enda gång i en superklass • Ärva dessa till nya subklasser • Lägg specifika attribut och metoder i subklasserna • Subklassen är en mer specifik version av superklassen • Varje superklass kan ha många subklasser

  8. Härleda subklasser i Java • Det reserverade ordet extends används för att åstadkomma arv • I Java finns bara enkelt arv, varje subklass kan ha högst en superklass. • Alla klasser ärver från klassen Object (inbyggd) • Förälder – Barn, Basklass – Härledd klass, Superklass - Subklass

  9. Triangle extends Figure public class Triangle extends Figure { //Attribut som bara tillhör Triangle //De som kommer från Figure ”skrivs in” //Konstruktorer //Metoder för Triangle //De som kommer från Figure ”skrivs in” }

  10. Triangle extends Figure public class Triangle extends Figure { private int height; private int width; /** * Create new triangle with default height and width. */ public Triangle() { super(); // Här tilldelas triangeln superklassens egenskaper height = 30; width = 40; draw(); } … }

  11. Klasshierarkier • Subklasser kan i sin tur ha subklasser • God klassdesign placerar gemensamma egenskaper så högt som möjligt i hierarkin • God klassdesign lägger bara till ett fåtal nya attribut och metoder åt gången • Klasshierarki måste ofta modifieras och utökas • Ingen generell design duger överallt

  12. Klassen Object • Alla klasser härleds från Object • Om inget arv anges är klassen automatiskt subklass till Object • Klassen Object är rot i alla hierarkier

  13. Sammanfattningsvis • Arv tillåter att speciella klasser skapas på ett enkelt sätt • Tre typer av beroenden;1) Arv – hårt bundet2) Komposition3) Association – löst bundet

More Related