Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler –Metoder –Minnesbilder
Slutprov Du måste boka en tid på kursens webbsida. Samma typ av frågor som på frivilliga proven. Gränsen för godkänt i denna kursomgång är (1-x), där x är andel rätt på fp || 1 om labb 2-5 godkända senast 13 dec Hjälpmedel: vad som helst utom en annan person. ID-koll: ta med ID-kort och stud.leg.
Förberedelser Ta med bok, labbhäfte och alla andra anteckningar du kan tänkas behöva. Stäng av mobilen. Öppna ett extra Netscape-fönster för Javas API. Öppna ett emacs-fönster med ett javaprogram, där du kan klistra in exempel från provet (markera med musens vänsterknapp, klistra in med mittenknappen) Öppna ett terminalfönster där du kan provköra exempel.
Efter provet Bekräfta ditt resultat hos provansvariga handledare. Om du blev underkänd får du direkt en tid för provsamtal. Tider för att göra om provet kommer att finnas i vecka 51 (se bokningslista), men även i januari.
Grundläggande kunskaper Grunder: –primitiva datatyper –tilldelning –utskrift & inläsning –aritmetiska operatorer –styrstrukturer
Variabeldeklaration primitiva datatyper int n; lokal variabel int n = 5; initiering final double PI = ; konstant private double saldo; instansvariabel public int antalGuldMedaljer; instansvariabel som är åtkomlig utanför klassen public static int clearingNr; klassvariabel
Variabeldeklaration vektorer, Vector-objekt, objekt double[] vektor; referens till vektor av doubles Vector jvektor; referens till Vector-objekt Color färg; referens till objekt av klassen Color Color[] färgvektor; referens till vektor, vektorns element är referenser till objekt
Skapa och använda vektorer, Vector-objekt, objekt vektor = new double[10]; gör plats för 10 tal i vektorobjekt vektor[9] = 0.45; lagra värde i vektorelement jvektor = new Vector(); skapa en Vector- instans jvektor.addElement(färg); lagra referensen till ett objekt färg=new Color(135,240,300); referens till instans av klassen Color färgvektor = new Color[10] gör plats för 10 färgreferenser färgvektor[0] = new Color(100,200,250); element 0 i färg- vektorn blir referens till färgobjekt
Vektorer och klassen Vector Saker att tänka på: –a[0] är första elementet i en vektor. –a.length ger längden av en vektor. –v.elementAt(0) är första elementet i en Vector. –v.size ger längden av en Vector. –for -slingor används när man vill gå igenom varje element i en vektor eller Vector.
Konstruktor Konstruktorn är en metod med samma namn som klassen, anropas alltid efter new En klass kan ha flera konstruktorer med olika parametrar. I deklarationen av konstruktorn kan du behöva använda this om parametrar och instansvariabler har samma namn.
Klasser En klass innehåller variabler och metoder. I Javas API finns för varje klass –klassvariabler och instansvariabler under rubriken "Field Summary" –konstruktorer under rubriken "Constructor Summary" –metoder under rubriken "Method Summary"
class Klass { String instansvariabel = "Hej"; static String klassvariabel = "Hopp"; void instansmetod(String parameter) { System.out.println(instansvariabel + parameter); }//instansmetod static void klassmetod() { String lokalVariabel = "san"; System.out.println(klassvariabel + lokalVariabel); }//klassmetod public static void main(String[] args) { Klass referensvariabel = new Klass(); referensvariabel.instansmetod("san"); Klass.klassmetod(); }//main }//Klass
Deklarera metoder Formella parametrar anges med typ och namn. Om metoden ska returnera något så se till att metoden returnerar ett värde av rätt typ. Typen kan vara en primitiv datatyp eller en klass. En metod som deklareras som void kan inte returnera något värde.
Anropa metoder anrop av void-metod med parameter: sparkonto.uttag(100.0); double-metod utan parameter: double s = sparkonto.visaSaldo(); boolean-metod: if(str1.equals(str2))... static-metod: double x = Math.random(); anrop av metod i samma klass: double u = uttagsavgift(belopp);
Mer om metodanrop Saker att tänka på: –Kolla att anropsparametrarnas antal, typer och inbördes ordning stämmer med deklarationen av metoden. –Om metoden returnerar ett värde - se till att det tas om hand (t ex sparas i en variabel eller skrivs ut).
...metodanrop –En metod som är deklarerad som void returnerar inget värde. Metodanropet blir då en egen sats. –Se till att metoden anropas via ett objekt av rätt klass (eller via klassnamnet om metoden är static –deklarerad). –Kolla att metoden (eller variabeln) är åtkomlig ( public ).
Parametrar Saker att tänka på: –Primitiva datatyper (t ex int, double): värdet kopieras (kan alltså inte ändras). –För objekt (t ex Color) skickas en referens (värden inuti objektet kan således ändras). –String-objekt är konstanta - ett nytt objekt skapas när man försöker ändra (kan alltså inte ändras).
Minnesbilder Läs hela uppgiften först, så att du vet vilken/vilka variabler du ska rita upp. Namnet till vänster, typen ovanför (t ex double, String, String-objekt, int[], int[3]-objekt). Endast referensvariabler illustreras med pil. Provkör gärna exempel (lägg in System.out.println() för att skriva ut variablers värden).