OOP&M - teori1 OOP– Föreläsning vecka Genomgång uppgifter Arbetsmetoder Repetition Kapitel 14 Metoder
OOP&M - teori2 Praktiskt JCreator mm. Skapa Workspace för ett antal uppgifter som hör ihop. Ett workspace per laboration. Skapa ett project för varje uppgift (Skapa som empty project +create file) Namnge uppgifterna/projekten Uppgift1,osv allt enligt mall Om ni laddar upp skall hela Workspacet allt vara zippat och kompilerat. Inga kompileringsfel accepteras.
OOP&M - teori3 Arbetsmetoder /Lars Tänk igenom problemet Gör ett skelett med kommentarer + kompilera Tänk igenom vilka klasser som behöver importeras (räkna bara med java.lang) Kopiera program-delar från liknande problem Lös smådelar + gör kontrollutskrifter med System.out.println(); Kompilera ofta, lös endast den/de första kompileringsfelen Kommentera bort för att testa delar av programmet för att isolera felet Städa
OOP&M - teori4 Inför/på övningarna Titta igenom föreläsningsanteckningar på nätet (webzone.k3.mah.se/oopm) Javadoc Code-conventions Tidigare övningar
OOP&M - teori5 De vanligaste primitiva datatyperna char tecken (enskilda bokstäver) ’a’ Deklareras: tex char myChar = ’a’; int heltal Deklareras: tex int myInt = 3; double decimaltal Deklareras: tex double myDouble = 3.0; boolean sant eller falskt Deklareras: tex boolean myBoolean = true; Variables2.java
OOP&M - teori6 Typkonvertering Implicit konvertering (automatisk) –Utförs då ingen information går förlorad Ex int till double Explicit konvertering (casting) –Kan ske mellan primitiva datatyper (char,double,int,boolean) Ex (int)c om c är character –Kan innebära att information går förlorad
OOP&M - teori7 Operatorer Aritmetiska operatorer +,-,/, *, % –Använd parenteser –”vanliga” prioriteringsregler gäller Specialoperatorer –++ –--
OOP&M - teori8 Jämförelseoperatorer/comparison operators Ger villkor för tex if-satser == (lika med) != (skilt från) < (mindre än) >(större än) <= (mindre än eller lika med) >= (större än eller lika med)
OOP&M - teori9 Booleska operatorer Används för att kombinera booleska uttryck. Att använda som villkor i tex if-satser. –&& (and,och) –|| (or,eller) –! (not,icke)
OOP&M - teori10 Ändlig följd av tecken Deklareras String namn1,namn2, …; (obs stor bokstav eftersom String är en klass) Skapas genom namn1 = ”En Text”; Eller namn1 = new String(”en text”); Konkateneras, (Concatenation), sammansätts mha ’+’ Strängkonstanter skrivs inom citationstecken –”This is a string” Metoder: –Med namn1.length() får man reda på antal tecken –Mer……. Datatypen Sträng String
OOP&M - teori11 En samling av variabler av samma typ samlade till en enhet. Deklareras typ[] namn1; Skapas genom namn1 = new typ[antal element]; Regler: –Har plats för det antal variabler som anges med new- uttrycket –Med vektornamn.length får man reda på antal element –Numrering börjar på 0 till antalelement –1 –Man kommer åt element genom att skriva vektornamn[index] –En nyskapad vektor har förutbestämda (implicita) startvärden (int 0,double 0.0, boolean false osv) –Ett vektorelement fungerar som en vanlig variabel Array eller vektor
OOP&M - teori12 Villkorssats If och else if (condition/villkor) statement else statement
OOP&M - teori13 Switch Används för att välja mellan ett större antal alternativ –Exempel Switch (x){ case 1: do something;break; case 2: do something else;break; case 3: do something more;break; default: if nothing above do this;break; }
OOP&M - teori14 Klassen JoptionPane och Javadoc Klassen skapar en enkel miljö för in/utmatning av data. Kom ihåg att: Importera klassen med import javax.swing.*; Avsluta programmet med System.exit(0); Två metoder från JOptionPane är speciellt användbara: Inmatning med ledtext(message) ger en sträng som resultat: String JOptionPane.showInputDialog(null,String message); Skriver ut en text(message) JOptionPane.showMessageDialog(null,String message);
OOP&M - teori15 Metoder Används för att: Strukturera kod Samla kod som man gör flera gånger på ett ställe Nyckelord: metoddefinition, metoddeklaration, metodanrop, argument, returtyp
OOP&M - teori16 Schematiskt utseende … int myInt;.. //metodanrop myInt = getMyNumber(9,10){ //metoddefinition,metoddeklaration,returtyp,argument public static int getMyNumber(int i,int j){ //Lokal variabel int k; k=i+j; return k; }
OOP&M - teori17 Metodspecifikation Beskriver hur och till vad metoden används. Beskriver inte hur problemet lösts utan hur metoden används: Syntax exempel: /**ger utskrift: "Det första talet är större eller lika med det andra“ och returnerar true eller "Det första talet är mindre än det andra“och returnerar false */ public static boolean isBiggerEqual(int a, int b)
OOP&M - teori18 Return, metodtyper Alla metoder utom void-metoder kräver return (Metoden lämnas och värde returneras). Metoder kan returnera alla typer av objekt. Vi arbetar hittills med returtyperna char, int, double, boolean, String, array Våra metoder är alla public static
OOP&M - teori19 Overloading/överlastade metoder Metoder som har samma namn men olika argument till exempel System.out.println()
OOP&M - teori20 Konverteringar TypTill StringFrån String(s) booleanString.valueOf(boolean) new Boolean(s).booleanValue() charString.valueOf(char)String.chatAt(0) intString.valueOf(int)Integer.parseInt(s) doubleString.valueOf(double)Double.parseDouble()
OOP&M - teori21 Kodkonventioner och annat Code conventions Bara en utgång i program och metoder (alla program och metoder bör sluta på sista raden för att öka läsbarheten). Ha helst bara ett return i metoder Metoder kan returnera alla typer av objekt. Vi arbetar med returtyperna char, int, double, boolean, String, array Våra metoder är alla public static
OOP&M - teori22 Sista föreläsning före uppehåll