Hvad kontrolleres:

Transcription

Hvad kontrolleres:
Grundbegreber
• Klasser og objekter
– beskrivelse
– oprettelse
Klasser og objekter
• Attributter og metoder
– tilstand
– opførsel
• Indkapsling
– afskærmning
– datarepræsentationsuafhængighed
dIntProg, E05
Klasser og objekter
Klasser og objekter.2
Tilstand og opførsel
• Tilstand
– ethvert objekt har sin egen
tilstand
• Opførsel
– objekters opførsel er
defineret ved et sæt metoder
– udførelse af en metode kan
ændre et objekts tilstand
– en metode kan have
parametre; ved kald af
metoden leveres et passende
antal argumenter
dIntProg, E05
Klasser og objekter.3
Klasse for begrebet person
Tilstand
public class Actor {
private int number;
private String name;
...
}
Primitiv variabel
public Actor(String n)
{ name = n; antal = 0; }
private void clapOnce()
{ number = number + 1; }
Klasser og objekter.4
Tilstand
public class Actor {
private String name;
private int number;
dIntProg, E05
number
Opførsel
public int noOfTricks()
{ return number; }
Klasser og objekter.5
• Primitiv type
– int, boolean, ...
– 42, true, ...
– String, Date, Skuespiller, ...
– ””, (29, 8, 203), (”Ghita”, 7)
• Variabler
Objekt-reference
”Ghita”
dIntProg, E05
– type
– værdi
• Objekttype
7
name
}
• Attribut (feltvariabel)
dIntProg, E05
– primitiv variabel: variabel der
kan holde en værdi af den
anførte type
– objektreference: variabel der
kan referere til et objekt af
den anførte type
Klasser og objekter.6
1
Et skuespillerobjekt
Et skuespillerobjekt
skuespil1
skuespil1
(”Ghita”, 7)
(
, 7)
”Ghita”
Actor skuespil1 = new Actor(”Ghita”);
Actor skuespil1 = new Actor(”Ghita”);
skuespil1.turn(7);
skuespil1.turn(7);
dIntProg, E05
Klasser og objekter.7
Objektreferencer og objekter (1)
dIntProg, E05
Objektreferencer og objekter (2)
anActor
int a, b;
Actor anActor;
anActor = new Actor(”Ghita”);
anActor.turn(7);
Klasser og objekter.8
a
7
b
8
a = 7;
anActor
b = a;
b = b + 1;
( ”Ghita”, 7)
Delte referencer
Actor anActor;
anActor
Actor a, b;
anActor = new Actor(”Ghita”);
anActor.turn(7);
( ”Ghita”, 7)
a = new Actor(”Ghita”);
a.turn(7);
anActor = new Actor(”Fritz”);
anActor.clap(3);
( ”Fritz”, 3)
b = a;
b.clap(3);
dIntProg, E05
Klasser og objekter.9
Opførsel (metoder)
public class Actor {
/** Opret en skuespiller
* med navn n
*/
public Actor(String n)
{ ... }
/** Skuespilleren klapper **/
private void clapOnce()
{ ... }
/** Returnerer antal tricks
* skuespilleren har lavet
*/ til dato
public int noOfTricks()
{ ... }
}
dIntProg, E05
a
( ”Ghita”, 10)
b
dIntProg, E05
Klasser og objekter.10
Afskærmning (synlighed)
• Konstruktør
public class Actor {
– ingen returtype
– samme navn som klassen
private String name;
private int number;
• Mutator (!)
– opdaterer (del af) objektets
tilstand
public Actor(String n)
{ ... }
• Inspector (?)
– aflæser (del af) objektets
tilstand
private void clapOnce()
{ ... }
• Returtype
– specificerer hvilken type
værdi der returneres fra
metoden (void ⇒ mutator)
public void clap(int n)
{ ... }
• Parametre
– type og navn
– ved flere parametre adskilles
med komma
Klasser og objekter.11
• Attributter
– objektets indkapslede tilstand
– erklæres (oftest) private
– kan kun tilgås fra klassens
egne metoder
• Metoder
– objektets facade (også kaldet
grænseflade) til omverdenen
– erklæres (oftest) public
– kan tilgås fra alle andre
klasser
public int noOfTricks()
{ ... }
}
dIntProg, E05
Klasser og objekter.12
2
Syntaktiske elementer i Java
Eksempel
• Keywords (nøgleord, reserverede ord)
public class Director {
String name;
– class, new, public, private
• Identifiers (navne)
public void directPlayA() {
Actor a, b;
a = new Actor(”Ghita”);
a.turn(7);
b = a;
b.clap(3);
}
– Actor, ghitaNørby, a, clap, turn, Date, day, month, year, ...
• Literals
– ”Aarhus Universitet”, 1928, ...
• Special characters (specialtegn)
}
– (, ), ., {, }, =, +, − ==, <, <=, //, /*, */, /**, ...
• White space
– linieskift, mellemrum, tab, ...
– kan indsættes vikårligt mellem syntaktiske elementer uden at
betydningen påvirkes
dIntProg, E05
Klasser og objekter.13
?
?
?
Keyword
Identifiers
Literals
dIntProg, E05
?
?
Special
White space
Klasser og objekter.14
characters
Opsummering (engelsk/dansk)
• Object
– objekt, forekomst, instans
• Field, instance variable
– feltvariabel, instansvariabel,
attribut
• Constructor
– konstruktør
• Method
– metode / operation
• Method signature
– metodesignatur
• Method body
– metodekrop
• Parameter
• return type og return
statement
dIntProg, E05
• Accessor
– aflæsningsmetode
• Mutator
– opdateringsmetode
• Declaration
– erklæring
• Initialization
– initialisering
• Block
– blok
• Statement
– sætning
• Assignment
– tildeling
Klasser og objekter.15
3