Variabler, klassevariabler, identitet og lighed, collections

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Hvordan man skriver koden.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Tietgen Skolen Trick med facadeklasse og serialisering ”Trick” – model ”samles” til eet overordnet objekt Alle klasser i model skal have attriutten [Serializable]
Collectionklasser Ekstra materiale. Collections Motivation – hvorfor bruge collections? Realisering af en-til-mange relationer – Importer, erklær, initialiser.
Forelæsning 3.1 Collections Javas for-each løkke
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
GP6, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 6 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
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)
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
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;
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
Blå gruppe: Søren, Alexander, Torben, Lasse. De 4 vigtige items: - Singelton - Override clone judiciously - Use interfaces only to define type - Prefer.
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.
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 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.
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
 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.
 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.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
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)
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
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.
Klassevariable- og metoder Funktionalitet på klasseniveau.
 Jens Bennedsen 2001Multimedie programmering Collections Samlinger af objekter.
 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.
Introduktion til programmering Repetition. dIntProg, F08Repetition.2 dIntProg Sidste forelæsning (12/10) –kort tilbagemelding på evaluering –repetition.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
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;
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.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
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 Uge 4 – Torsdag
Forelæsning Uge 4 – Torsdag
Forelæsning Uge 4 – Mandag
Query optimization MICHAEL I
Forelæsning Uge 12 – Torsdag
Forelæsning Uge 6 – torsdag – repetition
Klasser og objekter (Afsnit i manualen).
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 3 – Mandag
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

Variabler, klassevariabler, identitet og lighed, collections Stort og småt om Java Variabler, klassevariabler, identitet og lighed, collections

Oversigt Variabler Klassevariabler og -metoder Identitet vs lighed feltvariabler, parametre, lokale variabler Klassevariabler og -metoder static Identitet vs lighed identitet: samme som (==) lighed: magen til (equals) Array Statisk særudgave af List Collections a closer look dIntProg, E08

Variabler Feltvariabler Lokale variabler Parametre tilstand for objekter levetid er den samme som objektets Lokale variabler hjælpevariabler i en metode levetid er metodekaldet Parametre parametrisering af metoder lokale variabler hvis startværdi leveres af kalderen dIntProg, E08

Klassevariabler og –metoder (static) Instansvariabler og –metoder Ethvert objekter har egen version af ikke-static attributter Kald af en ikke-static metode er en besked sendt til et objekt Klassevariabler og –metoder Attributter og metoder kan erklæres static En static-komponent tilhører klassen, ej objekter af denne (klassemetode og –variabel) En klassemetode kan kun tilgå klassevariabler og kalde andre klassemetoder Benyttes til at modellere klasseegenskaber Eksempel: myndighedsalder for personer, fælles rentesats for alle konti dIntProg, E08

Eksempel public class Account { private static double interestRate; private int balance; private Person owner; public static void setInterestRate (double rate) { interestRate = rate; } public void addInterest() { balance = (int) (balance * interestRate); ... dIntProg, E08

Eksempler fra java.lang.Math public class Math { public static final double PI = 3.141592653589793 ... /** 0.0 ≤ random() < 1.0 */ public static double random() {...} /** sqrt(a) == a */ public static double sqrt(double a) {...} /** pow(a, b) == ab */ public static double pow(double a, double b) {...} } dIntProg, E08

Undlad dette: interestRate ændres for alle konti Kald af klassemetoder Klassemetoder kaldes via klassen Kan kaldes via objekt, men det er dårlig stil Math.PI Math.random() Account.setInterestRate(1.10); Math mathObject = new Math(); double d= mathObject.random() Account myAccount = new Account(...); myAccount.setInterestRate(1.10); Undlad dette: interestRate ændres for alle konti dIntProg, E08

Static vs. non-static Tilgang Variabel / Metode static ej static + – + + dIntProg, E08

Identitet vs. lighed (1) Identitet  Samme som (==) Lighed  Magen til (equals) dIntProg, E08

Identitet vs. lighed (2) person1 == person2 ? :Person :Person “Fred” “Jill” person1 person2 == is not true here (of course) person1 == person2 ? dIntProg, E08

Identitet vs. lighed (3) person1 == person2 ? :Person :Person “Fred” == is still not true here (different objects, == tests identity) person1 == person2 ? dIntProg, E08

Identitet vs. lighed (4) person1 == person2 ? :Person :Person “Fred” == is still not true here (different objects, == tests identity) person1 == person2 ? dIntProg, E08

Identitet vs. lighed (Strings) String input = reader.getInput(); if(input == "bye") { ... } == tester identitet :String :String == ? "bye" "bye" == is still not true here (different objects, == tests identity) input  (kan være) falsk! dIntProg, E08

Identitet vs. lighed (Strings) String input = reader.getInput(); if(input.equals("bye")) { ... } equals tester lighed :String :String ? .equals( ) "bye" "bye" == is still not true here (different objects, == tests identity) input  sand! dIntProg, E08

Array List af fast størrelse T[] var; var = new T[number]; //størrelse er altid number t: [4,1] int[] t; t = new int[2]; t[0] = 4; t[1] = 1; d: [ , ] Die[] d; d = new Die[2]; d[0] = new Die(); d[1] = new Die(); dIntProg, E08

Interfaces (specifikation) Klasser (implementation) Collections Interfaces (specifikation) H V A D class CE { Collection<Integer> c; public CE(...) { ... } public void execute() { c.add(1); c.add(3); ... int sum = 0; for ( int i : c ) { sum += i; } HashSet impl Set TreeSet impl SortedSet ArrayList impl List LinkedList HashMap impl Map TreeMap impl SortedMap Klasser (implementation) H V O R D A N dIntProg, E08