Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,

Lignende præsentationer


Præsentationer af emnet: "DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,"— Præsentationens transcript:

1 DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik, null

2 DAIMIIntroducerende objektorienteret programmering4B.2 Tilstand  Et program er en model. Det specielle ved computerbaserede modeller er deres dynamik - ting “sker” og “ændrer sig”, når programmet kører.  Det fundamentale begreb er tilstand, vi taler om hvilken tilstand de forskellige objekter har, og hvorledes tilstanden ændrer sig, når vi påvirker dem ved at kalde metoder.  Eks: Skildpadden skifter tilstand ved move

3 DAIMIIntroducerende objektorienteret programmering4B.3 Erklæring  Den basale erklæring af et objekt har I allerede set:  Turtle t = new Turtle();  Faktisk er dette en ‘forkortelse’ for flg: Turtle t; t = new Turtle(); Erklæring af t Tildeling til t

4 DAIMIIntroducerende objektorienteret programmering4B.4 Erklæring Turtle t;  betyder: “Opret en reference variabel, kaldet t, som kan referere til objekter af klassen Turtle” t = new Turtle();  betyder: “Skab et objekt fra klassen Turtle og kald konstruktøren på objektet; new returnerer en reference til dette objekt, som så tildeles til reference variablen, t”

5 DAIMIIntroducerende objektorienteret programmering4B.5 Den grafiske version Turtle t; t: t = new Turtle(); t: (Turtle objekt) Navnet, t, repræsenterer en reference til objektet

6 DAIMIIntroducerende objektorienteret programmering4B.6 Tilstand  En beskrivelse af tilstand, en værdi, kræver:  Substans/fysisk repræsentation: “plads”/objekt i computerens hukommelse, det sørger ‘new’ for  Identifikation/navn Unik måde at referere til objektet, vores reference variable er en sådan unik reference  Type Angivelse af tilstandens type/klasse, det er så indholdet af vores objekt

7 DAIMIIntroducerende objektorienteret programmering4B.7 Typer i Java  Java har to slags typer: Klassebaserede: Turtle, Date2, Account, … Grundlæggende: int, double, char, boolean  De grundlæggende datatyper repræsenterer typer som direkte kan håndteres af den underlæggende hardware, og derfor behandles de anderledes end objekter af klasser

8 DAIMIIntroducerende objektorienteret programmering4B.8 Erklæring af heltal  Erklæring af int skrives på samme måde:  inty;  Navnet ‘y’ repræsenterer værdien, her 7  ‘new’ giver ingen mening her, der er afsat plads til værdien  int y; y = 7 7 y:

9 DAIMIIntroducerende objektorienteret programmering4B.9 Reference versus værdi  I Java håndteres objekter af klasser altid referencebaseret, og objekter af grundlæggende typer altid værdibaseret. t: (Turtle objekt) 7 y:

10 DAIMIIntroducerende objektorienteret programmering4B.10 Manipulation  Vi manipulerer objekter ved at kalde metoder. Da grundlæggende typer ikke er repræsenteret vha. objekter men værdier, er der ingen metoder at kalde. Heldigvis…  Sammenlign: x/(y+1)  med x.divide( y.add(1) )  Operationer på grundlæggende typer håndteres direkte af java compileren

11 DAIMIIntroducerende objektorienteret programmering4B.11 Grundlæggende typer  Java er udstyret med nogle få grundlæggende typer Heltal-4562 0 32 2000001 “Reelle tal”0.0 -324.1231 2.334E-25 Tegn‘a’ ‘D’ ‘#’ Sandhedsværditruefalse  På Java’sk hedder de:  intdoublecharboolean

12 DAIMIIntroducerende objektorienteret programmering4B.12 Grundlæggende typer  double x, y; x = 2.345; y = 32.45*x + 921.21;  char c; c = ‘a’;  boolean b; b = true;  “Syntaktisk sukker” - erklæring og initialisering  char c = ‘a’;  boolean b = true;  for (int i = 0; i < 4; i++)

13 DAIMIIntroducerende objektorienteret programmering4B.13 Udtryksevaluering  Udtryk evalueres efter Java’s præcedensregler - og disse afspejler naturligvis sædvanlige matematiske konventioner:  5+3*2 = 11

14 DAIMIIntroducerende objektorienteret programmering4B.14 Øvelse t = new Turtle(); t: (Turtle) Garbage Collection

15 DAIMIIntroducerende objektorienteret programmering4B.15 null  En reference kan angive at den ikke refererer til noget element. Da har den værdien null Date i = new Date(); i.set( 1999, 3, 4 ); i = null; i: 1999,3,4

16 DAIMIIntroducerende objektorienteret programmering4B.16 Semantik af tildeling int i, j; i = 42; j = 5637; i = j; Date i = new Date(), j = new Date(); i.set(1999,3,4); j.set(1999,12,31); i = j; j.set(1888,12,24); 5637 i: j: i: j: 1888,12,241999,3,4

17 DAIMIIntroducerende objektorienteret programmering4B.17 Værdi- contra referencetildeling  Grundlæggende typer har tildeling af værdi; klassebaserede tildeling af referencer.  Men… Hvordan kopierer vi så indholdet?  public Object clone()  j = (Date) i.clone();

18 DAIMIIntroducerende objektorienteret programmering4B.18 Semantik af sammenligning int i, j; i = 42; j = 42; if (i == j) { … } Date i = new Date(), j = new Date(); i.set( 1999, 3, 4 ); j.set( 1999, 3, 4 ); if (i == j) { … } 42 i: j: i: j: 1999,3,4

19 DAIMIIntroducerende objektorienteret programmering4B.19 Reference/værdisammenlign.  Grundlæggende typer har sammenligning af værdi; klassebaserede sammenligning af referencer.  Men… Hvordan sammenligner vi så indholdet?  public boolean equals( Object o )  i.equals( j ); Pas på ikke at sammenligne æbler med pærer!


Download ppt "DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,"

Lignende præsentationer


Annoncer fra Google