Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305 2005-10-06 Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder Exception Filinläsning med klassen Scanner Slumpa ett numme Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Repetition Instansmetoder kan endast anropas via en instans av klassen. Klassmetoder kan anropas både via en instans eller via klassnamnet. Men anropet ska ske via klassnamnet. Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Variabler deklareras instansvariabler 1.utanför metoder 2. utan static klassvariabler 2.med static lokala variabler 1.inuti en metod 2.utan static Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Metod deklareras Klassmetod med static med returtyp Instansmetod utan static Konstruktor utan returtyp samma namn som klassen Vahid Mosavat, Nada
Klassmetoder och Instansmetoder Programmeringsteknik och Matlab 2005-10-06 Klassmetoder och Instansmetoder Normalt anropas alltid en instansmetod via ett objekt (en instans av klassen). Color röd = new Color(255,0,0); Color mörkröd = röd.darker(); Om en metod deklareras med static (klassmetod) kan den anropas direkt från klassen - utan att man behöver skapa något objekt. double x = Math.sqrt(17); En klassmetod kan använda klassvariabler men för att använda instansvariabler så måste finnas ett objekt. Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Skapa en klass för TV TV:en har 3 kanaler/program. De 3 kanalerna ska initieras vid instanseringen. Det ska finnas metod så att man kan byta kanal när man anropar metoden. Det ska finnas en metod som visar vad det är för program som sänds. Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Klassen TV Vilka variabler ska klassen ha? Ska de vara instansvariabler eller klassvariabler? Vilka metoder ska klassen ha ska de vara klassmetoder eller instansmetoder? Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Static när och varför? 200 nokia 200 PC för 5000 P-HUS 200 BMW 200 limpa Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Static när och varför? 200 nokia 200 PC för 5000 P-HUS 200 BMW 200 limpa Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Static när och varför? 200 nokia 200 PC för 5000 P-HUS 200 BMW 200 limpa Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Static när och varför? 199 nokia 199 PC för 5000 P-HUS 199 BMW 199 limpa Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Klassen skylt Vilka variabler ska klassen ha? Ska de vara instansvariabel eller klassvariabel. Vilka metoder ska klassen ha ska de vara instansmetod eller klassmetod? Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Slumpa ett nummer För att generera ett slumptal finns det två olika sätt i java. Math.random() som returnerar ett tal av typen double som är större eller lika med 0.0 och mindre än 1.0 Klassen Random, där finns flera metoder som är mer användbar. Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Filinläsning Man kan använda klassen Scanner för att läsa data från en fil istället för tangentbordet. /* följande kod skapar en instans av Scanner för att läsa från filen namnlista.txt */ Scanner infil = new Scanner( new File(”namnlista.txt”)); //följande läser första raden från filen String rad = infil.nextLine(); Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Hantera ett särfall try block1 catch(Exception e) block2 Datorn försöker exekvera koden i block1. Om det blir något fel i någon sats så slutar exekveringen av koden som är kvar i block1 och datorn fortsätter exekvering av koden som finns i block2. Observera att kod i block2 exekveras ifall det blir något exekveringsfel i kod i block1. Vahid Mosavat, Nada
Programmeringsteknik och Matlab 2005-10-06 Hantering av särfall Det finns en hel del fördefinierade exception klasser man kan använda. FileNotFoundException, när programmet vill öppna en fil som inte finns. ArithmeticException, när man t.ex dividerar ett tal med noll.(talet får inte vara noll) ArrayIndexOutOfBoundsException, när man vill komma ett index i en array som inte finns. Osv … Vahid Mosavat, Nada