180 likes | 399 Views
Klasser og objekter. (Afsnit 4 + 5 i manualen). Grundbegreber. Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed. Klasser og objekter. Tilstand og opførsel. Tilstand
E N D
Klasser og objekter (Afsnit 4 + 5 i manualen)
Grundbegreber • Klasser og objekter • beskrivelse • oprettelse • Attributter og metoder • tilstand • opførsel • Indkapsling • afskærmning • datarepræsentationsuafhængighed
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
Eksempler på basale begreber • Tilstand • Opførsel • Feltvariabel • Type • Konstruktør • Metodesignatur • Metode • Returtype • Parameter • Argument • Accessor • Mutator • Tildeling
Tilstand Opførsel 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; } }
Primitiv variabel 7 age Objekt-reference name ”David” Tilstand • Attribut (feltvariabel) • access modifier • type (værdi) • navn • Primitiv type • int, boolean, ... • 42, true, ... • Objekttype • String, Date, Skuespiller, ... • ””, (3, 9, 2012), (”David”, 73) • 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 public class Person { private String name; private int age; ... }
Personreference og personobjekt p (”David”, 69) Person p= new Person(”David”, 69);
Personreference og personobjekt p (”David”, 71) Person p= new Person(”David”, 69); p.birthday(); p.birthday();
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.birthday(); p (”David”, 70) (”Chris”, 20)
Opførsel (metoder) • 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 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() { ... } }
Afskærmning (synlighed) • 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) public class Person { private String name; private int age; public Person(String n, int a) { ... } public void birthday() { ... } public int getAge() { ... } }
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
Eksempel ? ? ? ? ? Keyword Identifiers Literals Special characters White space
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 Opsummering (engelsk/dansk)