Generiska typer. Java 5.0: Säkrare, snyggare, smidigare. Viktigaste utökningarna av språket: Autoboxing/unboxing, bakgrund.
|
|
- Leif Strömberg
- för 6 år sedan
- Visningar:
Transkript
1 Java 5.0: Säkrare, snyggare, smidigare Sven-Olof Nyström Uppsala Universitet 7 april 2005 Generiska typer Exempel: List<Integer>l = new ArrayList><Integer>(); l.add(new Integer(42)); (Mer om detta senare.) 1 3 Viktigaste utökningarna av språket: Generiska typer Autoboxing/auto-unboxing Utökade for-loopar Uppräkningar/enumerations Vararg Format Statisk import Autoboxing/unboxing, bakgrund För var och en av de åtta primitiva datatyperna finns en motsvarande klass, tex int Integer boolean Boolean Man kan konvertera mellan genom att skriva Integer x = new Integer(42); int y = x.intvalue(); 2 4
2 Autoboxing/unboxing i java 5.0 I Java 5.0 sker konverteringen automatiskt, man kan skriva Integer x = 42; int y = x; Man kan klara sig utan de primitiva typerna: Integer s = 0; for (Integer i = 0; i<10; i++) { s = s + i; For-loopar Regel: Det vi itererar över måste vara en array eller definiera gränssnittet Iteratable Man kan alltså definiera egna itererbara datatyper! Antagligen ej att rekommendera! (Varför inte?) 5 7 Exempel List<Integer> =... for(integer i : l) {... eller for(int i : l) {... int [] a = {4,7,1,7,6,9,1; for (int i : a) { System.out.println (i); Utökad for-loop Uppräkningar (enumerations) Anta att vi vill definiera en datatyp som kan anta tre olika värden, tex RED, BLUE, WHITE En lösning: public class Color { public static final int RED = 1; public static final int BLUE = 2; public static final int WHITE = 3; int mycolor = Color.RED; Ingen typsäkerhet! 6 8
3 Alternativ: public class Color { private int color; private Color (int c) {color = c; public static final Color RED = new Color(1); public static final Color BLUE = new Color(2); public static final Color WHITE = new Color(3); Color mycolor = Color.RED; Vararg Man kan definiera metoder med variabelt antal argument static void atest (Object... args) { for (int i = 0; i < args.length; i++) { System.out.println(args[i]); atest("en ", "sorglig", "historia"); atest(43, 3.13, false); 9 11 Uppräkningar i Java 5.0 Exempel: public enum Color {red, blue, white; definierar en uppräkning. (Liknar en klassdefinition, men kan ej ärvas.) Color.values() ger en samling av alla värden. for (Color i : Color.values()) { System.out.println (i); Format Inte så spännade, men bekvämt! int x = 42; double y = 3.14; String s = "Foo"; System.out.printf("Result: %d -> %f %n%n %s %n", x, y, s); 10 12
4 Statisk import Import av statiska attribut (klassvariabler och klassmetoder). Java 1.4.2: public class Old { public static void main(string[] arg) { double x = Double.parseDouble(arg[0]); double y = Math.sin(x); System.out.println("sin("+x+") = " + y); class Box<X> { X x; X get() { return x; void put (X x0) { x = x0; Generiska typer exempel Statisk import, Java 5.0: import static java.lang.double.*; import static java.lang.system.*; import static java.lang.math.*; public class Stat { public static void main(string[] arg) { double x = parsedouble(arg[0]); double y = sin(x); out.println("sin("+x+") = " + y); Genererisk typ test public static void main (String [] arg) { Box<String> b = new Box<String> (); b.put("foo"); String s = b.get(); System.out.println(s); Box<Integer> c = new Box<Integer> (); c.put(42); int i = c.get(); System.out.println(i); 14 16
5 Allmänt om generiska typer Parametrarna lever bara vid kompileringstillfället. Den bytekod som genereras hade lika gärna kunnat genereras av vanlig javakod (Java 1.4.2). Jfr templates i C++. Typ-parametrarna används när kompilatorn kontrollerar programmet och sätter in vissa konverteringar (autobox/unboxing). Frekvens, utskrift System.out.println(m.size()+ " distinct words detected:"); for(map.entry e : m.entryset()) { System.out.println(e.getKey() + " : " + e.getvalue()); Frekvens public static void main(string args[]) { Map <String,Integer> m = new HashMap<String, Integer>(); for (String a : args) { if (m.containskey(a)) { int freq = m.get(a); m.put(a, freq+1); else { m.put(a, 1); Kort mellanspel: Klassen StringBuffer Exempel: x = "a" "c" kan även skrivas x = new StringBuffer().append("a").append(4).append("c").toString() Den senare satsen skapar en ny (tom) stringbuffer, tar strängrepresentationen av varje operand i tur och ordning och konkatenerar till buffern. Vinst: Vi undviker att allokera ett antal temporära strängar
6 Operationer på StringBuffer Ungefär som String, men tillåter uppdatering StringBuffer(String s) StringBuffer(int l) en buffer av längd l, som från början är tom StringBuffer append (boolean b) (Samma för alla andra primitiva datatyper) StringBuffer: Exempel Anta att z en strängbuffer med innehåll start". efter metodanropet z.append(le") innehåller z strängen startle". Om vi i stället gör metodanropet z.insert(4, le") kommer z att innehålla starlet". Varje strängbuffer har en viss kapacitet. Om kapaciteten överskrids, allokeras en större intern array Perm2.java StringBuffer Operationer (forts) StringBuffer insert (int i, boolean b) skjuter in stängen vid position i char charat(int i) void setcharat(int i, char c) Viktigaste operationer: append och insert (tar alla typer) Problem: Givet en fil med ord, hitta ord som är varandras permutationer. Lösning: Definiera en funktion alphabetize som tar en sträng och returnerar en sträng med bokstäverna i alfabetisk ordning. Bygg en tabell Map<String,List<String>> där strängarna läggs in enligt den alfabetiserade nyckeln. Två strängar med samma nyckel är varandras permutationer och hamnar på samma lista
7 Alphabetize private static String alphabetize(string s) { SortedMap<Character, Integer> count = new TreeMap<Character, Integer> (); int len = s.length(); for (int i=0; i<len; i++) { char c = s.charat(i); if (count.containskey(c)) { count.put(c, count.get(c)+1); else { count.put(c, 1); Perm2, huvudprogrammet public class Perm2 { public static void main(string[] args) { int mingroupsize = Integer.parseInt(args[1]); Map<String,List<String>> m = new HashMap<String, List<String>>(); < Läs in strängarna i m > for (List<String> l : m.values()) { if (l.size() >= mingroupsize) System.out.println(l.size() + ": " + l); Alphabetize (forts) StringBuffer result = new StringBuffer(len); for (Map.Entry<Character, Integer> e : count.entryset()) { char c = e.getkey(); int n = e.getvalue(); Perm2, läs in strängarna i m Map<String,List<String>> m = new HashMap<String, List<String>>(); try { < Läs in strängarna, loop > for (int i=0; i<n; i++) result.append(c); return result.tostring(); catch(ioexception e) { System.err.println(e); System.exit(1); 26 28
8 Perm2, läs in strängarna, loop BufferedReader in = new BufferedReader(new FileReader(args[0])); String word; while((word = in.readline())!= null) { String alpha = alphabetize(word); List<String> l = m.get(alpha); if (l==null) m.put(alpha, l=new ArrayList<String>()); l.add(word); Hur många typer kan ett program definiera? class Box<X> { X x; Box(X x) { this.x = x; public String tostring () { return "Box<"+x+">"; Hur många... Lite mer om generiska typer Parametriska metoder: class Id { public static <T> T id(t x) { return x; public class Many { static <X> Box<Box<X>> boxinbox (Box<X> x) { return new Box<Box<X>>(x); public static void main (String[] args){ int n = Integer.parseInt(args[0]); Object x = 99; for (int i = 0; i<n; i++) { x = new Box<Object>(x); System.out.println(x); 30 32
9 Many, körexempel java5c Many.java java5 Many Exception in thread "main" java.lang.arrayindexoutofboundsexcept at Many.main(Many.java:19) java5 Many 5 Box<99> Box<Box<99>> Box<Box<Box<99>>> Box<Box<Box<Box<99>>>> Box<Box<Box<Box<Box<99>>>>> svenolof@harpo$ Är följande OK? Subtyper List<String> ls = new ArrayList<String>(); List<Object> lo = ls;??? Ja, för en lista av strängar är en lista av objekt??? Nej: Vid tilldelning av samligar kan information gå åt båda hållen. Exempel:lo.add(42); För att tillåta liknande typer med olika typargument kan man använda wildcards Allmänt om generiska typer i Java Kom ihåg: typparametrarna existerar bara vid kompileringstillfället. Internt är en generisk typ inte så olik en konventionell klassdefinition. (Jfr templates i C++) Typparametrarna används för kontroll och för autoboxing/unboxing. import java.util.*; Wildcards, exempel class Wild { static void printcollection (Collection <?> c) { for (Object e:c) { System.out.println(e); 34 36
10 Wildcards (forts) public static void main (String[] args) { List<String> ls = new ArrayList<String>(); for (String a:args) ls.add(a); printcollection (ls); List<Integer> li = new ArrayList<Integer>(); for (int i:new int[]{7,6,9,1) li.add(i); printcollection(li); Nåt som ej kan lösas utan wildcards class Delay { Collection<?> c1; void printcollection (Collection <?> c) { if (c1!= null) for (Object e:c1) { System.out.println(e); c1 = c; printcollection utan wildcards static <T> void printcollection (Collection <T> c) { for (Object e:c) { System.out.println(e); Klassen Delay, att notera Wildcards används på två ställen; i parametern till printcollection i typen hos instansvariabeln c1. Konvertering från mer specifik typ är OK men ej att skriva c1.add("foo"); Kan man implementera Delay i Java 1.4? 38 40
11 Begränsade typparametrar och wildcards Exempel: En fordonshierarki med klasser Fordon, Bil, Cykel etc. Den abstrakta klassen Fordon definierar en metod gettoppfart(). Hur definiera en metod som tar en samling av fordon och returnerar den totala toppfarten? int totaltoppfart (Collection <Fordon> c) { OK, om argumentet har typ Collection<Fordon> eller (tex) ArrayList<Fordon>. Ej OK om argumentet har typ Collection<Cykel> 41 Begränsat... Om man vill tillåta det senare argumentet... Fungerar int <T> totaltoppfart (Collection <T> c) { eller int totaltoppfart (Collection <?> c) { (Nej, varför inte?) Istället, försök med int totaltoppfart (Collection <? extends Fordon> c) { eller <T extends Fordon> int totaltoppfart (Collection <T> c) { 42
Samlingar Collection classes
Samlingar Collection classes Sven-Olof Nyström Uppsala Universitet 17 juni 2005 Skansholm: Kapitel 9, 19 Se även Suns tutorial om Collections 1 Motivation: Vill samla olika datastrukturer för att representera
Läs merCollection classes. Interface, första exempel. Interface (forts) Men först
Collection Classes Koppling mellan abstraktioner på hög nivå och praktiska och effektiva implementationer av datastrukturer abstraktionerna: naturliga matematiska begrepp mängder, sekvenser avbildningar
Läs merCollection Classes. bjectorienterad programmering Sida 1
Collection Classes Koppling mellan abstraktioner på hög nivå och praktiska och effektiva implementationer av datastrukturer abstraktionerna: naturliga matematiska begrepp mängder, sekvenser avbildningar
Läs merIdag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.
Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett
Läs merArv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }
En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class
Läs merAtt deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)
Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet
Läs merDatatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Läs merGeneriska klasser och funktioner
1 (6) Generiska klasser och funktioner Algoritmer och datastrukturer Obligatorisk nr 2 Syfte Att ge träning i definition av generiska klasser och funktioner i Java. Problemen som belyses är viktiga att
Läs merLite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Läs merIdag. Exempel, version 2. Exempel, version 3. Ett lite större exempel
Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av
Läs merLösningar för tenta 2 DAT043,
Lösningar för tenta 2 DAT043, 2018-06-08. Uppgift 1 public class Car{ private String model; private String year; private double price; public Car(String model, String year, double price){ this.model =
Läs merProgrammeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner
Programmeringsteknik och Matlab Övning 3 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merTentamen OOP 2015-03-14
Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning
Läs merIdag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes
Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om
Läs mer(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java
(Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart
Läs mer1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.
1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som
Läs merTENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
Läs merParsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck
Betrakta följande uttryck a +(b + c) d + e (f + g h) Parsing med Recursive Descent, Avbildningsklasser Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 22 november 2010 Beräkning med regler: multiplikation
Läs merLÖSNINGSFÖRSLAG
LÖSNINGSFÖRSLAG - 100406 Uppgift 1. a) Objekten som tillhör en icke-muterbar klass är oförändliga, dvs de behåller under hela sin livstid det tillstånd som de fick när de skapades. Icke-muterbara objekt
Läs merFöreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER
Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER Denna vecka Läsperiodens sista föreläsning Uppsamlingslabb (laboration 6 redovisas först nästa läsperiod) Ingen resurstid
Läs merDet finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Läs mer17.9 Funktioner för avbildningstabeller
17. Containerklasser l.setopaque(true); // ogenomskinlig bakgrund String fname = p.getproperty("fontname", "Serif"); String fstyle = p.getproperty("fontstyle", "PLAIN"); // översätt stilen till en heltalskonstant
Läs merIntroduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public
Läs merOOP Objekt-orienterad programmering
OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public
Läs merInstuderingsuppgifter läsvecka 6 - LÖSNINGAR
Instuderingsuppgifter läsvecka 6 - LÖSNINGAR 1. 2. Om vi använder interfacet List behöver vi inte bry oss om den konkret implementation som används, därför kan implementationen bytas ut genom att endast
Läs merpublic och private Obs: private inte skyddar mot access från andra objekt i samma klass.
public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private
Läs merF12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander
F12 - Collections ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Collections (samlingar) En collection är ett objekt som fungerar som en samling av andra objekt En collection erbjuder
Läs merLÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Läs merEDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass
EDAA20 Föreläsning 11-12 Klassen ArrayList Klassen ArrayList Skriva program som läser data från en textfil och skriver data till en textfil Repetition inför delmålskontroll 2 är en standardklass (i paketet
Läs merTENTAMEN OOP
TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Läs merLösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009
Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009 Christian 5 mars 2010 Observera att poängen nedan är preliminära det är möjligt att vi korrigerar något
Läs merLösningsförslag, tentamen FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Lösningsförslag, tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och
Läs merUndantag. Engelska: exceptions. Skansholm: exceptionella händelser
Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker öppna en fil som inte finns, dividera med noll, indexera utanför en array osv. bjectorienterad programmering
Läs merFöreläsning REPETITION & EXTENTA
Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder
Läs merExempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer
Exempel for (int antal=; antal < 75; antal++) System.out.println (antal); Arrayer for (int num=5; num
Läs merKompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Läs merOBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1
Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 1 OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer.
Läs merTDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket 1 Länkade listor Likadant som i Ada-kursen. 2 Stack MyStack MyStack
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merTentamen Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs
Tentamen 2006-0823 Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs Uppsala Universitet Instutitionen för informationsteknologi Avdelningen för datalogi Kursansvarig: Sven-Olof
Läs merDen som bara har en hammare tror att alla problem är spikar
Introduktion Föreläsning (Weiss kap. -4) Många begrepp blir det Introduktion till kursen Exempel: Datastrukturen mängd Generiska Den som bara har en hammare tror att alla problem är spikar Vilken
Läs merObjektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Läs merInkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private
Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall
Läs merÖvning vecka 6. public void method2() { //code block C method3(); //code block D }//method2
Övning vecka 6. TDA550 - Objektorienterad programvaruutveckling IT, fk Denna vecka ska vi titta på undantag, testning, generiska enheter, samlingar och designmönstret Iterator. Uppgift 1 Exceptions a)
Läs merFöreläsning 2 Objektorienterad programmering DD1332. Typomvandling
metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man
Läs merParallellism, återblick
Parallellism, återblick Josef Svenningsson December 11, 2012 Lab7 Det är problem med lab7. Gå med i den grupp som ni använt tidigare. DEMO Flera saker händer samtidigt Ofta hanterar program olika indata
Läs merTentamen Objekt-orienterad programmering i Java, 5p distanskurs
Tentamen 2006-05-06 Objekt-orienterad programmering i Java, 5p distanskurs Uppsala Universitet Instutitionen för informationsteknologi Avdelningen för datalogi Kursansvarig: Sven-Olof Nyström May 2, 2007
Läs merFöreläsning 2, vecka 8: Repetition
TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning
Läs merSpråkkonventioner och redigering av tal.
Språkkonventioner och redigering av tal. Kap J3-1 Konventioner för olika språk hanteras med hjälp av klassen java.util.locale Ett objekt i denna klass beskriver en lokal konvention. Lokala konventioner
Läs merGeneriska konstruktioner. Kursbokens kapitel 13
Generiska konstruktioner Kursbokens kapitel 13 1 Vad är en generisk konstruktion? Generisk står för; allmän eller generell En generisk konstruktion kan användas för olika typer av data Med hjälp av templates
Läs merTDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Laboration 2 Datastrukturer En liten uppgift Frågor 1 Laboration 2 - Datastrukturer Länkade datastrukturer Stack Kö (En. Queue) Lista
Läs merGrundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Läs mer4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &
TelefonKostnad static Math static $ & )&* +,-&. 0 +& + & 3 356+573 ) & & 6 3 3 & 3 * 6 3.:; < = 3 = 6 ; < : & >?.;,;@.A@;0,0,? @B0 C,0 > *. > 5 C D & D 5 * &! ; 66C! * C, 0 E,&! 0 F,G0 >: = = C 3 & HI
Läs merFöreläsning 2 Innehåll. Generiska klasser. Generik i Java. Varför generiska klasser Bakgrund
Föreläsning 2 Innehåll Generiska klasser Javas samlingsklasser är generiska. Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element metoden equals En generisk
Läs merFöreläsning 7. for-satsen Fält
Föreläsning 7 for-satsen Fält for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende: for (initiering; villkor; ändring) sats; for-satsen är ekvivalent med följande
Läs merSamlingar Collection classes
Samlingar Collection classes Sven-Olof Nyström Uppsala Universitet 17 mars 2005 Skansholm: Kapitel 9, 19 Se även Suns tutorial om Collections Olika slag av samlingar i Java Arrayer (Till exempel: int[])
Läs merTENTAMEN OOP
TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Läs merDAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU
DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU lösningsförslag till tentamen 2017-06-09 Tid: 8:30-12:30. Plats: SB. Ansvarig lärare: Fredrik Lindblad,
Läs merObjektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
Läs merDAT043 Objektorienterad Programmering
DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är
Läs merExempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.
Institutionen för Datavetenskap Göteborgs universitet HT2008 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 4 Exempel på listor (klassen ArrayList). Ett exempel med fält.
Läs merTentamen. Lösningsförslag
Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt
Läs merAbstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.
-Algoritmer och Datastrukturer- Abstrakt datatyp Datatyp för en variabel Betecknar i ett programmeringsspråk den mängd värden variabeln får anta. T ex kan en variabel av typ boolean anta värdena true och
Läs merPROGRAMMERING-Java TENTAMINA
PROGRAMMERING-Java TENTAMINA Nicolina Månsson 2010-03-17 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 42 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. - För
Läs merKonstruktion av klasser med klasser
Konstruktion av klasser med klasser Klasser kan byggas på redan denierade klasser genom att klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: Klassen PairOfDice har två attribut attribut
Läs merHur ser ett Java-program ut?
(27 augusti 2012 Repetitionsmaterial 1 ) Hur ser ett Java-program ut? // Ett första Java-program som skriver // ut ett meddelande på terminalen public class HelloWorld { public static void main(string
Läs merKungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h
Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :
Läs merObjektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ
orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]
Läs merProgrammeringsteknik för Bio1 och I1. Dagens program. Så här tillämpar vi det på J-uppgifterna. Allmänna programmeringstips. Övningsgrupp 3 (Sal E33)
Programmeringsteknik för Bio1 och I1 Övning 6 Dagens program Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning
Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (
Läs merArv. En klassdefinition class A extends B {... } definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som definierade för B.
Arv En klassdefinition class A extends B {... } definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som definierade för B. A är en subklass till B. B är en superklass till A. Arv:
Läs merInterface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010
Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010 interface, motivation och bakgrund Antag att vi gör en generell listklass: public class List { protected static class ListNode { public
Läs merLösningsförslag tentamen FYTA11 Java
Lunds universitet FYTA11 Institutionen för Teoretisk fysik HT 10 Lösningsförslag tentamen FYTA11 Java Måndag 10:e januari 2011, 09:00 13:00 Instruktioner Hjälpmedel: enkla ritverktyg och Javadoc-genererade
Läs merFöreläsning 1. Abstrakta datatyper, listor och effektivitet
Föreläsning 1 Abstrakta datatyper, listor och effektivitet Föreläsning 1 Datastrukturer Abstrakta DataTyper ADT Lista Lista och Java Collections Framework (ArrayList) Lista implementerad med en array Analys
Läs merArrayer. results
Arrayer 85 Arrayer Deklarerar utrymme för många variabler i en enda deklaration Array (fält) Varje värde har ett numeriskt index i Java indexeras en array med N element med indexen till N-1 Exempel: 1
Läs merOmtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:
Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-04-12, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:
Läs merObjektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering
och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering
Läs merObjektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6
Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner
Läs merFöreläsning 8: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och
Läs merEtt problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..
Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private
Läs merTENTAMEN OOP
TENTAMEN OOP 2014-03-15 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Läs merDagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.
(1 oktober 2017 F5 1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (1 oktober 2017 F5 2 ) Pokertärningar
Läs merKort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel
Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/
Läs merLösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 140828 a) public class MyMax { public static void main(string[] args) { //5 ändra String till String[] System.out.println("Maximum is: " + maximum(5, 7)); //2 ändra
Läs merDagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.
(16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar
Läs merRepetition av OOP- och Javabegrepp
ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir
Läs merSubklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Läs merDagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen
(10 februari 2019 F4 1 ) Dagens föreläsning Sett i datorsalarna Mer om arrayer Matriser Formatering av utskrifter Inläsning med hjälp av Scanner-klassen (10 februari 2019 F4 2 ) Hört och sett if-loop Skall
Läs mer//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.
/*==================================================================== Detta program hör ihop med dokumentet EXEMPEL_AVERAGE_POINTS.PDF där det finns förklaringar. ======================================================================*/
Läs merI STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else
Förkunskaper från tidigare föreläsningar: Objektorienterad Programmering (TDDC77) Föreläsning IX: Klasser och Objekt, Instantiering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 I STONE I Variabler,
Läs merPROG2 Tenta 2013-06-07 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2
DSV SU/KTH sid 1 (6) PROG2 VT13 PROG2 Tenta 2013-06-07 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2 Tentan består av tre uppgifter. Max poäng är 38. För betyget E (godkänd) krävs minst
Läs merGenerisk klass med typparameter Inre klass - ListIterator
Objektorienterad programmeringsmetodik Generics, clone Generics Återanvändning Ännu ett sätt att lösa ett gammalt problem: skriva så lite kod som möjligt Vi vill ha metoder som fungerar på olika klasser
Läs merRepetition av OOP- och Javabegrepp
ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir
Läs mer17.7 Funktioner för listor och köer
17. Containerklasser 17.7 Funktioner för listor och köer I avsnitt 17.6 såg vi hur man kunde använda iteratorer för att löpa igenom datasamlingar. Vi såg att man kunde använda iteratorer för alla datasamlingar
Läs merAlgoriter och Datastrukturer (ALDA/ID005)
Algoriter och Datastrukturer (ALDA/ID005) Algoritmer och datastrukturer, varför det? Algoritmer är oberoende av programmeringsspråket som används Rätt datastruktur kan vara halva lösningen på ett problem
Läs merLÖSNINGSFÖRSLAG TENTAMEN
LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND
Läs merDel A (obligatorisk för alla)
Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Satsen double x = (int)(1 + 3/2.0) + 3.; resulterar i b) Satsen int x = (int)(1 + 3/2.0) + 3.; resulterar
Läs merFöreläsning 6: Metoder och fält (arrays)
TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1, 2015-2016 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden
Läs merDagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merTDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Läs mer