Kommentarer Kommentarer påverkar inte programmet. Hello World! /*

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
INTRODUKTION TILL PROGRAMMERING
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Funktioner och programorganisation
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
De fundamentala datatyperna
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Programkodens uppbyggnad
Att programmera i språket Java
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
i olika programmeringsspråk
Föreläsning 4, Kapitel 4 Gruppera objekt Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Föreläsning 11 Arrayer.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
Programmering B PHP Lektion 2
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Programmeringsteknik för Media1 & K1
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Föreläsning 10 Stränghantering.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 Klasser Och Objekt.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
OOP&M - teori1 OOP– Föreläsning vecka Genomgång uppgifter Arbetsmetoder Repetition Kapitel 14 Metoder.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
Föreläsning 7 Metoder Parametrar Klassmetod.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Föreläsning 3: Booleans, if, switch
Föreläsning 8: Exempel och problemlösning
Föreläsning 2: Typer, klasser, tilldelning
Iteration – Repetitionssats - while
Presentationens avskrift:

Kommentarer Kommentarer påverkar inte programmet. Hello World! /* BLOCKKOMMENTAR Programmet Skriver ut "Hello World!" på skärmen. Alla Java-program bygger på en liknande struktur. */ public class HelloWorld{ public static void main(String[] args){ //RADKOMMENTARER System.out.print("Hello World!");//Hello World! Skrivs ut på skärmen. } Beskriv att kod mellan /* och */ hoppas över av datorn Beskriv att allt efter två snedstreck // ignoreraras och datorn fortsätter på nästa rad. Hello World! 2017-10-13 Magnus Wärja

Skillnaden mellan print och println Metoden print ställer sig ej på en ny rad efter att en textsträng skrivits ut. public class HelloWorld{ public static void main(String[] args){ System.out.print("Hello World!"); } Metoden println ställer sig på en ny rad efter att en textsträng skrivits ut. System.out.println("Hello World!"); Hello World!Hello World!Hello World! Hello World! 2017-10-13 Magnus Wärja

Konkatenering (+) Plustecknet (+) används för att konkatenera samman textsträngar. public class Konkatenering{ public static void main(String[] args){ //Två textsträngar kan konkateneras samman till en lång sträng System.out.println("Låt oss presentera några heliga " + "årtal för alla gaisare."); // En textsträng kan innehålla siffror System.out.println("Svenska cupmästare: 1942"); // Numeriska värden kan konkateneras till text System.out.println("Serievinnare och svenska " + "mästare: " + 1931 + " och " + 1954); } Låt oss presentera några heliga årtal för alla gaisare: Svenska cupmästare: 1942 Serievinnare och svenska mästare: 1931 och 1954 2017-10-13 Magnus Wärja

Undantagstecken Kompelatorn vet ej hur ovanstående uttryck skall tolkas! System.out.println("Jag ropade "BINGO" hörde du inte det?"); System.out.println("Jag ropade \"BINGO\" hörde du inte det?"); Compile-time error Korrekt 2017-10-13 Magnus Wärja

Undantagstecken Undantagstecken \b \t \n \r \" \' \\ Betydelse Backsteg Tabb Ny rad Vagnsretur Dubbelt citattecken Enkelt citattecken Bakvänt snedsträck 2017-10-13 Magnus Wärja

Undantagstecken Roses are red, Violets are blue, Sugar is sweet, public class Undantagstecken{ public static void main(String[] args){ System.out.println("Roses are red,\n\tViolets are blue,\n" + "Sugar is sweet,\n\tBut I have \"commitment issues\",\n\t" + "So I'd rather just be friends\n\tat this point in our " + "relationship."); } Roses are red, Violets are blue, Sugar is sweet, But I have "commitment issues", So I'd rather just be friends at this point in our relationship. 2017-10-13 Magnus Wärja

Variabler En variabel är ett namn kan ses som en plats, ett ”fack”, i datorns minne. En variabel måste deklareras genom specificering av variabelns namn och datatyp (vilken typ av information variabeln skall hålla i). Flera variabler kan deklareras samtidigt: int räknare, talEtt, talTva; //inte bra (svårläst) En varabel kan redan vid deklaration ges ett värde: int sum = 0; //Korrekt int bas = 32, max = 149; //inte bra (svårläst) int totalt; data typ variabelnamn 2017-10-13 Magnus Wärja

Variabeltilldelning En triangel har 3 sidor. En kvadrat har 4 sidor. public class Geometri{ public static void main (String[] args){ int sidor = 3; //Deklarering med initiering System.out.println ("En triangel har " + sidor + " sidor."); sidor = 4; //Variabeln tilldelas ett nytt värde System.out.println ("En kvadrat har " + sidor + " sidor."); } En triangel har 3 sidor. En kvadrat har 4 sidor. 2017-10-13 Magnus Wärja

Variabler (Konstanter) En konstant skiljer sig från variabler genom att deras värde aldrig går att ändra. I Java används uttrycket final vid deklaration av en konstant. För att lätt känna igen en konstant i koden brukar de skrivas i versaler. final double MOMS = 1.25; _ _ _ public class beräknaPris{ public static void main(String[] args){ double summa; summa = MOMS * 100; System.out.print("Summan är: " + summa); } Summan är : 125.0 2017-10-13 Magnus Wärja

Datatyper (Javas datatyper) Det finns åtta olika primitiva datatyper i Java. Fyra av dem representerar olika typer av heltal: byte, short, int, long Två av dem representerar flyttal: float, double En datatyp representerar bokstäver: char En datatyp representerar booleanska värden (sant/falskt): boolean 2017-10-13 Magnus Wärja

Variabler (Numeriska variabler) De olika numeriska datatyperna kräver olika mycket plats i datorns minne. Typ byte short int long float double Utrymme 8 bits 16 bits 32 bits 64 bits Min värde -128 -32,768 -2 147 483 648 < -9 x 1018 +/- 3,4 x 1038 med 7 signifikanta siffror +/- 1,7 x 10308 med 15 signifikanta siffror Max värde 127 32,767 2 147 483 647 > 9 x 1018 2017-10-13 Magnus Wärja

Variabler (char, boolean) För att lagra enskilda skrivbara tecken använder man den primitiva datatypen char. char teckenEtt; teckenEtt = 'A'; En variabel deklarerad som boolean kan antingen representera värdet ”false” eller värdet ”true”. Oftast deklareras en boolsk variabel vid tillfällen då variabeln kan skifta mellan två tillstånd t ex strömbrytare av / strömbrytare på. public class Char_boolean{ public static void main(String[ ] args){ char teckenEtt = 'A';; boolean strömbrytarePå = true; System.out.println(teckenEtt); System.out.println(strömbrytarePå); } A true 2017-10-13 Magnus Wärja

Beräkningar (operatorer) Nedanstående tecken är vanliga operatorer för att utföra numeriska beräkningar. Addition + Subtraktion - Multiplikation * Division / (Restvärde %) 2017-10-13 Magnus Wärja

Beräkningar a + b + c + d + e a + b * c - d / e 1 2 3 4 3 1 4 2 Prioriteringen mellan operatorerna följer vanliga regler inom matematiken, Exempelvis: 1 + 2 * 3, tolkas som 1 + (2 * 3) och ger resultatet 7 a + b + c + d + e a + b * c - d / e 1 2 3 4 3 1 4 2 a / (b + c) - d % e 2 1 4 3 a / (b * (c + (d - e))) 4 3 2 1 2017-10-13 Magnus Wärja

Beräkningar public class Beräkningar{ public static void main(String[] args){ System.out.println("5 + 5 = " + 5 + 5); //Använd paranteser vid beräkning!!! System.out.println("8 - 2 = " + (8 - 2)); System.out.println("4 * 5 = " + (4 * 5)); System.out.println("25 / 5 = " + (25 / 5)); System.out.println("(7 + 3) * 4 = " + ((7 + 3) * 4)); } 5 + 5 = 55 8 - 2 = 6 4 * 5 = 20 25 / 5 = 5 (7 + 3) * 4 = 40 2017-10-13 Magnus Wärja

Operatorer för att öka och minska Uttrycket: tal++; är samma som: tal = tal + 1; Uttryck tal++ ++tal tal-- --tal Operation adderar 1 subtraherar 1 Uttryckets värde gamla värdet nya värdet 2017-10-13 Magnus Wärja

Operatorer för att öka och minska public class ÖkaMinska{ public static void main (String[] args){ int a = 5; int b = 5; int c = 10; System.out.println(a++); //5 System.out.println(++b); //6 System.out.println(a); //6 System.out.println(b); //6 System.out.println(c++ + ++c); //10+12 } Sista raden i varje beräkningssats har finns där för att visa hur man gör en tom rad vid utskriften av resultatet. 5 6 22 2017-10-13 Magnus Wärja

Tilldelningsoperatorer += -= *= /= %= Exempel x += y x -= y x *= y x /= y x %= y Motsvarar x = x + y x = x - y x = x * y x = x / y x = x % y Exempel: int summa = 100; int vara = 50; summa = summa + vara; // summa = 150 är samma som: summa += vara; // summa = 150 2017-10-13 Magnus Wärja

Konvertera data Från Till Ibland kan det vara nödvändigt att konvertera ett värde av en viss datatyp till en annan. Nedanstående konvertering fungerar i alla situationer. Från byte short char int long float Till short, int, long, float eller double int, long, float eller double long, float eller double float eller double double 2017-10-13 Magnus Wärja

Konvertera data (casting) public class Konvertera{ public static void main(String[] args){ int antalGrupper = 6; int summaStudenter = 100; double studPerGrupp; studPerGrupp = (double) summaStudenter / antalGrupper; System.out.println("Stud. per grupp: " + studPerGrupp); System.out.println("Stud. per grupp: " + (int)studPerGrupp); } Stud. per grupp: 16.666666 Stud. per grupp: 16 2017-10-13 Magnus Wärja

Klassen Scanner För att läsa in värden från terminalfönstret används en klass vid namn Scanner. Denna klass ligger i ett paket (util) och måste därför importeras. import java.util.Scanner; Du måste även deklarera referensvariabeln scan. Scanner scan = new Scanner (System.in); Kommunikationen med terminalföstret sker med hjälp av metoder. message = scan.nextLine(); Mer om metoder, klasser och paket diskuteras senare på denna delkurs. 2017-10-13 Magnus Wärja

Några av Klassen Scanners metoder Returnerar Namn double nextDouble() Läser in tecknen som en double. int nextInt () Läser in tecknen som en int. String nextLine() Läser in textsträngar 2017-10-13 Magnus Wärja

Klassen Scanner (exempel) import java.util.Scanner; public class Scannerdemo{ public static void main(String[] args){ Scanner scan = new Scanner (System.in); final int aktuelltÅr = 2008; int födelseår; int ålder; System.out.print("Vilket år är du född? ”); födelseår = scan.nextInt(); //1985 ålder = aktuelltÅr - födelseår; System.out.println("Du är " + ålder + " år gammal."); } Vilket år är du född? 1985 Du är 22 år gammal. 2017-10-13 Magnus Wärja

Klasser och objekt Klass Objektmetoder Klassmetoder Ett objekt är en instans av en klass. Av en klass kan man skapa flera instanser (objekt) med var för sig olika tillstånd. Man kan se objekt som svarta lådor där objektets metoder låter oss påverka objektets tillstånd utan att faktiskt känna till hur det går till, eller hur det ser ut, "under skalet”. Objektmetoder En metod är en definition av en viss händelse. Ett objekt (och ibland en klass) använder metoder för att vi skall kunna kommunicera med den. Det enda vi behöver veta om en metod är vilken typ av data vi behöver förse den med och vad vi får tillbaka. En TV har till exempel metoder i form av olika knappar. Genom att känna till knapparnas egenskaper kan vi genom att trycka på rätt knapp påverka en viss TV:s tillstånd. Klassmetoder En del metoder kan användas genom klassnamnet istället för att skapa ett objekt av klassen. Dessa metoder kallas klassmetoder eller statiska metoder. Math-klassen innehåller många statiska metoder 2017-10-13 Magnus Wärja

Anrop till konstruktor Skapa objekt Objekt initieras (skapas, deklareras) på ett annat sätt än deklaration av primitiva datatyper. Scanner scan = new Scanner (System.in); Klassdeklaration Parameter Anrop till konstruktor Nytt objekts namn Konstruktorn finns i klassen Scanner 2017-10-13 Magnus Wärja

Klassen Strings konstruktor Operatorn new behövs ej när man skall skapa Stringobjekt (detta gäller enbart klassen String). public class Referensvariabler{ public static void main(String[] args){ String namn = new String("Anna Nilsson"); //Ett Stringobjekt kan skapas och initieras samtidigt String namn = "Anna Nilsson"; // eller som nedan: // String namn // namn = "Anna Nilsson"; System.out.println("namn: " + namn); } namn: Anna Nilsson 2017-10-13 Magnus Wärja

Att använda metoder Objektmetoder En metod är en definition av en viss händelse. Ett objekt (och ibland en klass) använder metoder för att vi skall kunna kommunicera med den. Det enda vi behöver veta om en metod är vilken typ av data vi behöver förse den med och vad vi får tillbaka. En TV har till exempel metoder i form av olika knappar. Genom att känna till knapparnas egenskaper kan vi genom att trycka på rätt knapp påverka en viss TV:s tillstånd. 2017-10-13 Magnus Wärja

Använda klasser och objekt Till skillnad från primitiva datatyper har objekt specifika metoder. import java.util.Scanner; public class OH28{ public static void main(String[] args){ final int PENSION = 65; int ålder = 38; int årTillPension; Scanner scan = new Scanner(System.in); String namn; System.out.print("Vad heter du? "); namn = scan.nextLine(); System.out.print("Hur gammal är du? "); ålder = scan.nextInt(); namn = namn.toUpperCase(); årTillPension = PENSION - ålder; System.out.println(namn + ", du går i pension om: " + årTillPension + " år!"); } Metodnamn (och ett metodanrop) Metodnamn (och ett metodanrop) Metodnamn (och ett metodanrop) Vad heter du? anna Hur gammal är du? 20 ANNA, du går i pension om: 45 år! 2017-10-13 Magnus Wärja

Att använda metoder Nedan ändvänds några av klassen Strings metoder public class AnvändaMetoder{ public static void main(String[] args){ String namn = "Anna Nilsson"; System.out.println("Antal tecken: " + namn.length()); System.out.println(”Namn: " + namn.toUpperCase()); } Antal tecken: 12 Namn: ANNA NILSSON 2017-10-13 Magnus Wärja

Klassen Strings metoder Nedan ändvänds några av klassen Strings metoder public class Stringmetoder{ public static void main (String [] args){ int langd; String tecken; String personEtt = "Anna Nilsson"; String personTva = "Hans Månsson"; personEtt = personEtt.toUpperCase(); //ANNA NILSSON personTva = personTva.toLowerCase(); //hans månsson langd = personEtt.length(); //12 tecken = personTva.substring(1,2); //a personEtt = personEtt.replace('N','X'); //AXXA XILSSOX personTva = personTva.substring(0,4); //hans } Metoder kan ta emot en till flera parametrar 2017-10-13 Magnus Wärja

Några av klassen Strings metoder Method Summary boolean contains(CharSequence s) Returns true if and only if this string contains the specified sequence of char values.  boolean equals(Object anObject) Compares this string to the specified object.  int indexOf(String str) Returns the index within this string of the first occurrence of the specified substring. indexOf(String str, int fromIndex) Returns the index within this string of the first occurrence of the specified substring, starting at the specified index. length() Returns the length of this string.  String replace(String oldChar, String newChar) Returns a new string resulting from replacing all occurrences of oldChar in this string with newChar. substring(int beginIndex) Returns a new string that is a substring of this string. substring(int beginIndex, int endIndex) toLowerCase() Converts all of the characters in this String to lower case using the rules of the default locale. toUpperCase() Converts all of the characters in this String to upper case using the rules of the default locale. 2017-10-13 Magnus Wärja

Paket Javas inbyggda klassbibliotek är organiserade i paket. Några av paketen specificeras nedan: Alla java.lang-paketets klasser importeras automatiskt till programmet. Därför har import inte används när vi använt System- och String-klasserna i tidigare exempel. Paket java.lang java.applet java.awt javax.swing java.net java.util javax.xml.parsers Syfte Generell support Skapar applets för webben Grafik och grafiska gränssnitt Ytterligare grafiska möjligheter och komponenter Nätverkskommunikation Allmänna ”nyttiga” klasser Hantering av XML dokument 2017-10-13 Magnus Wärja

Importera paket När du skall använda en klass som finns i ett paket behöver du importera paketet och ange adressen till den klass du vill använda: import java.util.Random; Med hjälp av asterisk (*) kan du importera alla klasser i ett paket: import java.util.*; 2017-10-13 Magnus Wärja

Importera klassen Random I java.util-paketet ingår Randomklassen vilken innehåller klasser som genererar olika slumpmässiga tal. import java.util.Random; public class Slumptal{ public static void main (String[] args){ Random slumptal = new Random(); int tal1; tal1 = slumptal.nextInt(); System.out.println ("Ett slumptal (integer): " + tal1); tal1 = slumptal.nextInt(7); System.out.println ("Från 0 till 6: " + tal1); tal1 = slumptal.nextInt(6) + 1; System.out.println ("Från 1 till 6: " + tal1); tal1 = slumptal.nextInt(20) - 10; System.out.println ("Från -10 till 9:" + tal1); } Ett slumptal (integer): 1213991402 Från 0 till 6: 2 Från 1 till 6: 1 Från -10 till 9: -2 2017-10-13 Magnus Wärja

Några av klassen Randoms metoder float nextFloat() Randoms a random number between 0.0 (inclusive) and 1.0 (exclusive).  int nextInt() Randoms a random number that rangers over all possible int values (positive and negative). nextInt(int num) Randoms a random number in the range 0 to num-1. 2017-10-13 Magnus Wärja

Klassmetoder (statiska metoder) En del metoder kan användas genom klassnamnet istället för att skapa ett objekt av klassen. Dessa metoder kallas klassmetoder eller statiska metoder. Math-klassen innehåller många statiska metoder. 2017-10-13 Magnus Wärja

Klassmetoder (statiska metoder) import java.util.Scanner; //Klassen Math ingår i java.lang-paketet, //import behövs därför ej göras.) public class BeraknaKvadratrot{ public static void main (String[ ] args){ double tal; double kvadratrot; Scanner scan = new Scanner (System.in); System.out.print ("Ange ett tal: "); tal = scan.nextDouble(); //EJ STATISK kvadratrot = Math.sqrt(tal); //STATISK (Klassnamnet anropas. Inget objekt har skapats) System.out.println ("Kvadratroten av talet är: " + kvadratrot); } Ange ett tal: 25 Kvadratroten av talet är: 5.0 2017-10-13 Magnus Wärja

Några av klassen Math metoder static int abs(int a) Returns the absolute value of an int value. static double cos(double a)   Returns the trigonometric cosine of an angle. sin(double a)   Returns the trigonometric sine of an angle. tan(double a)   Returns the trigonometric tangent of an angle. exp(double a)   Returns Euler's number e raised to the power of a double value. pow(double a, double b)   Returns the value of the first argument raised to the power of the second argument. random()   Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. sqrt(double a)   Returns the correctly rounded positive square root of a double value. 2017-10-13 Magnus Wärja

Formatering (NumberFormat) import java.util.Scanner; import java.text.NumberFormat; public class Formatering{ public static void main(String[] args){ final double RABATT = 0.25; int kvantitet; double pris; Scanner scan = new Scanner (System.in); NumberFormat fmt1 = NumberFormat.getCurrencyInstance(); NumberFormat fmt2 = NumberFormat.getPercentInstance(); System.out.print("Ange kvantitet: "); kvantitet = scan.nextInt(); System.out.print("Ange pris: "); pris = scan.nextDouble(); System.out.println("Totalpris: " + (kvantitet * pris)); System.out.println("Totalpris: " + fmt1.format(kvantitet * pris)); System.out.println("Totalpris med " + fmt2.format(RABATT) + " rabatt är: " + fmt1.format((kvantitet * pris) - ((kvantitet * pris) * RABATT))); } Ange kvantitet: 100 Ange pris: 25 Totalpris: 2500.0 Totalpris: 2 500,00 kr Totalpris med 25% rabatt är: 1 875,00 kr 2017-10-13 Magnus Wärja

Några av klassen NumberFormats metoder  String format(double number) Specialization of format. static NumberFormat getCurrencyInstance() Returns a currency format for the current default locale. getPercentInstance() Returns a percentage format for the current default locale. 2017-10-13 Magnus Wärja

Formatering (DecimalFormat) import java.util.Scanner; import java.text.DecimalFormat; public class Formatering2{ public static void main(String[] args){ double tal1 =310; double tal2 = 3; Scanner scan = new Scanner (System.in); DecimalFormat fmt1 = new DecimalFormat("0.###"); System.out.print("Ange ett tal: "); tal1 = scan.nextDouble(); System.out.print("Ange ytterligare ett tal: "); tal2 = scan.nextDouble(); System.out.println(tal1 +"/" + tal2 + " = " + (tal1/tal2)); System.out.println(); System.out.println("Med klassen DecimalFormat"); System.out.println(tal1 +"/" + tal2 + " = " + fmt1.format(tal1/tal2)); } Ange ett tal: 10 Ange ytterligare ett tal: 3 10.0/3.0 = 3.3333333333333335 Med klassen DecimalFormat 10.0/3.0 = 3,333 2017-10-13 Magnus Wärja

Några av klassen DecimalFormats metoder   Konstruktor DecimalFormat(String pattern)           Creates a DecimalFormat using the given pattern and the symbols for the default locale. Metoder void applyPattern(String pattern)           Apply the given pattern to this Format object.  String format(double number)           Returns a string containing the specified number formatted according to the current pattern. 2017-10-13 Magnus Wärja

Wrapper-klass Det finns en så kallad wrapper-klass för var och en av Javas primitiva datatyper(tex int > Integer, float > Float, double > Double). I dessa klasser finns det två mycket användbara metoder (särskilt vid gränssnittsprogrammering). Metoden parseXXX (tex x = Double.parseDouble(enTextsträng)) skapar en primitiv datatyp av ett Stringobjekt. Metoden toString (tex Double.toString(enDouble)) skapar ett Stringobjekt av en primitiv datatyp. public class BeraknaMoms{ public static void main (String[ ] args){ Scanner scan = new Scanner (System.in); String pNr; int födelseår; String resultat; System.out.print ("Skriv in ditt personnummer: "); pNr = scan.nextLine(); pNr = pNr.substring(0,2); födelseår = Integer.parseInt(pNr); //String till int! resultat = Integer.toString(108-födelseår); //int till String! System.out.println ("Du blir/blev " + resultat + " år " + "i år"); } Skriv in ditt personnummer: 800202-1234 Du blir/blev 38 år i år 2017-10-13 Magnus Wärja

2017-10-13 Magnus Wärja

Boolska uttryck En villkorssats använder ofta någon av Javas relationsoperatorer, som alla returnerar boolska svar, dvs true eller false : == lika med != inte lika med < mindre än > större än <= mindre än eller lika med >= större än eller lika med Notera skillnaden mellan “lika med”-operatorn (==) och tilldelningsoperatorn (=) 2017-10-13 Magnus Wärja

Boolska uttryck 56 == 56 Sant ’a’ == ’a’ ’a’ == ’A’ Falskt ’x’ != ’z’ 45 < 80 2 >= 6 2 >= 2 2017-10-13 Magnus Wärja

Logiska uttryck Det logiska NOT - uttrycket: !a är sant om a är falskt och falskt om a är sant Det logiska AND - uttrycket: a && b är sant om både a och b är sant. Annars falskt Det logiska OR - uttrycket a || b är sant om a eller b eller båda är sant. Annars falskt 2017-10-13 Magnus Wärja

Selektion (if- sats) falskt sats sant villkor if ( villkor ) sats 2017-10-13 Magnus Wärja

Selektion (if- else- sats) import java.util.Scanner; public class IfSats1{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); final double TIMLÖN = 100; final int VECKA = 40; int timmar; double utbetala; System.out.print("Skriv in veckans arbetade timmar: "); timmar = scan.nextInt(); if (timmar > VECKA){ utbetala = VECKA * TIMLÖN + (timmar - VECKA) * (TIMLÖN * 1.5); } else{ utbetala = timmar * TIMLÖN; System.out.println("Veckans lön: " + utbetala + " kr " ); Skriv in veckans arbetade timmar: 80 Veckans lön: 10000.0 kr 2017-10-13 Magnus Wärja

Selektion (if- else- sats) import java.util.Scanner; public class IfSats2{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int poäng; int betyg; System.out.print("Skriv in ditt tentaresultat (0 to 100): "); poäng = scan.nextInt(); betyg = poäng / 10; if (betyg > 7){ System.out.println("Ditt betyg är VG"); } else if (betyg < 5){ System.out.println("Ditt betyg är U"); else{ System.out.println("Ditt betyg är G"); Skriv in ditt tentaresultat (0 to 100): 85 Ditt betyg är VG 2017-10-13 Magnus Wärja

Blocksatser Block Gissa ett nummer mellan 1 och 10: 7 import java.util.Scanner; public class Gissa{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); final int SVAR = 4; int gissatNummer; System.out.print("Gissa ett nummer mellan 1 och 10: "); gissatNummer = scan.nextInt(); if (gissatNummer == SVAR) System.out.println("BRA, RÄTT NUMMER !!!"); else{ System.out.println("Ditt svar var tyvärr fel."); System.out.println("Rätt nummer var: " + SVAR); } Block Gissa ett nummer mellan 1 och 10: 7 Ditt svar var tyvärr fel. Rätt nummer var: 4 2017-10-13 Magnus Wärja

Nästlade satser Ange betyg: 10 Du har angivit ett felaktigt värde! import java.util.Scanner; public class IfSats3{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int resultat; System.out.print("Ange betyg: "); resultat = scan.nextInt(); if (resultat > 0 && resultat < 10){ if (resultat > 4 && resultat <= 7){ System.out.println("Resultat = G"); } else if (resultat > 7){ System.out.println("Resultat = VG"); else{ System.out.println("Resultat = U"); System.out.println("Du har angivit ett felaktigt värde!"); }}} Ange betyg: 10 Du har angivit ett felaktigt värde! 2017-10-13 Magnus Wärja

Iteration (while- sats) While-satsen har följande syntax: sats sant villkor falskt while ( villkor ) sats; Satsen upprepas tills dess att villkoret ger värdet falskt. 2017-10-13 Magnus Wärja

Iteration (while- sats) import java.util.Scanner; public class Räknare{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int summa = 0; int antal; int index = 1; System.out.print("Skriv in ett heltal: "); antal = scan.nextInt(); while (index <= antal){ summa += index; //summa = summa + index index ++; // index = index + 1; } System.out.println("1+2+3+..." + antal + "=" + summa ); Skriv in ett heltal: 9 1+2+3+...9=45 2017-10-13 Magnus Wärja

Iteration (for- sats) sats sant villkor falskt uppräkning En for-sats är detsamma som följande while-sats: sats sant villkor falskt uppräkning initialisering initialisering; while ( villkor ) { sats; uppräkning; } 2017-10-13 Magnus Wärja

Iteration (for- sats) Uppräkning Initialisering Villkor for (int index = 1; index <= antal; index ++) sats; Uppräkning Initialisering Villkor 2017-10-13 Magnus Wärja

Iteration (for- sats) Skriv in ett heltal: 9 1+2+3+...9=45 import java.util.Scanner; public class Räknare3{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int summa = 0; int antal; System.out.print("Skriv in ett heltal: "); antal = scan.nextInt(); for (int index = 1; index <= antal; index ++){ summa = summa + index; // index = index + 1; } System.out.println("1+2+3+..." + antal + "=" + summa ); Exenpel på en for-sats för att förtydliga föregående OH. Skriv in ett heltal: 9 1+2+3+...9=45 2017-10-13 Magnus Wärja

Nästlade satser import java.util.Random; import java.util.Scanner; public class Tjugoett{ public static void main(String[] args){ Random slumptal = new Random(); Scanner scan = new Scanner(System.in); int summa = 0; int resultat; boolean spela = true; while(spela){ summa += slumptal.nextInt(6) + 1; System.out.println("Summa: " + summa); if (summa < 22){ System.out.println("Kasta (Ja=0, Nej=1): "); resultat = scan.nextInt(); if (resultat != 0){ spela = false; } else{ System.out.println("Resultat: " + summa); }} 2017-10-13 Magnus Wärja

2017-10-13 Magnus Wärja

Arrayer En array är en ordnad lista med element poäng Hela arrayen har ett namn Varje element har ett index 0 1 2 3 4 5 6 7 8 9 79 87 94 82 67 98 87 81 74 91 En array av storlek N indexeras från noll till N-1 Denna array håller 10 värden som indexeras från 0 till 9 2017-10-13 Magnus Wärja

Array Ett visst värde i en array kommer man åt med arrayens namn följt av index inom hakparanteser Till exempel poäng[2] ger talet 94 (det tredje talet i vår array) Uttrycket representerar en plats att spara en enkel integer och kan användas överallt där int-variabel används 2017-10-13 Magnus Wärja

Array Ett element i en array kan tilldelas ett värde, skrivas ut, eller användas i en beräkning, osv public class MinArray{ public static void main (String[] args){ int[] poäng = new int[10]; poäng[3] = 82; poäng[2] = poäng[3] + 12; System.out.println(poäng[2]); System.out.println(poäng[2] / 2); } Värdena i en array kallas array-element En array sparar flera värden av samma typ Typen kan vara en primitiv datatyp eller objektreferenser Därför kan vi skapa array av int, char eller String I Java är en array ett objekt Därför är namnet på arrayen en objektreferens och arrayen i sig själv måste instansieras 94 47 2017-10-13 Magnus Wärja

Deklarera en array Några deklarationer av arrayer: int[] resultat = new int[10]; float[] pris = new float[500]; boolean[] flagga = new boolean[20]; char[] koder = new char[1750]; Datatypen är int[] (en array av int] Notera att deklarationen inte talar om arrayens storlek Ett objekt av den typen kommer att få en viss storlek new int[10] skapar det nya objektet som är en array av int med plats för 10 int. När en array väl har skapats så har den en fast storlek 2017-10-13 Magnus Wärja

Arrayens gränser problem minArray[100] har index 0 till 99 Anger man ett annat index så får man ArrayIndexOutOfBoundsException System.out.println(minArray[100]); // Detta ger ett fel Det är vanligt att man av misstag räknar för långt i loopar for (int index = 0; index <= 100; index ++) minArray [index] = index * 50; problem Once an array is created, it has a fixed size An index used in an array reference must specify a valid element That is, the index value must be in bounds (0 to N-1) The Java interpreter throws an ArrayIndexOutOfBoundsException if an array index is out of bounds This is called automatic bounds checking 2017-10-13 Magnus Wärja

Användning av Array Ange fem tal: Ange tal 1:5 Ange tal 2:6 import java.util.Scanner; public class Array{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int tal = 0; int summa = 0; int[] list = new int[5]; System.out.println("Ange fem tal: "); for (int i = 0; i < 5; i ++){ System.out.print("Ange tal " + (i + 1) + ":"); tal = scan.nextInt(); list[i] = tal; } summa += list[i]; System.out.println("Summan av talen är: " + summa); Ange fem tal: Ange tal 1:5 Ange tal 2:6 Ange tal 3:4 Ange tal 4:8 Ange tal 5:2 Summan av talen är: 25 2017-10-13 Magnus Wärja