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

Relevanta dokument
Objektorienterad Programmering (TDDC77)

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Objektorienterad Programmering (TDDC77)

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Objektorienterad Programmering (TDDC77)

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

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

Objektorienterad Programmering (TDDC77)

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

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

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

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

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

Objektorienterad Programmering (TDDC77)

OOP Objekt-orienterad programmering

Objektorienterad Programmering (TDDC77)

Föreläsning 14. Filhantering

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Objektorienterad Programmering (TDDC77)

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

Objektorienterad Programmering (TDDC77)

TDDC77 Objektorienterad Programmering

DAT043 Objektorienterad Programmering

OOP Objekt-orienterad programmering

Outline. Objektorienterad Programmering (TDDC77) Lösningen heter Collection. Collection gränsnittet. Collection. Iterable. Ahmed Rezine.

Tentamen OOP

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

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

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Objektorienterad programmering i Java

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

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.

Outline. Objektorienterad Programmering (TDDC77) Abstrakta klasser. Abstrakta metoder. Abstrakta klasser. Gränssnitt. Uppräkningar (enum) Ahmed Rezine

Tentamen , Introduktion till Java, dtaa98, dtea53

JAVAUTVECKLING LEKTION 4

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

F4. programmeringsteknik och Matlab

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

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

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

Språkkonventioner och redigering av tal.

Objektorienterad programmering D2

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Input. Programmering. Andra källor

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

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

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

Föreläsning 3-4 Innehåll

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Föreläsning 8: Exempel och problemlösning

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

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

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

OOP Objekt-orienterad programmering

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

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

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

TDDC77 Objektorienterad Programmering

Lösningar för tenta 2 DAT043,

OOP Objekt-orienterad programmering

OOP Tentamen

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

Felhantering. Andra brott mot språkets regler. Man kan också i programmet bryta mot ett antal olika regler som gäller. Exempelvis:

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

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

Tentamen FYTA11 Javaprogrammering

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

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

JAVA Mer om klasser och objektorientering

Föreläsning REPETITION & EXTENTA

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

TENTAMEN OOP

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

TDDC77 Objektorienterad Programmering

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

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

OOP Objekt-orienterad programmering

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

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

Föreläsning 6: Metoder och fält (arrays)

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

Tentamen, EDAA20/EDA501 Programmering

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Objektorienterad Programmering (TDDC77)

Kompilera och exekvera Javakod

Algoritmer. Två gränssnitt

Transkript:

Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar hur man kan * passerar command line argument */ class Cla { //få ett kursnman som command line argument och returnerar om den ing år static public void main ( String [] args ){ String [] it1kurser = {" TDDC77 ", " TDDD39 ", " TDDC75 "; if(args. length ==1){ boolean hittat = false ; for (int pos=0; pos <it1kurser. length &&! hittat ;pos++) System.out. println ( it1kurser [pos ]); if( it1kurser [pos ]. equals (args [0])) hittat = true ; if( hittat ){ System.out. println (args [0] + " ing år i IT1 "); else System.out. println (args [0] + " ing år inte i IT1 "); else System.out. println (" Anropa med : Cla kursnamn "); Vad blir resultatet? Nu då? /* SkuggningLokalt. java * Programmet illustrerar hur lokala variabler * kan skugga klass variabler. */ class SkuggningLokalt { public static int a = 6; public static int b = 5; /* SkuggningParam. java * Programmet illustrerar hur parametrar * kan skugga klass variabler. */ class SkuggningParam { public static int a = 6; public static int b = 5; public static int addition ( int c){ int a = 2; return a + c; public static void main ( String [] args ){ a = addition (b); System. out. println (a); public static int addition ( int a){ return a + b; public static void main ( String [] args ){ a = addition (b); System. out. println (a);

Outline Eclipse Felsökning I Exception in thread main java.lang.numberformatexception: 23.5 I En del metoder och operationer kan kasta ut fel I I API:et står vilka fel som kastas för en viss metod I Integer.parseInt(String) kastar ett NumberFormatException I Alla fel kan fångas och hanteras med try/catch-konstruktionen Läs in heltal Läs in heltal med felhantering int number = 0; print (" Mata in ett tal "); number = Integer. parseint ( in. nextline ()); println (" Du matade in talet : " + number ); I Fungerar för det mesta, men vad händer om man matar in 2.5 eller e? boolean valueok = true ; int number = 0; do{ valueok = true ; print (" Mata in ett tal "); Scanner in = new Scanner ( System. in ); String line = in. nextline (); try { number = Integer. parseint ( line ); catch ( NumberFormatException e){ System. out. println ( line + " är inget tal "); valueok = false ; while (! value OK ); System. out. println (" Du matade in talet : " + number );

Hantera felet Scanner och Slingor: exempel import java.util. Scanner ; import java.io.*; public class HittaKonto { I java.lang.arrayindexoutofboundsexception int [] list = {45, 34, 67, 98; while ( true ){ print (" Ange ett index : "); int index = Integer. parseint ( in. nextline ()); print (" Resultat : " + list [ index ]); static public void main ( String [] args ) throws IOException { Scanner namnscan, filscan, radscan ; String rad, namn ; namnscan = new Scanner ( System.in ); System.out. print (" Efternamn? "); namn = namnscan. next (); filscan = new Scanner ( new File ("it - konton -2014. txt " )); while ( filscan. hasnext ()){ rad = filscan. nextline (); radscan = new Scanner ( rad ); String radkod = radscan. next (); while ( radscan. hasnext ()){ String radnamn = radscan. next (); if( radnamn. equalsignorecase (namn )) System.out. println (" Matchar : " + rad ); Hantera felet Outline I Kan man undvika att ett fel inträffar från första början så är det bättre än try/catch I Vilket/vilka fel kan man undvika i arrayindexeringsexemplet? Eclipse Felsökning

Eclipse Hemma I Eclipse är en Integrated Development Environement (IDE) I Är helt gratis för alla operativsystem I Finns i flera varianter för olika språk/tillämpningar I Sköter organisationen av filer, editering av filer, kompilering, exekvering, felsökning mm I http://eclipse.org I Klicka på Download Eclipse I Välj Eclipse IDE for Java Developers Starta Översikt I Starta Eclipse (på universitetet med kommandot eclipse&) I Eclipse vill att du ska välja workspace, välj en mapp som alltid är tillgänglig och som kan användas hela kursen. Här kommer alla dina projekt och filer att sparas I Om du starta fe för första gången får du upp en välkomstskärm. Klicka på den böjda pilen till höger för att bli av med den I Du bör nu ha Eclipse igång med sisådär fyra delfönster I Till vänster bör du se Package Explorer. Här ser du dina olika projekt, och dess filer (tom första gången) I I mitten ligger Kodfönstret I Till höger ligger Outline här syns en översikt över dina funktioner och globala variabler I Längst ner finns en mängd tabbar, bland andra Problems för felmeddelanden om din kod och Console där in-/utmatning till/från programmet sker när du kör det

Skriv ut array Outline I Skriv en metod printarray(int[] list) som givet en array av heltal, list, skriver ut dess element separerade med kommatecken Eclipse Felsökning Buggar överallt!! Spår-utskrifter I Java-kompilatorn borde kunna hitta syntaktiska fel, som har att göra med syntaxen: en saknad ; eller I Java kompilatorn kan ibland hitta enkla semantiska fel: som oinitialiserade variabler, död kod I De flesta logiska och semantiska fel, funktionella fel mm, som att använda fel variabel eller istället för &&, de får ni leta efter själva! I Man skriver helt enkelt ut väl valda värden på variabler under programkörning I En av de vanligaste och enklaste sätten att felsöka ett program

Spår-utskrifter Debug-läget static int tal1 = 6, tal2 = 5; static int addition ( int a, int b){ System. out. println (" addition : Startar funktionen "); int c = a - b; return b; public static void main ( String [] args ){ int svar = addition ( tal1, tal2 ); System. out. println (" main : addition (" + tal1 + ", " + tal2 + ") =" + svar ); I Ett speciellt Eclipse-läge som är anpassat för avlusning I Arrangerar bland annat om underfönstren > java FelaktigFunktion addition : Startar funktionen main : addition (6, 5) = 5... > Brytpunkter (eng. Breakpoints) Koda, undersök med spårutskrifter eller debug-läget I Om man kör i debug-läge stannar programmet vid brytpunkter I Man kan undersöka variablernas värden, och fortsätta ett steg i taget I Mer invecklat än spårutskrifter, men också mer kraftfullt I Skriv en metod max(int[] s) som returnerar det högsta talet i arrayen s I Skriv en metod som avgör om en array är sorterad: minst till störst I Skriv en metod som avgör om en array är likadan som en annan