Klasser og objekter (Afsnit 4 + 5 i manualen)
Grundbegreber Klasser og objekter Attributter og metoder Indkapsling beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed dIntProg, E14
Klasser og objekter Eksemplificér medDate-eksemplet i BlueJ dIntProg, E14
Tilstand og opførsel Tilstand Opførsel 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, E14
Tilstand og opførsel for Wombat dIntProg, E14
Eksempler på basale begreber Tilstand Opførsel Feltvariabel Type Konstruktør Metodesignatur Metode Returtype Parameter Argument Accessor Mutator Tildeling dIntProg, E14
Tilstand og opførsel for Person dIntProg, E14
Klasse for begrebet Person public class Person { private String name; private int age; public Person(String n, int a) { name= n; age= 0; } public void birthday() { age= age + 1; } public int getAge() { return age; } } Tilstand Opførsel dIntProg, E14
Tilstand Attribut (feltvariabel) Primitiv type Objekttype Variabler public class Person { private String name; private int age; ... } Attribut (feltvariabel) access modifier type (værdi) navn Primitiv type int, boolean, ... 42, true, ... Objekttype String, Date, Skuespiller, ... ””, (3, 9, 2012), (”David”, 69) Variabler 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 age 7 Primitiv variabel name ”David” Objekt-reference dIntProg, E14
Personreference og personobjekt (”David”, 69) Person p= new Person(”David”, 69); dIntProg, E14
Personreference og personobjekt (”David”, 71) Person p= new Person(”David”, 69); p.birthday(); p.birthday(); dIntProg, E14
En reference, to objekter p Person p; p= new Person(”David”, 69); p.birthday(); p (”David”, 70) Person p; p= new Person(”David”, 69); p.birthday(); p= new Person(”Chris”, 19); p Dej, udstiksforme og lakridssnøre… (”David”, 70) (”Chris”, 20) dIntProg, E14
Opførsel (metoder) Konstruktør Mutator (!) Accessor (?) Returtype public class Person { /** Opret en person * med navn n og alder a */ public Person(String n, int a) { ... } /** Personen fylder år **/ public void birthday() /** * Returnerer personens alder public int getAge() } Konstruktør ingen returtype samme navn som klassen Mutator (!) opdaterer (del af) objektets tilstand Accessor (?) aflæser (del af) objektets tilstand Returtype specificerer hvilken type værdi der returneres fra metoden (void mutator) Parametre type og navn ved flere parametre adskilles med komma dIntProg, E14
Afskærmning (synlighed) public class Person { private String name; private int age; public Person(String n, int a) { ... } public void birthday() public int getAge() } Attributter objektets indkapslede tilstand erklæres (oftest) private kan kun tilgås fra klassens egne metoder (vedkommer ikke andre) Metoder objektets facade (også kaldet grænseflade) til omverdenen erklæres (oftest) public kan kaldes fra andre klasser signatur: hovedet af en metode (access modifier, returtype, navn og parametre) dIntProg, E14
Syntaktiske elementer i Java Keywords (nøgleord, reserverede ord) class, new, public, private Identifiers (navne) Person, p, a, turn, move, 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, E14
Eksempel ? ? ? ? ? Keyword Identifiers Literals Special characters White space dIntProg, E14
Opsummering (engelsk/dansk) Object objekt, forekomst, instans Field feltvariabel, instansvariabel, attribut Constructor konstruktør Method metode Method signature metodesignatur Method body metodekrop Parameter return type og return statement Accessor (?) aflæsningsmetode Mutator (!) opdateringsmetode Assignment tildeling (=) Næste gang: Declaration erklæring (variabel, metode, ...) Initialization initialisering Block blok: { ... } Statement sætning dIntProg, E14