Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

07 – Kort om OO Introduktion.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Selve objektet versus referencen til objektet Nedarvning
Grundlæggende programmering Efterår 2001
Objektorienteret programmering
Hvordan man skriver koden.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Objektorienteret programmering
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Delphi og C++ Builder C++ Referencer og pointere.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Forelæsning 3.1 Collections Javas for-each løkke
Fundamentale datastrukturer
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
GP 5, 26/ Grundlæggende programmering Efterår 2001 Forelæsning 5 onsdag 26/ kl. 9:15 – 12:00.
Objekter og klasser Rasmus D. Lehrmann DM
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Forelæsning 2.2 Tilstand og opførsel (repetition)
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Forelæsning 7.1 – repetition
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
Variabler, klassevariabler, identitet og lighed, collections
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Klassevariable- og metoder Tilstand og opførsel på klasseniveau.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering1.1 Turtlemaskinen Arkitektur, instruktionssæt og eksempler.
DAIMIIntroducerende Objektorienteret Programmering1 Polymorfi og nedarvning Motivation for arv og “mange former”
 1999, Henrik B. ChristensenIntroducerende objektorienteret programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2001Multimedie programmering10A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende Objektorienteret Programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Klassevariable- og metoder Funktionalitet på klasseniveau.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Sequence En container til heltal.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSequence.2 Datatypen Sequence Oprette Sequence()
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
Forelæsning Uge 2 – Torsdag Java syntax og style guide Sætninger –Simple sætninger (assignment, interne og eksterne metodekald) –Sammensatte sætninger.
Forelæsning Uge 2 – Torsdag
Klasser og objekter (Afsnit i manualen).
Forelæsning Uge 2 – Mandag
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

Klasser og objekter – grundbegreber

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.3 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

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.4 Klasse for begrebet person public class Person { private String navn; private int alder; // Opret person med navn n og alder 0 public Person(String n) {... } // Opret en person med navn n og alder a public Person(String n, int a) {... } // Personen bliver et år ældre public void foedselsdag() {... } // Returnerer om personen er teenager public boolean teenager() {... } } Tilstand Opførsel

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.5 Person-objekter Bruce 51 Paul 59 Michael 41 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

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.6 Tilstand Attribut (variabel) –type –værdi Simpel type –int, boolean,... –42, true Klassebaseret type –String, Person,... –”Bruce”, { ”Bruce”, 42 } navn ”Bruce” alder 51 public class Person { private String navn; private int alder;... } objekt-reference

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.7 Opførsel Metoder –konstruktør ingen returtype samme navn som klassen –get-metode (funktion) aflæser (del af) objektets tilstand –set-metode (procedure) opdaterer (del af) objektets tilstand –returtype specificerer hvilken type værdi der returneres (void  set- metode) –parametre type og navn –overloading flere metoder med samme navn public class Person {... // Opret en person med navn n // og alder 0 public Person(String n) {... } // Opret en person med navn n // og alder a public Person(String n, int a) {... } // Personen bliver et år ældre public void foedselsdag() {... } // Returnerer om personen // er teenager public boolean teenager() {... } }

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.8 Testprogram public class Driver { public static void test() { Person bs, pm, mc; bs = new Person( "Bruce Springsteen", 51 ); pm = new Person( "Paul McCartney ", 59 ); mc = new Person( "Michael Caspersen", 41 ); bs.foedselsdag(); System.out.println( bs.alder() ); System.out.println( pm.navn() ); System.out.println( mc.teenager() ); System.out.println( mc ); }

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.9 Afskærmning Attributter –objektets indkapslede tilstand –erklæres private –kan kun tilgås fra klassens egne metoder Metoder –objektets facade (også kaldet grænseflade) til omverdenen –erklæres public –kan aktiveres fra andre klasser public class Person { private String navn; private int alder; // Opret en person med navn n // og alder 0 public Person(String n) {... } // Opret en person med navn n // og alder a public Person(String n, int a) {... } // Personen bliver et år ældre public void foedselsdag() {... } // Returnerer om personen // er teenager public boolean teenager() {... } }

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.10 toString() toString –en metode der er arvet fra Object –god at have til test-formål –lav den selv (ellers...) –’+’ betegner (også) konkatenation af strenge –’\n’ betegner et linieskift public class Person {... // Returnerer en String- // repræsentation af personens // tilstand public String toString() { return ”Navn: ” + navn + ”\n” + ”Alder:” + alder; }

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.11 Object TurtlePersonString SkilledTurtle ArchitectTurtleIngeniørTurtle Klassehierarki i Java –et objektorienteret program består af en samling af klasser –klasser organiseres i et klassifikationshierarki –den mest generelle klasse er klassen Object –enhver klasse (bortset fra Object) er subklasse af en klasse –en klasse definerer en type, og en subklasse definerer en subtype –en objektreferencer kan refererer til et subtypeobjekt Turtle t = new ArchitectTurtle(); t.turn(90); // ok t.church(); // ej ok!

 Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.12 Objektinteraktion metode 2 metode 4 metode 1 metode 3 metode 2 metode 4 metode 1 metode 3 metode 2 metode 4 metode 1 metode 3