Klasser og objekter. (Afsnit i manualen)

Relaterede dokumenter
Forelæsning Uge 1 Torsdag

Forelæsning Uge 2 Torsdag

Forelæsning Uge 1 Torsdag

Forelæsning Uge 2 Mandag

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag

dintprog Manual Revision: 731 September 30, Introduktion Notation... 3 I Begreber 4 2 Grundbegreber om programmering 4

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag

Klasser. Grundlæggende Programmering med Projekt. Peter Sestoft Tirsdag 2. september (Tak til Jakob Bardram for nogle slides) Dagens begreber

Ugeseddel 4 1. marts - 8. marts

Virkefeltsregler i Java

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

Forelæsning Uge 3 Mandag

SWC Elementer i klassedefinition

Software Construction 1 semester (SWC) Spørgsmål 1

Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag

Hvad er Objekter - Programmering

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag

Fundamentale sprogbegreber

Forelæsning Uge 3 Mandag

Forelæsning Uge 4 Mandag

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1

Forelæsning Uge 2 Torsdag

4 Basal Objekt-orienteret Programmering I.

class subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.

Forelæsning Uge 4 Mandag

Eksempel: Skat i år 2000

Anvendelse af metoder - Programmering

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Forelæsning Uge 3 Torsdag

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

Forelæsning Uge 3 Torsdag

SWC eksamens-spørgsmål. Oversigt

Modern Concurrency Abstractions for C#

Metoder Klasser Arv. Operatorer Løkker. Praksis eksempel. Grundlæggende programmering Lektion 3

Tree klassen fra sidste forelæsning

Forelæsning Uge 2 Torsdag

Forelæsning Uge 4 Mandag

Forelæsning Uge 2 Torsdag

COMPUTERSPIL 1. Opgave 1. Opgave 2

Forelæsning Uge 12 Torsdag

Forelæsning Uge 5 Mandag

Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner

Introduktion til ActionScript, fortsat

Forelæsning Uge 12 Mandag

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil

LØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4

Sproget Rascal (v. 2)

Løsning af møntproblemet

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

DANMARKS TEKNISKE UNIVERSITET

Real-time programming safety in Java and Ada

CCU-9944 manual Opret: 4. januar 2008 Opdateret: 4. januar 2008 Side 1 af 26 oz5pz Poul Rosenbeck Mosbækvej 29 Skivum 9240 Nibe mail:

Skriftlig eksamen i Datalogi

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Hvad er et distribueret objekt? Plan Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i)

Videregående Programmering for Diplom-E Noter

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6

Introduktion til Flash, fortsat

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil

14.1 Internationale programmer

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Metaklasser i Smalltalk.

Videregående programmering i Java

Forelæsning Uge 5 Mandag

Aritmetiske Forelæsning Pr ogrammering operatorer tir 1999 sda præcedens september 1999 Logiske Sammenligningsoperatorer operatorer præcedens

ODIN-webservice ændringer release 2010 v2.0

DM507 Algoritmer og datastrukturer

Jacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense

Forelæsning Uge 5 Mandag

Databaseadgang fra Java

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Greenfoot En kort introduktion til Programmering og Objekt-Orientering

Sproget Limba. Til brug i G1 og K1. Dat1E 2003

Scripting. Opslag til (Vol. D. Dahlerup. Bemærk. Anvendte bøger: "Sams. og proteiner.

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.

Forelæsning Uge 3 Torsdag

Vejledning til listings-pakken

30 Objekt-orienteret Programmering i Andre Sprog.

Crash Course i Programmering. HumTek, RUC

DM507 Algoritmer og datastrukturer

Objektorientering og databaser

COMPUTERSPIL 1. Opgave 1

Forelæsning Uge 11 Torsdag

DRONNINGER (QUEENS) Opgave 1

Rename og redefine. Abstrakte klasser. Dynamisk binding.

Overblik. Class Loader. Java. Class Libraries. Bytecode. Verifier Java. Source (.java) Just in Time Compiler. Java

Usikker kode. Windows Forms. Grundlæggende programmering Lektion 7

Har kun én enkelt abstract metode De steder, hvor man skal bruge et objekt, hvis type er et funktionelt interface, kan man i stedet bruge en lambda

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java

Transkript:

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 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

Tilstand og opførsel for Wombat

Eksempler på basale begreber Tilstand Opførsel Feltvariabel Type Konstruktør Metodesignatur Metode Returtype Parameter Argument Accessor Mutator Tildeling

Tilstand og opførsel for Person

Klasse for begrebet Person public class Person { private String name; private int age; Tilstand public Person(String n, int a) { name= n; age= 0; } public void birthday() { age= age + 1; } Opførsel } public int getage() { return age; }

Tilstand public class Person { private String name; private int age;... } Primitiv variabel age 7 Objekt-reference name David 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

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 Person p; p= new Person( David, 69); p.birthday(); p p ( David, 70) Person p; p= new Person( David, 69); p.birthday(); p ( David, 70) p= new Person( Chris, 19); p.birthday(); ( Chris, 20)

To referencer, et objekt Delte referencer int a, b; a= 7; b= a; b= b + 1; a b 7 8 Person a, b; a= new Person( David, 69); b= a; b.birthday(); a b ( David, 70)

Opførsel (metoder) 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

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)

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

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