Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.

Lignende præsentationer


Præsentationer af emnet: " Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse."— Præsentationens transcript:

1  Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse

2  Jens Bennedsen 2001Multimedie programmering4.2 Modellerings perspectiver Begrebslig –Beskriver personers opfattelse af verden –Uafhængig af software Specifikation –Interfaces af klasser (typer) Implementation –Interne features i en klasse

3  Jens Bennedsen 2001Multimedie programmering4.3 Specifikationer HVAD er det for egenskaber et begreb har (i en given kontekst) Hvad er egenskaberne for følgende begreber? –Terning –Rafle bæger –Studerende I Java udtrykker vi HVAD med et interface

4  Jens Bennedsen 2001Multimedie programmering4.4 Interface /** * Studerende repræsenterer en studerende på et universitet * * @author Jens Bennedsen * @version sept 24, 2001 */ public interface Studerende { /** * returner navnet */ public String getName(); /** * gennemsnits karakteren for alle beståede eksaminer */ public Karakter gennemsnit(); /** * antal beståede fag */ public int antalBeståedeFag(); /** * registrer at endnu et fag bestået */ public void fagBestået(Karakter k); }

5  Jens Bennedsen 2001Multimedie programmering4.5 Havd er et interface Denne beskriver at en studerende har egenskaberne –getNavn –gennemsnit –antalBeståedeFag –fagBestået –Hvorfor har en studerende egenskaben fagBestået? … men intet om HVORDAN disse egenskaber skal realiseres i en computer

6  Jens Bennedsen 2001Multimedie programmering4.6 Roller interface Session … duration pre: start og end er kaldt før post: Varigheden af udlejningen returneres... end Session Anvender skal opfylde kravene til operationen kan forvente det operationen gør Implementør skal opfylde det operationen gør kan forvente kravene til operationen AnvenderImplementør Pre betingelseSkal opfyldeKan antage Post betingelse Kan antageSkal opfylde

7  Jens Bennedsen 2001Multimedie programmering4.7 Javadoc Egenskaberne beskrives i Javadoc Denne kan så generere en beskrivelse, der kan læses af –Anvenderen, så han ved hvad operationen gør (og hvilke krav der er til at den gør det) –Implementøren, så han ved hvad han skal implementere (og under hvilke forudsætninger han kan gøre det)

8  Jens Bennedsen 2001Multimedie programmering4.8 Student

9  Jens Bennedsen 2001Multimedie programmering4.9 Indtil nu … Så er HVAD defineret Interfaces kan vi ikke lave forekomster (objekter af) – hvad så?

10  Jens Bennedsen 2001Multimedie programmering4.10 Hvordan HVORDAN defineres i en klasse der implementerer et (eller flere) interfaces Nu skal vi finde ud af, HVORDAN vi vil sørge for at et studerendeImpl objekt kan svare på dets navn, antalBeståedeFag og gennemsnit (hvilken VIDEN (attributter) objektet skal have) –En der indeholder navnet? –En der indeholder årskortet? –En der indeholder antallet af beståede fag? –En der indeholder titlerne på alle de beståede fag? –En der indeholder gennemsnitskarakteren? –En der indeholder uddannelsen den studerende er indskrevet på? –En der indeholder fakultet den studerende er indskrevet på? –En der indeholder hvor meget SU den studerende har brugt? –En der indeholder …

11  Jens Bennedsen 2001Multimedie programmering4.11 Class Der kan være følgende viden for at kunne opfylde egenskaberne –Navn –Gennemsnit –Antal beståede fag public class StuderendeImpl implements Studerende { … private String navn; private Karakter gennemsnit; private int antalBeståedeFag; } Viden (attributter) StuderendeImpl skal have alle egenskaberne defineret i Studerende Her ANVENDER jeg Karakter, derfor benytter jeg interfacet (jeg er kun interesseret i HVAD – ikke HVORDAN)

12  Jens Bennedsen 2001Multimedie programmering4.12 Implementation af egenskaberne Hvordan implementerer jeg egenskaberne? public class StuderendeImpl implements Studerende { public String getNavn() { return navn;} public Karakter gennemsnit() {return gennemsnit;} public int antalBeståedeFag() {return antalBeståedeFag;} public void fagBestået(Karakter k) { … } private String navn; private Karakter gennemsnit; private int antalBeståedeFag; } Det er værdien af attributten antalBeståedeFag der returneres

13  Jens Bennedsen 2001Multimedie programmering4.13 Tilstand Attribut (variabel) –type –værdi Simpel type –int, boolean,... –42, true Klassebaseret type –String, Person,... –”Bruce”, { ”Bruce”, 42 } navn ”Peter” antalBeståedeFag 3 public class Stude… {... private String navn; private int antalBeståedeFag; private Karakter gennemsnit; } objekt-reference

14  Jens Bennedsen 2001Multimedie programmering4.14 I BlueJ Den viden som objektet studeren_jens har (de aktuelle værdier)

15  Jens Bennedsen 2001Multimedie programmering4.15 fagBestået Hvordan implementerer vi metoden fagBestået() ? Kender vi ikke! public class StuderendeImpl implements Studerende { … public void fagBestået(Karakter k) { //beregn nyt gennemsnit double gns = (gennemsnit.getKarakter()*antalBeståedeFag+k.getKarakter())/(antalBeståedeFag+1); gennemsnit = new KarakterImpl(gns, gennemsnit.getSkala()); antalBeståedeFag=antalBeståedeFag+1; } … } 1.Den skal opdatere antalFagBestået 2.Den skal opdatere gennemsnit 1. Læg en til! 2.Hmmmm … gennemsnit = (karakter 1 + karakter 2 + … + nyKarakter) antalFagBestået karakter 1 + karakter 2 + … = gennemsnit før *antalFagBestået før

16  Jens Bennedsen 2001Multimedie programmering4.16 navn, … gennemsnit getNavn antalBeståedeFag fagBestået Klasse- og objektmetoder Konstruktør –speciel metode der hører hjemme på klasseniveau –opretter og initialiserer en forekomst (objekt, instans) –klassemetoder specificeres med nøgleordet static, men ikke konstruktører! –BlueJ: højreklik på klassen Øvrige metoder –beskrives i klassen, men opererer på objektniveau –forudsætter at der er oprettet et objekt –BlueJ: højreklik på objektet StuderendeImpl StuderendeImpl(”Poul”) StuderendeImpl (”Jens”)

17  Jens Bennedsen 2001Multimedie programmering4.17 toString() toString –en metode der er arvet fra Object –god at have til test-formål –lav den selv (ellers...) –’+’ betegner (også) konkatenation af strenge –’\n’ betegner et linieskift public class StudenrendeImpl {... /** Returnerer en String- * repræsentation af personens */ tilstand public String toString() { return ”Navn: ” + navn + ”\n” + ”gennemsnit:” + gennemsnit.toString(); }

18  Jens Bennedsen 2001Multimedie programmering4.18 Objektinteraktion metode 2 metode 4 metode 1 metode 3 metode 2 metode 4 metode 1 metode 3 metode 2 metode 4 metode 1 metode 3


Download ppt " Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse."

Lignende præsentationer


Annoncer fra Google