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
© Copyright 2024