Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.

Slides:



Advertisements
Lignende præsentationer
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Advertisements

Grundlæggende programmering Efterår 2001
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.
Intro Forelæsning 6 Linux Install Party i PC-Cafeen i morgen.
Begreber og Redskaber 2 BRP.
1 Unified Expression Language Copyright © Lund & Bendsen A/S Unified Expression Language.
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
Forelæsning 3.1 Collections Javas for-each løkke
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Forelæsning 3.2 Billedredigering (bl.a. brug af for-løkker)
Fundamentale datastrukturer
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
GP8, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 8 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Primitive typer. dIntProg, F08Typer.2 Subtyperelation for primitive typer byte ≤ short ≤ int ≤ long ≤ float ≤ double char boolean double d; int i; d =
Forelæsning 2.2 Tilstand og opførsel (repetition)
Fundamentale sprogbegreber
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
GP4, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 4 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
C#: Data Typer. 2 Nordjyllands Erhvervakademi Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies,
Forelæsning 7.1 – repetition
Identitet vs lighed. Spørgsmål Hvad udskriver run metoden? 1.”Ens!” 2.”Forskellige!” 3.Ved ikke public class Driver{ public static void run(){ String.
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 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
Quiz 3.1. Quiz 1 – Assignment dIntProg, E14 Hvad er værdierne af x og y efter udførelse af følgende program? 1.x er 6, y er 3 2.x er 8, y er 5 3.x er.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
Variabler, klassevariabler, identitet og lighed, collections
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.
 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,
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
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.
Fundamentale sprogbegreber Typer. dIntProg, F08Typer.2 Typer Primitive typer –boolean –byte, char, short, int, long, float, double Objekttyper –klassetype.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
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.
Quiz – Uge 4 – torsdag – første time. Skov med hjorte (stag = hjort) Programmér metoden ofSpecies. Metoden skal returnere en hjort af arten species. Hvis.
Forelæsning Uge 5 – Mandag
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 6 – Mandag
Forelæsning Uge 3 – Torsdag
Forelæsning Uge 4 – Mandag
Forelæsning Uge 5 – Mandag
Forelæsning Uge 4 – Mandag
Forelæsning Uge 6 – torsdag – repetition
Forelæsning Uge 2 – Mandag
Quiz – Uge 4 – torsdag – første time
Quiz – Uge 4 – torsdag – første time
Klasser og objekter (Afsnit i manualen).
Forelæsning Uge 4 – Mandag
Studiepraktik Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Forelæsning Uge 4 – Mandag
Forelæsning Uge 2 – Mandag
Quiz – Uge 4 – torsdag – første time
Quiz – Uge 4 – torsdag – første time
Parametrisering En kort introduktion.
Forelæsning Uge 2 – Mandag
Forelæsning Uge 2 – Mandag
Forelæsning Uge 4 – Mandag
Quiz – Uge 4 – torsdag – første time
Forelæsning Uge 4 – Torsdag
Quiz – Uge 9 – mandag – første time
Præsentationens transcript:

Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Afleveringsopgave 4.2: Billedredigering Forelæsning 4.1

Find et element i en liste dIntProg, E14

findEn = Find et element i en liste dIntProg, E14 Algoritmeskabelon –Gennemsøger en liste og returnerer et element der opfylder en specificeret betingelse –Hvis ingen elementer opfylder betingelsen returneres null

Find alle elementer i en liste dIntProg, E14

findAlle = Find alle elementer i en liste dIntProg, E14 Algoritmeskabelon –Gennemsøger en liste og returnerer en liste med alle elementer der opfylder en specificeret betingelse –Hvis ingen elementer opfylder betingelsen er listen tom –Video 4.2 fra BlueJ bogen handler om findAlle

dIntProg, E14 Primitive typer double d; //real int i; //heltal d = 3.14; i = 7; d = i // ok i = d // ej ok! Ved assignments skal typerne være ”sammenlignelige” Det samme gælder for aktuelle/formelle parametre byte ≤ short ≤ int ≤ long ≤ float ≤ double char boolean ≤ 8 bit16 bit32 bit 64 bit heltal reals 32 bit 64 bit 1 bit16 bit

dIntProg, E14 Typeregel for assignment Assignmentsætningen giver kun mening når typen af udtrykket på højresiden er en subtype af variablen på venstresiden. v= exp; T(exp) ≤ T(v) byte ≤ short ≤ int ≤ long ≤ float ≤ double char boolean ≤ 8 bit16 bit32 bit 64 bit heltal reals 32 bit 64 bit 1 bit16 bit

dIntProg, E14 Forfremmelse og begrænsning Forfremmelse –En værdi af en subtype kan ved en implicit typekonvertering (automatisk) forfremmes til en værdi af en supertype Begrænsning –En værdi af en supertype kan ved en eksplicit typekonvertering (et såkaldt ”type cast”) begrænses til en værdi af en subtype Eksempel: 9 + (int) ((6 * 2) / 2.5) 9 + (int) ( 12 / 2.5) 9 + (int) ( 12.0 / 2.5) 9 + (int) Hvad bliver resultatet hvis vi fjerner (int) ?

dIntProg, E14 Eksempel: Integers og doubles double d1,d2; int i; d1= 3.14; d2= 7; i= d1; i= d2; i= (int) d1; i= (int) d2; int ≤ double // ok // ej ok // ok

Bemærk –Tegn (char) behandles som heltal: '2' + 1 = 51 = '3' –Strenge (String) konkateneres: "24" + 1 = "241" dIntProg, E14 Forfremmelse og begrænsning Javas subtyperelation: char ≤ int ≤ double Forfremmelse (  ) sker automatisk hvis nødvendigt evaluerer til 3.5 '2' + 1 evaluerer til 51 !!! Begrænsning (  ) sker kun ved eksplicitte cast (int) ( ) evaluerer til 3 (char) ('2' + 1) evaluerer til '3' !!!

dIntProg, E14 Konstanter (literals) TypeLiteral int2 double2.0 char'2' String"2" String"two"

dIntProg, E14 Identitet versus lighed Java modellerer == identitet ≈ ”samme som” equals()lighed ≈ ”magen til” I det virkelige liv skelner vi mellem objekter der er identiske og objekter der er af magen til hinanden –Hvis et barn siger, at det vil have den Pizza, som står på nabobordet, kommer tjeneren med en ”magen til”.

dIntProg, E14 Identitet mellem objekter person1 == person2 evaluerer til false “Fred” :Person person1person2 “Jill” :Person

dIntProg, E14 Identitet mellem objekter person1 == person2 “Fred” :Person person1person2 “Fred” :Person person1 == person2 evaluerer til false

dIntProg, E14 Identitet mellem objekter “Fred” :Person person1person2 “Fred” :Person person1 == person2 evaluerer til true

dIntProg, E14 Identitet mellem strenge "bye" :String input "bye" :String String input = reader.getInput(); if( input == "bye" ) {... } == tester identitet evaluerer til false

String input = reader.getInput(); if( input.equals("bye") ) {... } dIntProg, E14 Lighed mellem strenge "bye" :String input "bye" :String evaluerer til true equals tester lighed

Opsummering Vi har kigget på to algoritmeskabeloner, som kan anvendes i mange forskellige sammenhænge –FindEn gennemsøger en liste og returnerer et element der opfylder en specificeret betingelse –FindAlle gennemsøger en liste og returnerer en liste med alle elementer der opfylder en specificeret betingelse Primitive typer –Typehierarki –Regler for assigmentns og parametre – Forfremmelse og begrænsning Identitet versus lighed –for objekter generelt –strenge dIntProg, E14

Afleveringsopg 4.2: Billedredigering I får ”udleveret” et projekt med nedenstående to klasser –Samme som i billedredigering i mandags forelæsningen

dIntProg, E14 Afleveringsopgave – fortsat I skal implementere en række billedoperationer –darken –invert –solarize (inverterer mørke pixels) –mirrorHorizontal og mirrorVertical –rotate –blur (udjævn)