Språkkonventioner och redigering av tal.



Relevanta dokument
Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Fördjupad Java. Undantagshantering. Fel

JAVAUTVECKLING LEKTION 7

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Att skriva till och läsa från terminalfönstret

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

F4. programmeringsteknik och Matlab

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

TDDC77 Objektorienterad Programmering

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Lösningar för tenta 2 DAT043,

Föreläsnings 9 - Exceptions, I/O

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Objektorienterad Programmering (TDDC77)

Hämta data mha URLer Föreläsning 2b. Innehåll Klassen URL

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

F1 - Introduktion. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad Programmering DAT043. Föreläsning 4 23/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Objektorienterad programmering i Java

Kap J 7-1 Mer om arv. (superklass) (subklass)

Objektorienterad programmering D2

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Lösningsförslag, tentamen FYTA11 Javaprogrammering

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Tentamen OOP

TENTAMEN OOP

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Undantag. Engelska: exceptions. Skansholm: exceptionella händelser

F10 - Exceptions. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 14. Filhantering

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

Fakulteten för ekonomi, kommunikation och IT. Corba. Datum: Mathias Andersson

Lösningsförslag till tentamen

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

LÖSNINGSFÖRSLAG TILL TENTAMEN PROGRAMMERINGSMETODIK MOM2 - JAVA, 4P.

1 Programmering i Java. Program element - Introduktion. Exempel. Exempel. Kapitel 3:

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Hur ser ett Java-program ut?

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

Objektorienterad Programmering (TDDC77)

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

TENTAMEN OOP

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Tentamen , Introduktion till Java, dtaa98, dtea53

Klasser och Objekt i Java. C++ använder beteckningarna datamedlem resp. medlemsfunktion. Klassdefinition. Exempel: Variabler

Chapter 3: Using Classes and Objects

DAT043 Objektorienterad Programmering

Konstruktion av klasser med klasser

Inre klasser Anonyma klasser Kloning I/O-ramverket. anonyma klasser

Föreläsning 6: Undantag, filhantering samt flera användbara klasser

Parallellism, återblick

OOP Omtenta

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Lösningsförslag till tentamen i OOP, HI1027 Fredag 21 oktober 2011

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering

Övning 4. I denna övning ska vi titta på icke-muterbarhet kontra muterbarhet, samt metoderna equals, hashcode och clone.

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

OOP Objekt-orienterad programmering

List.java. List.java. Printed by Tom Smedsaas

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

Lösningsförslag till tentamen

SMD 134 Objektorienterad programmering

Lösningsförslag till tentamen FYTA11 Javaprogrammering

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

Recitation 4. 2-D arrays. Exceptions

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

Översikt. Skriva och läsa data. Kontrollflöde. Två sorters loopar. For-loop. For-loop

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

725G61 - Laboration 4 Interaktion och I/O. Johan Falkenjack

Laboration 13, Arrayer och objekt

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

Objektorienterad programutveckling, fk

Transkript:

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 bestämmer format för datum, tider, numeriska tal, tecken etc Ett ex: Locale.setDefault(Locale( sv, SE )); NumberFormat swe= NumberFormat.getInstance(); NumberFormat us= NumberFormat.getInstance(Locale.US); System.out.println(swe.format(x)); System.out.println(us.format(x)); Utskrift 9 313 544,321 9,313,544.321 Redigering av tal, forts. Kap J3-2 Standardklassen NumberFormat innehåller hjälpmedel för redigering av tal. Den finns i paketet java.text. Gången är följande: Instansiera en redigerare. NumberFormat nf= NumberFormat.getInstance();//lokala konv Sätt redigeringsegenskaper med därför avsedd metod.t ex nf.setmaximumfractiondigits(2); nf.setminimumintegerdigits(8); nf.setgroupingused(false); Anropa format() för att omvandla talet till text. System.out.println(nf.format(x)); Utskrift 09313544.32 Redigeringsmetoder Kap J3-3 Redigeringsmetoder i java.text.numberformat setmaximumfractiondigits(n);//högst n decimaler, def=3 setmaximumintegerdigits(n);//högst n heltalssiffror setminimumfractiondigits(n);//minst n decimaler setminimumintegerdigits(n);//minst n heltalssiffror setgroupingused(true);// skall grupperas setgroupingused(false);// skall ej grupperas 1

Exempel Kap J3-4 Ändring av metoden tostring() i klassen Date. Nedanstående metod returnerar t ex strängen 19990101 Redigerare används främst när numeriska resultat skall visas i program med grafiska användargränssnitt. // Swedish conversion to String public String tostring( ) NumberFormat nf= NumberFormat.getInstance(); nf.setminimumintegerdigits(2); nf.setgroupingused(false); return nf.format( year) + nf.format( month) + nf.format( day); Inläsning och utskrift. Kap J3-5 Läsning och skrivning är en smula komplicerat i Java. Anledningar: Java i första hand avsett för GUI. Java använder strömmar (streams ) och skall vara så generellt som möjligt. höjer ambitionsnivån jämfört med vad som var fallet med tidigare språk. En ström (stream) är ett flöde av data som strömmar in i eller ut från ett program. I/O hanteras med hjälp av paketet java.io. sofistikerat bibliotek innehållande mängder av möjligheter. Grundläggande strömoperationer. Kap J3-6 Tre strömmar är fördefinierade för terminal-i/o System.in standard input klass InputStream System.out standard output klass PrintStream använder buffert. Töms med System.out.flush(). System.err standard error Metoderna print() och println() används för formaterad utskrift. Varje typ kan konverteras till en sträng genom anrop av dess tostring()-metod. readline() (och read()) används för formaterad inläsning. readline() läser till dess den stöter på ett radslutstecken eller EOF. returnerar bara själva textsträngen. returnerar null om EOF. ett läsfel genererar någon IOException. måste fångas förr eller senare. 2

StringTokenizer Kap J3-7 StringTokenizer-objekt är bra att använda för att läsa flera värden från en rad. Se exempel nedan. Separerar strängen m h a tokens. import java.util.* import java.util.*; public class MinTest public static void main(string args[ ] ) BufferedReader in = new BufferedReader(new InputStreamReader( System.in)); String oneline; StringTokenizer str; int x; double y; StringTokenizer, forts. Kap J3-8 System.out.println("Enter one int and one double on one line:"); try oneline = in.readline( ); str = new StringTokenizer( oneline ); if( str.counttokens( )!= 2 ) throw new NumberFormatException( ); x = Integer.parseInt( str.nexttoken( ) ); y = Double.valueOf( str.nexttoken( ) ).doublevalue(); System.out.println( "Min: " + Math.min( x, y ) ); catch( Exception e ) System.err.println( "Error: need two correct numbers" ); Inläsning Kap J3-9 System.in (InputStream) InputStreamReader in (Bufferedreader) Läsning från System.in måste göras via andra strömmar. Se ovan. I BufferedReader finns metoden readline(). Genererar felsignaler(exceptionella händelser) av klassen IOException. Metoderna parseint() och valueof() finns i omslagsklasserna (wrapper classes) Integer och Double. Genererar felsignalerav klassen NumberFormatException. Felsignaler måste antingen tas om hand eller skickas vidare. Se alternativ main-metod nedan... public class MinTest public static void main(stringargs[ ] ) throws IOException, NumberFormatException.. 3

Textfiler. Kap J3-10 En fil är en godtyckligt lång följd av bytes. Två typer textfiler tecken kodade enligt LATIN_1, ASCII eller annan kod. binärfiler t ex data på binär form, exekverbara program etc. Om standardklasser används är det enklast med FileReader och FileWriter. m h a dessa kan koppling ske till önskad fil. En grundregel i Java är att vad som fungerar för terminal- I/O också fungerar för filer. Se följande program! Klassen ListaFiler Kap J3-11 public class ListaFiler public static void main( String [ ] args ) try if(args.length==0) System.out.println("No files specified"); for( int i = 0; i < args.length; i++ ) listfile( args[ i ] ); catch( Exception e ) System.out.println( e ); public static void listfile( String filename ) throws IOException FileReader thefile; BufferedReader filein = null; String oneline; System.out.println( "FILE: " + filename ); thefile = new FileReader( filename ); filein = new BufferedReader( thefile ); while( ( oneline = filein.readline( ) )!= null ) System.out.println(oneLine); if(filein!= null ) filein.close( ); Några körningar Kap J3-12 D:\minaprog\java\ohtester>java ListaFiler a.txt b.txt FILE: a.txt Peter Hellstr m FILE: b.txt Hans Filips v 12 D:\minaprog\java\ohtester>java ListaFiler No files specified D:\minaprog\java\ohtester>java ListaFiler a.txt d.txt FILE: a.txt Peter Hellstr m FILE: d.txt java.io.filenotfoundexception: d.txt (Det g_r inte att hitta filen) D:\minaprog\java\ohtester> 4

Utskrift Kap J3-13 Vid utskrift (till fil) är det lämpligt att använda sig av Klassen PrintWriter. innehåller metoderna println() print() En PrintWriter-ström kopplas till en fil med hjälp av en FileWriter-ström, via en mellanliggande BufferedWriterström. FileNotFoundException genereras om inte filen finns! Se följande program Klass FilKopiering Kap J3-14 class FilKopiering public static void main(string[] arg) throws IOException, FileNotFoundException //skapa ström från infil BufferedReader infil= new BufferedReader( new FileReader("indata.txt") ); //skapa ström till utfil PrintWriter utfil= new PrintWriter( new BufferedWriter( new FileWriter("utdata.txt") ) ); //kopiera int antalrad=0; int antalteck=0; while (true) String rad= infil.readline(); if (rad==null) break; utfil.print(rad+" "); antalrad++; antalteck += rad.length(); utfil.close(); System.out.println("Antal kopierade rader= " + antalrad); System.out.println("Antal kopierade tecken= " + antalteck); Utskrift ochfilinnehåll Kap J3-15 DOS-fönster D:\minaprog\java\ohtester>java FilKopiering Antal kopierade rader= 4 Antal kopierade tecken= 10 D:\minaprog\java\ohtester> indata. txt a bb ccc dddd utdata. txt a bb ccc dddd 5

Spionklassen Kap J3-16 class Spy public static PrintWriter spyfil; public static void spyprt(string mess) throws IOException, FileNotFoundException //Skriv ut meddelandet spyfil.println(mess); class SpyUser private boolean b=true; private int i=1; private double d=1.1; public void dosome() throws IOException, FileNotFoundException Spy.spyprt("Min första instansvariabel är= " + b); Spy.spyprt("Min ANDRA instansvariabel är= " + i); Spy.spyprt("Min tredje instansvariabel är= " + d); Test av Spionklassen Kap J3-17 class TestSpyUser public static void main(string[] arg) throws IOException, FileNotFoundException System.out.println("Börjar "); //skapa ström till utfil PrintWriter utfil= new PrintWriter( new BufferedWriter( new FileWriter("utdata.txt") ) ); Spy.spyFil=utFil; SpyUser su= new SpyUser(); su.dosome(); su.dosome(); utfil.close(); System.out.println("Slut " ); Reserverade ord i Java. Kap J3-18 ----------------------------------------------------------------- abstract double int super boolean else interface switch break extends long synchronized byte final native this case finally new throw catch float package throws char for private transient class goto protected try const if public void continue implements return volatile default import short while do instanceof static ----------------------------------------------------------------- const och goto används inte i språket men är reserverade ändå. 6

Javas Urmoder - den verkligt objektifierade. Kap J3-19 Object fungerar som en generell basklass för samtliga klasser. Alla klasser ärver direkt eller indirekt av denna. public class BuzzWord //Implicit arv av Object //Medlemmar... publicclass BuzzWord extends Object//Explicit arv //Medlemmar. Några metoder i klassen Object. Kap J3-20 String tostring() Returnerar en sträng som representerar värdet av objektet. boolean equals(object obj) Jämför om två objekt är lika. Object clone() Skapar en kopia av nuvarande objekt. final Class getclass() Returnerar information ett objekt. void finalize() Anropas när ett objekt delokeras. Används för att städa upp efter sig. int hashcode() Returnerar en unik hashkod. 7