Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Repetition: Introduktion til OOP med C# og .NET

Lignende præsentationer


Præsentationer af emnet: "Repetition: Introduktion til OOP med C# og .NET"— Præsentationens transcript:

1 Repetition: Introduktion til OOP med C# og .NET
Objektorienteret programmering - Realisering af domænemodel

2 Objekt ifølge OOA&D Et objekt har identitet, tilstand og adfærd:
Objektets tilstand er værdierne af de attributter, der kendetegner objektet Adfærd bevirker at objektets tilstand kan aflæses eller ændres Adfærd er defineret gennem objektets operationer (metoder og properties)

3 Klasse og objekt Klassen er den fælles definition af objekterne.
Klasse: Kildekode Klassen er den fælles definition af objekterne. Objekterne er de konkrete forekomster af klassen Klasser eksisterer hele tiden Objekter kommer og går Klassen er den statiske beskrivelse i kildekoden Objekter eksisterer dynamisk ”Kurt” ”Programmør” 30000 ”Ib” 25000 ”Kis” ”DBA” 35000 p1 p2 p3 Objekter: Eksisterer runtime Refereres via programvariable

4 Oprettelse af objekter
Kunde k; opretter en reference k = new Kunde(123, ”Michael Jackson”); kald af constructoren som står for initialisering af objektets attributter new allokerer plads til objektet new sender adressen retur til referencen k

5 Tilstand Attributterne er defineret på klassen, og bliver tildelt en værdi i objekterne Properties giver kontrolleret adgang til attributterne Kontos attributter: kontonummer, saldo, bevilget overtræk, rente, indehaver mm. Ansat navn, afdelingsnummer, løn, titel mm.

6 Adfærd Objekternes adfærd er givet ved
metoder - defineres (realiseres) i klassen. properties - defineres ligeledes i klassen. Adfærd forårsager i visse tilfælde en tilstandsændring Konto Haev(), Indsaet(), Saldo (property) osv.

7 Constructor Er en metode, som
initialiserer objektet – giver objektet en starttilstand Rent praktisk skal en constructor have samme navn som klassen Kan – ligesom andre metoder - forekomme i flere versioner (metodeoverloading)

8 Metodeoverloading Flere metoder med samme navn kan erklæres i samme scope, blot de har forskellige parameterlister. Fx: public Bankkonto(int kontonr){ kontonummer = kontonr; saldo = 0; } public Bankkonto(int kontonr; double saldo){ this.saldo = saldo;

9 This Reference til objektet selv
Bruges bl.a. til at undgå navnesammenfald this.saldo = saldo; Bruges også til kald af egne constructors public Kunde(string navn): this(navn, getNewId()) Her vil den constructor der er brugt under oprettelsen af objektet sende kaldet videre til en anden constructor

10 Properties public class Kunde { private int kundenummer;
private string navn; public string Navn{ get{ return navn;} set{ navn = value;} } public int Kundenummer get{return kundenummer;}

11 Brug af properties Kunde k = new Kunde(”Jens Jørgensen”);
k.Navn = ”Jens Petersen”; string navn = k.Navn; k.navn = ”Jens Petersen”; //fejl private attribut k.Kundenummer = 21; //fejl read-only int x = k.Kundenummer;

12 Access Modifiers Public Private Protected Internal Protected internal
Kan tilgås af alle metoder fra alle objekter Private Kan tilgås af den definerende klasses medlemmer og ikke andre Protected Kan tilgås af klassen selv og af arvinger – privat for alle andre Internal Kan tilgås af den definerende klasse og alle klasser i samme assembly Protected internal Kan tilgås af den definerende klasse, klasser i samme assembly og fra arvinger

13 Eksempel på realisering af domænemodel
Del af design-klassediagram i et system til registrering af ansatte og projekter Projekt Ansat navn navn ArbejderPaa afdeling stilling timer løn 1 1 0..* 0..* 0..* 0..* 1 1 GetTotalTimer() TilknyMedarbejder() GetMedarbejdere()

14 Realisering af objektforbindelse
Designovervejelser Hvilken vej skal objekterne kunne tilgås Forbindelse til 1 objekt Simpel objektreference Forbindelse til * objekter Reference til collection (fx ArrayList)

15 Collection ArrayList Dynamisk array (System.Collections)
Elementer kan tilgås som i array med [] Vigtige metoder: Add(Object o) – tilføjer o bagerst RemoveAt(int i) – sletter på index i Count – property som returnerer antallet af elementer Resten findes online

16 Eksempel Vi vil se på realiseringen af ansat-projekt eksemplet:
Vi vil nu også beregne gennemsnitslønnen for medarbejdere på et projekt.

17 Opgave Realisering af domænemodel
Passende metoder: alle reservationer etc. Bog titel : String isbn : String Reservation forlag : String forfattere : String 1 0..* resDato : int AddReservation() FindLånerMedRes() 0..* Låner lNr : int fNavn : String 1 1 eNavn : String


Download ppt "Repetition: Introduktion til OOP med C# og .NET"

Lignende præsentationer


Annoncer fra Google