SlideServe
Menu
Préférences
© SlideServe · v2026

Kapittel 8

monita avatar
14 diapositives · 319 Views · Sep 05, 2014

Kapittel 8. Arv. 8.1 Subklasser. Arv er å lage klasser som er basert på eksisterande klasser Arv er eit sentralt og viktig konsept i oo Som regel vil vi lage ein ny klasse som er ei spesialisering av ei anna Den nye klassen skal ha alt den andre har, pluss litt til

Kapittel 8 - slide 1
01 / 14Kapittel 8
1 / 17

Télécharger la présentation

Kapittel 8
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Kapittel 8 Arv

  2. 8.1 Subklasser • Arv er å lage klasser som er basert på eksisterande klasser • Arv er eit sentralt og viktig konsept i oo • Som regel vil vi lage ein ny klasse som er ei spesialisering av ei anna • Den nye klassen skal ha alt den andre har, pluss litt til • Det er dette tillegget som gjer klassen til ein spesiell variant av “foreldreklassen” • is-a forhold

  3. Subklasser • Vi bruker arv for å • Støtte gjenbruk av programvare • Lage god design • Superklasse – subklasse • Bruk av det reserverte ordet extends for å indikere arv • Ein subklasse inneheld automatisk alle variable og metoder som finst i superklassen • Vi ser på Words-eksemplet

  4. Subklasser • Bruk av protected • Subklassen arver alt, men har ikkje direkte tilgang til det som er private • Bruk av public bryt med innkapsling • Det som er protected er synleg kun for subklasser

  5. Subklasser • Bruk av super • Kall til superklassen sine metoder • Blir ofte brukt til å kalle konstruktøren i superklassen • Kun i subklassen sin konstruktør • Alltid første kodelinje • Vi kan også kalle andre metoder (og variable) i superklassen • super.paintComponent(page); • Multippel arv – arv frå fleire klasser samtidig • Blir ikkje brukt i Java

  6. 8.2 Redefinering (overriding) av metoder • Ein subklasse kan redefinere metoder som finst i superklassen • Subklassen kan ha sin eigne implementasjon av metoden • Eventuelt kall til super() og eit tillegg • Viktig med logisk samanheng, slik at den redefinerte metoden har same meinigsinnhold i begge klasser • Skyggevariable • Ikkje bruk slike!

  7. 8.3 Klassehierarki • Ofte er det nok med to klasser, der den eine arver den andre • Til andre formål treng vi fleire klasser, kanskje med arv i fleire ledd • Dette gir eit hierarki av klasser • Object klassen er øverst i alle hierarki • Blir automatisk arva • toString() er definert her

  8. Klassehierarki • Abstrakte klasser • Representerer eit generelt konsept som ikkje er fullstendig nok til å lage objekt av • Kan ikkje instansierast • Blir brukt som superklasse • Bruk av det reserverte ordet abstract • Klasser • Metoder • Inneheld vanlegvis abstrakte metoder • Kan elles innehalde det ein vanleg klasse har

  9. Klassehierarki • Alle klasser med ein eller fleire abstrakte metoder må deklarerast som abstrakte • Abstrakte metoder må implementerast i subklassen • Abstrakte klasser kan samanliknast med interface • Arv kan også brukast for interface • Hierarki også av interface

  10. 8.4 Synlegheit • Alt blir arva • private medlemmer kan ikkje refererast av subklassen • public medlemmer kan refererast av alle • Vi kan bruke protected • FoodAnalyzer – eksemplet • Pizza arver FoodItem • Bruk av private medlemmer i FoodItem skjer kun inne i klassen • Vi får likevel ut det vi treng av informasjon • Ingen objekt av klassen FoodItem blir laga

  11. 8.5 Design og arv • Arv er ein viktig del av objektorientert utvikling og programmering • Pass på at vi får is-a forholdet mellom superklasse og subklasse • Subklassen skal vere ei spesialisering • Lag klassehierarki, plasser fellestrekk langt opp • Redefiner metoder etter behov, unngå skyggevariable • Bruk interface for å imitere multippel arv • Tenk på korleis abstract, public, protected, private bør brukast • Vi kan hindre arv ved å deklarere ein klasse som final

  12. 8.6 Klassehierarki for GUI • Alt er utvikla frå Component • Ein del av hierarkiet er vist i fig 8.7 • Mange abstrakte klasser • Arv i mange ledd • To måtar å lage GUI-komponentar • Bruke ferdigdefinerte klasser som f eks JRadioButton eller JLabel • Lage klasser som arver f eks JApplet eller JPanel • Bruk det som passer til situasjonen, dvs problemet

  13. 8.7 Arv frå adapter - klasser • Alternativ teknikk for å lage listener-klasser • I staden for å implementere interface kan vi arve frå adapter – klasser • Unngår å skrive inn tomme metoder for events vi ikkje er interesserte i • Som vanleg – bruk det som passer best

  14. 8.8 Timer • Finst i javax.swing – pakken • Ein slags usynleg GUI-komponent vi bruker for å generere hendingar over tid • Vi spesifiserer intervall og listener-objekt når vi opprettar Timer-objekt • Koden i actionPerformed() i listener-klassen avgjer korleis vi vil reagere på det som skjer • Rebound - eksemplet