Arv Idéen i arv et at kunne genbruge gennem generalisering

Slides:



Advertisements
Lignende præsentationer
Sådan laver Du et POWER POINT program.
Advertisements

Kort om JavaScript Afvikles i browser på klienten Sendes fra server (php, asp, aspx, htm) eller startes i klient som htm/html fil. Skabelon: –”main” -
Introduktion til Javascript – Grundlæggende Webdesign, F2004. Introduktion til Javascript.
Forsiden 1.Denne knap bruges når du vil taste dagens resultater ind. 2.Denne knap skal kun bruges hvis du allerede har gemt data og du finder ud af at.
Hvordan programmerer man?? STREAM - en model. Programmører arbejder ofte i teams Hver programmør arbejder på sin del af en større helhed.
Velkommen til Softwarekonstruktion
Programmeringsparadigmer.
Begreber og Redskaber 6. Afprøvning Formål: •Ekstern afprøvning (Funktionstest). •Hvordan dokumenterer man afprøvning i en rapport. •Hvordan konstuerer.
07 – Kort om OO Introduktion.
Af: Michael Jørgensen. Entity Life Cycle: Hvad er det ?  Er en måde, hvordan man, eventuelt tidligt i programmeringsforløbet, kan bestemme hvordan et.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Problemliste Listen laves vilkårligt – herefter udvælges det problem der har 1. prioritet
1 Intro nedarvning (eng.: inheritance) Nedarvningshierarkier Intro polymorfisme (eng.: polymorphism) Abstract / virtual / override / sealed Intro interfaces.
NetBeans Installation og brug.
Selve objektet versus referencen til objektet Nedarvning
Informationsteknologi B-A, HHX, 2005,
Objektorienteret programmering
08 – Mere OO Indkapsling Arv og polymorfi (OOP’s 3 hovedprincipper)
09 – Arv og polymorfi i java
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Programklasser for bladhus Den efterfølgende beskrivelse er ikke komplet. Der er ikke taget afsæt i use cases, sekvensdiagrammer og operationsbeskrivelser.
Sensus Tilgængelighed i PDF-filer - Adobe Professional Helene Nørgaard Bech Sensus ApS.
FEN NOEA/IT Programmeringsteknologi 1 Arv og polymorfi Substitutionsprincippet Abstrakte klasser Design Patterns (Composite)
Skemaet er lavet som felter til indtastning af tekst
Aspekt-orienteret programmering (AOP) Lars Christensen Daniel Simonsen.
Fundamentale datastrukturer
Eksempel på realisering af domænemodel
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Objekter og klasser Rasmus D. Lehrmann DM
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
ER-modellering1 Analyse af data og sammenhæng mellem data.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
Generelt om abstraktion og modellering Tietgen Skolen.
Database.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
FEN NOEA - Nordjyllands Erhvervsakademi1 Objektorienteret programmering Indkapsling Arv og polymorfi (OOP’s 3 hovedprincipper)
Tekst filer Tekstfiler opbygges normalt af linier, hvor disse ikke behøver at være samme længde. Når man skal arbejde med tekstfiler, ønsker man metoder.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
DAIMIIntroducerende Objektorienteret Programmering1 Polymorfi og nedarvning Motivation for arv og “mange former”
 1999, Henrik B. ChristensenIntroducerende objektorienteret programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2001Multimedie programmering10A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
Design af brugerflader13.1 Kursusgang 13 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
DAIMIIntroducerende Objektorienteret Programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
DAIMIIntroducerende objektorienteret programmering15A.1 Eksamen…
Geometriforløb i 3. klasse - med IT, papir og blyant… Forløbet Billeder Elevprodukter Det sagde eleverne…. Tips & Tricks Klik på en firkant (ikke teksten)
Parametrisering En kort introduktion.
DIT NAVN DIN UDDANNELSE (husk både kandidat og bachelor, hvis de er forskellige) og KONTAKTOPLYSNINGER Baggrund Kort beskrivelse af hvilket problem, specialet.
Præsentationens transcript:

Arv Idéen i arv et at kunne genbruge gennem generalisering Når der nedarves vil såvel data som metoder ”følge” med i den nye klasse uden at disse dele skal kodes igen Da objekter ”fødes” som en bestemt klasse og kan ikke ændre klasse. Klassen skal selv have en constructor til initiering, der dog kan udnytte constructoren for den nedarvede base klasse.

Polymorfi Idéen i polymorfi er, at man kan anvende et objekt, der er baseret på arv på et højere abstaktionsniveau (baseret på den overordnede klasse) og alligevel lade det være metoder implementeret på den konkrete klasse der bliver udført. Behandles en samling objekter med samme metode, kan disse altså give forskellige udførsel afhængig af hvilke klasser de konkret er baseret på. Metoder af denne type kaldes ofte virtuelle metoder.

C# metod modifier

C# metod modifier

Eksempler på strukturer med arv Det er ikke altid nemt med arve-hirakier Som det ses her kan figurer opdeles i 2-d og 3-d, men hvor skal et punkt nu placeres, idet det jo både kan optræde i forbindelse med 1-d, 2-d og 3-d…. Et andet eksempel er her at der er flere felter knyttet til en elipse end der er behov for til en cirkel (2 punkter og en radius eller 2 radiuser). Det kunne derfor være fristende at lade elpise være en specialisering af en cirkel, men det er ikke matematisk korrekt, idet cirklen her er en speciel elipse. Samme problem vil være omkring et rektangel og et kvadrat. Her kan interfaces være en løsning i stedet.

Eksempler på strukturer med arv

Eksempler på strukturer med arv

Eksempler på strukturer med arv

Eksempler på strukturer med arv

Eksempler på strukturer med arv

Eksempler på strukturer med arv

Eksempler på strukturer med arv Opgave Følgende laves i et consolapplikation projekt. Implementer Kæledyr: Klassens 3 felter Constructor til initiering af de 3 felter Hentalder som en virtual metode, der returner alderen Fældhår metode der udskriver at hår fældes på consollen SigNoget som en abstrakt metode ToString, der returnerer tekst med klassens felter Implementer Kat som nedarver fra Kæledyr: Constructor til initiering af de 3 felter, ved brug af baseklassens constructor SigNoget metoder der udskriver Miav på consollen Implementer Hund som nedarver fra Kæledyr: Klassens ”ekstra” felter Constructor til initiering af klassens 4 felter, ved brug af baseklassens constructor Hentalder som returnerer alderen ganget med 7 SigNoget metoder der udskriver Wow på consollen I program-klassens Main metode afprøves klasserne. Lav en List<Kæledyr> og tilføj nogle hunde og nogle katte. Lav herefter et gennemløb med foreach og prøv mesom kæledyr. Lav herefter et nyt gennemløb hvor du tester om det er en hund eller kat med is-operatoren og brug as-operatoren eller typecast til hunde-klassen eller katte-klassen for at kunne bruge dennes specielle metoder.