DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Grundlæggende programmering Efterår 2001
Hvordan man skriver koden.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Delphi og C++ Builder C++ Referencer og pointere.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
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
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Forelæsning 2.2 Tilstand og opførsel (repetition)
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
GP3, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 3 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
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.
DAIMIIntroducerende objektorienteret programmering4C.1 Systemdesign Design med flere klasser, En kaffeautomat.
 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.
DAIMIIntroducerende Objektorienteret Programmering1 Polymorfi og nedarvning Motivation for arv og “mange former”
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering12A.1 Moduler Packages i Java.
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 Programmering1 Collections og opremsning Nye typer collections, objektorienteret sweep.
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.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
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.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Klassevariable- og metoder Funktionalitet på klasseniveau.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
Fundamentale sprogbegreber Typer. dIntProg, F08Typer.2 Typer Primitive typer –boolean –byte, char, short, int, long, float, double Objekttyper –klassetype.
 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.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5B.1 Sweep-algoritmer Programmering med invarianter og uden kaniner.
Tutankhamons Grav Et modellerings eksempel
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
Forelæsning Uge 2 – Torsdag Java syntax og style guide Sætninger –Simple sætninger (assignment, interne og eksterne metodekald) –Sammensatte sætninger.
Algoritmeskabeloner findOne, findAll, findNoOf, findSumOf Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder.
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 4 – Mandag
Forelæsning Uge 4 – Mandag
Klasser og objekter (Afsnit i manualen).
Forelæsning Uge 4 – Mandag
ROBOTTERNE KOMMER - OZOBOTTERNE.
Forelæsning Uge 2 – Mandag
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik, null

DAIMIIntroducerende objektorienteret programmering4B.2 Tilstand  Et program er en model. Det specielle ved computerbaserede modeller er deres dynamik - ting “sker” og “ændrer sig”, når programmet kører.  Det fundamentale begreb er tilstand, vi taler om hvilken tilstand de forskellige objekter har, og hvorledes tilstanden ændrer sig, når vi påvirker dem ved at kalde metoder.  Eks: Skildpadden skifter tilstand ved move

DAIMIIntroducerende objektorienteret programmering4B.3 Erklæring  Den basale erklæring af et objekt har I allerede set:  Turtle t = new Turtle();  Faktisk er dette en ‘forkortelse’ for flg: Turtle t; t = new Turtle(); Erklæring af t Tildeling til t

DAIMIIntroducerende objektorienteret programmering4B.4 Erklæring Turtle t;  betyder: “Opret en reference variabel, kaldet t, som kan referere til objekter af klassen Turtle” t = new Turtle();  betyder: “Skab et objekt fra klassen Turtle og kald konstruktøren på objektet; new returnerer en reference til dette objekt, som så tildeles til reference variablen, t”

DAIMIIntroducerende objektorienteret programmering4B.5 Den grafiske version Turtle t; t: t = new Turtle(); t: (Turtle objekt) Navnet, t, repræsenterer en reference til objektet

DAIMIIntroducerende objektorienteret programmering4B.6 Tilstand  En beskrivelse af tilstand, en værdi, kræver:  Substans/fysisk repræsentation: “plads”/objekt i computerens hukommelse, det sørger ‘new’ for  Identifikation/navn Unik måde at referere til objektet, vores reference variable er en sådan unik reference  Type Angivelse af tilstandens type/klasse, det er så indholdet af vores objekt

DAIMIIntroducerende objektorienteret programmering4B.7 Typer i Java  Java har to slags typer: Klassebaserede: Turtle, Date2, Account, … Grundlæggende: int, double, char, boolean  De grundlæggende datatyper repræsenterer typer som direkte kan håndteres af den underlæggende hardware, og derfor behandles de anderledes end objekter af klasser

DAIMIIntroducerende objektorienteret programmering4B.8 Erklæring af heltal  Erklæring af int skrives på samme måde:  inty;  Navnet ‘y’ repræsenterer værdien, her 7  ‘new’ giver ingen mening her, der er afsat plads til værdien  int y; y = 7 7 y:

DAIMIIntroducerende objektorienteret programmering4B.9 Reference versus værdi  I Java håndteres objekter af klasser altid referencebaseret, og objekter af grundlæggende typer altid værdibaseret. t: (Turtle objekt) 7 y:

DAIMIIntroducerende objektorienteret programmering4B.10 Manipulation  Vi manipulerer objekter ved at kalde metoder. Da grundlæggende typer ikke er repræsenteret vha. objekter men værdier, er der ingen metoder at kalde. Heldigvis…  Sammenlign: x/(y+1)  med x.divide( y.add(1) )  Operationer på grundlæggende typer håndteres direkte af java compileren

DAIMIIntroducerende objektorienteret programmering4B.11 Grundlæggende typer  Java er udstyret med nogle få grundlæggende typer Heltal “Reelle tal” E-25 Tegn‘a’ ‘D’ ‘#’ Sandhedsværditruefalse  På Java’sk hedder de:  intdoublecharboolean

DAIMIIntroducerende objektorienteret programmering4B.12 Grundlæggende typer  double x, y; x = 2.345; y = 32.45*x ;  char c; c = ‘a’;  boolean b; b = true;  “Syntaktisk sukker” - erklæring og initialisering  char c = ‘a’;  boolean b = true;  for (int i = 0; i < 4; i++)

DAIMIIntroducerende objektorienteret programmering4B.13 Udtryksevaluering  Udtryk evalueres efter Java’s præcedensregler - og disse afspejler naturligvis sædvanlige matematiske konventioner:  5+3*2 = 11

DAIMIIntroducerende objektorienteret programmering4B.14 Øvelse t = new Turtle(); t: (Turtle) Garbage Collection

DAIMIIntroducerende objektorienteret programmering4B.15 null  En reference kan angive at den ikke refererer til noget element. Da har den værdien null Date i = new Date(); i.set( 1999, 3, 4 ); i = null; i: 1999,3,4

DAIMIIntroducerende objektorienteret programmering4B.16 Semantik af tildeling int i, j; i = 42; j = 5637; i = j; Date i = new Date(), j = new Date(); i.set(1999,3,4); j.set(1999,12,31); i = j; j.set(1888,12,24); 5637 i: j: i: j: 1888,12,241999,3,4

DAIMIIntroducerende objektorienteret programmering4B.17 Værdi- contra referencetildeling  Grundlæggende typer har tildeling af værdi; klassebaserede tildeling af referencer.  Men… Hvordan kopierer vi så indholdet?  public Object clone()  j = (Date) i.clone();

DAIMIIntroducerende objektorienteret programmering4B.18 Semantik af sammenligning int i, j; i = 42; j = 42; if (i == j) { … } Date i = new Date(), j = new Date(); i.set( 1999, 3, 4 ); j.set( 1999, 3, 4 ); if (i == j) { … } 42 i: j: i: j: 1999,3,4

DAIMIIntroducerende objektorienteret programmering4B.19 Reference/værdisammenlign.  Grundlæggende typer har sammenligning af værdi; klassebaserede sammenligning af referencer.  Men… Hvordan sammenligner vi så indholdet?  public boolean equals( Object o )  i.equals( j ); Pas på ikke at sammenligne æbler med pærer!