DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Selve objektet versus referencen til objektet Nedarvning
Grundlæggende programmering Efterår 2001
Hvordan man skriver koden.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Forelæsning 3.1 Collections Javas for-each løkke
GP6, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 6 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Fundamentale datastrukturer
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
GP 5, 26/ Grundlæggende programmering Efterår 2001 Forelæsning 5 onsdag 26/ kl. 9:15 – 12:00.
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,
Procestræ under afvikling af cp init login shell cp cp src dest.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Forelæsning 2.2 Tilstand og opførsel (repetition)
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
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 programmering3C.1 Design af klasser Specifikation og implementation.
DAIMIIntroducerende objektorienteret programmering4C.1 Systemdesign Design med flere klasser, En kaffeautomat.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
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”
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
Indledende Programmering Uge 6 - Efterår 2006
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
DAIMIIntroducerende Objektorienteret Programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Klassevariable- og metoder Funktionalitet på klasseniveau.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
DAIMIIntroducerende objektorienteret programmering2A.1 Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Forelæsning Uge 2 – Torsdag Java syntax og style guide Sætninger –Simple sætninger (assignment, interne og eksterne metodekald) –Sammensatte sætninger.
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 2 – Mandag
Quiz – Uge 4 – torsdag – første time
Klasser og objekter (Afsnit i manualen).
Quiz – Uge 4 – torsdag – første time
Quiz – Uge 4 – torsdag – første time
Quiz – Uge 4 – torsdag – første time
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato

DAIMIIntroducerende objektorienteret programmering3B.2 Modelelementer  Et program er en model, hvor de enkelte elementer er beskrevet vha. klasser.  Altså er hver klasse et ‘modelelement’. Vi vil ofte sige at en klasse ‘modellerer’ en eller anden ting: En diskfil, en streng, en skildpadde, et …  Vi skal nu selv til at skrive klasser i Java.

DAIMIIntroducerende objektorienteret programmering3B.3 Eksempel: Datoer  Vi vil skrive en klasse, som modellerer en dato,  og vi starter meget simpelt: class Date1 { public Date1() { } public void print() { System.out.println( "Datoen er 16/9/1999" ); } Klasseafgrænsning konstruktør metode

DAIMIIntroducerende objektorienteret programmering3B.4 Metodestruktur  public void print()  {  System.out.println( "Datoen er 16/9/1999" );  } Prototype Retur-værdi Metodenavn Metodekrop Parametre

DAIMIIntroducerende objektorienteret programmering3B.5 Brug af Date1  Nu er klassen ‘Date1’ defineret; lad os prøve den. Det gør vi med et lille testprogram: class TestDate { public static void main( String[] args ) { Date1 d = new Date1(); d.print(); }

DAIMIIntroducerende objektorienteret programmering3B.6 Programdynamik  Et program udføres een sætning ad gangen, og hver sætning udføres til ende, førend den næste evalueres: mainDate1d.print new Date1() d.print() Sys...println

DAIMIIntroducerende objektorienteret programmering3B.7 Klasser og java-filer  Java kræver at en klasse skal ligge i en fil med samme navn som klassen, og “.java” som efternavn (suffix):  Klassen Date1 skal gemmes i “Date1.java”  Klassen TestDate skal gemmes i “TestDate.java”

DAIMIIntroducerende objektorienteret programmering3B.8 Udvidet eksempel  Date1 er en ‘anelse’ ufleksibel. Nyt forsøg: class Date2 { public Date2() { y = 1999; m = 9; d = 16; } public void print() { System.out.println( "Datoen er "+d+"/"+m+"/"+y ); } public void set( int year, int month, int day ) { y = year; m = month; d = day; } private int y; private int m; private int d; } Instans variable

DAIMIIntroducerende objektorienteret programmering3B.9 Hvad har vi gjort?  For at kunne håndtere vilkårlige datoer har vi: Erklæret tre heltal (int)’s instans variable til at opbevare datoens tilstand: (dag, måned, år) Konstruktører initialiserer enhvert nyt datoobjekt til at have tilstanden (16/9/1999) Rettet ‘print’ til så den udskriver korrekt dato (‘+’ er en betydelig lettere måde at lave ‘concat’ på) Tilføjet en metode ‘set’:

DAIMIIntroducerende objektorienteret programmering3B.10 Metoden ‘set’  public void set( int year, int month, int day ) {  y = year; m = month; d = day;  }  Der erklæres tre parametre: year, month, day, i parameterlisten, alle af typen int  (y,m,d) tildeles værdien af parametrene i metodens krop. Parameterliste

DAIMIIntroducerende objektorienteret programmering3B.11 Udvidet test  class TestDate {  public static void main( String[] args ) {  Date2 d = new Date2();   d.print();   d.set(2000, 1, 1);  d.print();  }

DAIMIIntroducerende objektorienteret programmering3B.12 Øvelse  1) Skitser en klassedefinition af Turtle inklusiv metoden ‘move’.  2) Hvilken dato udskrives der her:  d.set( 1999, 12, 32 );  d.print();  3) Er det let at lave en metode:  public void add( int days )  der kan lægge et antal dage til en dato?

DAIMIIntroducerende objektorienteret programmering3B.13 Returværdier  Hvad hvis vi kun er interesseret i, f.eks., årstallet? public int year() { return y; } public int month() { return m; } public int day() { return d; } ReturtypeReturnsætning

DAIMIIntroducerende objektorienteret programmering3B.14 Return  return er en speciel sætning, der kun giver mening i en metode, og angiver hvad en metodens værdi er (hvad den evalueres til)  return-statement ::= “return” [ expression ]  Typen på udtrykket efter “return” skal passe med den i metodedefinitionen specificerede  return uden efterfølgende udtryk svarer til void

DAIMIIntroducerende objektorienteret programmering3B.15 Return  Semantik: Når return udføres, afsluttes metodekaldet øjeblikkeligt. public void kukkuk() { System.out.println( “Gemmeleg” ); return; System.out.println( “Kuk kuk” ); }

DAIMIIntroducerende objektorienteret programmering3B.16 Metodetyper  I de “klassiske” programmeringssprog skelner man skarpt mellem to typer af metoder: Funktioner: Metoder som returnerer en værdi; kan bruges som udtryk Procedurer: Metoder som ikke returnerer en værdi; kan bruges som en sætning.

DAIMIIntroducerende objektorienteret programmering3B.17 Overloading  En metodes navn og parameterliste kalder man en metodes signatur.  To metoder med samme navn men forskellige parameterlister opfattes som forskellige metoder.  Har man flere metoder med samme navn, siger man at metoden er overloaded.  public Date2() …  public Date2( int year, int month, int day ) …