Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Erik Forslin ÓÒ º Ø º Rum 1445, plan 4 på Nada 08-7909690 Game.java Fil med källkod: class Game { } Game.class Fil med byte-kod: W* ±@"I%N&* * µ**» Y Minne med maskinkod: 0110101110101 1010110101110 Kompilering: javac Game.java Tolkning (exekvering): java Game Begin Game 1 2 Programspråket Java Källkodsexempel Som programmerare skriver du ditt program i en eller flera Javafiler, t ex i filen Ñ º Ú Texten i Javafiler kallas källkod Javaprogram beskrivs alltid med klasser, varpå källkoden i Javafilen får strukturen: Ð Ñ ß»» ÒÒ ÐÐ Ð Ò»» Ú Ö Ð Ö»» Ñ ØÓ Ö µ л» Ë Ñ º Ú ÔÙ Ð Ð Ë Ñ ß ÔÙ Ð Ø Ø ÚÓ Ñ Ò ËØÖ Ò Ö µ ß ÒØ Ø ÖØÔ Ö Ó Ø ÖØÔ Ö Ó ½ ËÝ Ø ÑºÓÙغÔÖ ÒØÐÒ Î ÔÖÓ Ö ÑÑ Ö Ö ÙÒ Ö Ô Ö Ó ÖÒ Ø ÖØÔ Ö Ó Ó Ø ÖØÔ Ö Ó ½µ µ л» Ñ Ò µ л» Ë Ñ datorn> javac Schema.java datorn> java Schema V programmerar under perioderna 1 och 2! datorn> En klass kan innehålla variabler och metoder 3 4
Källkod i Java En programmerare skriver källkod i Java. Källkoden består av: Kommentarer Kommentarer Reserverade ord Litteraler Identifierare Satser Klasser Variabler Metoder Javas API (Application Programmer Interface) En kommentar beskriver vad en del i programmet gör Enradskommentarer:»» ØØ Ö Ò ÒÖ ÓÑÑ ÒØ Ö Flerradskommentarer:» ÒÒ ÓÑÑ ÒØ Ö Ö Ú Ö Ð Ö Ö Ö» Flerradskommentarer kan utnyttjas för att kommentera bort delar av källkoden som misstänks innehålla fel 5 6 Reserverade ord Litteraler ØÖ Ø ÙÐØ ÓØÓµ ÓÔ Ö ØÓÖµ ÝÒ ÖÓÒ Þ ÓÓÐ Ò Ó ÓÙØ Öµ Ø Ö ÓÙ Ð ÑÔÐ Ñ ÒØ Ô Ø ÖÓÛ ÝØ Ð ÑÔÓÖØ ÔÖ Ú Ø Ø ÖÓÛ En litteral är ett värde som skrivs direkt i källkoden, t ex heltal: ½ ¹ ¾ ½½ ÝÚ ÐÙ µ ÜØ Ò ÒÒ Öµ ÔÖÓØ Ø ØÖ Ò ÒØ Ð Ò Ø Ò Ó ÔÙ Ð ØÖÙ flyttal: º½ ½ ¹½¾º ¾º ¹½¾ ص Ò Ð ÒØ Ö Øµ ØÖÝ Ø Ò ÐÐÝ ÒØ Ö Ö ØÙÖÒ Ú Öµ tecken: ³ ³ ³ ³ ³ ³ Ö ÐÓ Ø ÐÓÒ ÓÖØ ÚÓ Ð ÓÖ Ò Ø Ú Ø Ø ÚÓÐ Ø Ð ÓÒ Øµ ÙØÙÖ µ Ò Û ÙÔ Ö Û Ð strängar: Î Ø Ö Ù ÓÒØ ÒÙ Ò Ö µ ÒÙÐÐ Û Ø logiska: ØÖÙ Ð 7 8
Identifierare Satser Identifierare är namn på klasser, variabler och metoder som du själv inför i din källkod Kan bestå avbokstäver, siffror, och Får inte börja med en siffra Java skiljer på STORA och små tecken. Tex är Ð och Ð två olika identifierare En klass börjar med stor bokstav, t ex Ñ En variabel börjar med liten bokstav, t ex Ø Ø En metod börjar med liten bokstav och har metodparenteser, t ex Ñ Ò µ eller Ø ÖØ µ En sats är den minsta körbara delen i ett Javaprogram En sats avslutas alltid med (semikolon) En sats skrivs ofta på en egen rad Exempel med kommentarer:»» Ð Ö Ø ÓÒ Ú ØØ ÐÝØØ Ð ÓÙ Ð Ü»» Ì ÐÐ ÐÒ Ò Ö Ç Ë À ÖÐ Ö Ö Ø µ Ü º½ Ý Ü ½º µ» º¾ Þ Å Ø º Ò ½º ܵ»» Å Ñ ØÓ ÒÖÓÔ Ú Ö Ò Ø ºÖ Ä Ò µ»» Å Ñ ØÓ ÒÖÓÔ»» ¹ Ø Þ ¼º¼µ Þ ¹Þ»» Å ØÓ ÒÖÓÔ ËÝ Ø ÑºÓÙغÔÖ ÒØÐÒ ËÐÙÑÔ Å Ø ºÓ Å Ø ºÖ Ò ÓÑ µµµ 9 10 Klasser En klass är något som kan innehålla variabler och metoder. En klass kan ha två innebörder: En klass samlar ihop bra-att-ha -saker. Innehåll: Föregås av ordet Ø Ø Finns alltid i endast en uppsättning Exempel på variabel: ÈÁ i klassen Å Ø Exempel på metoder: Ò µ i klassen Å Ø, Ñ Ò µ i de flesta huvudklasser Variabler En variabel är en identifierare som representerar ett litet minnesutrymme för en viss typ av data. Variabler måste deklareras innan de används Variabler ritar vi som en liten låda En klass beskriver ett föremål (objekt). Innehåll: Föregås ej av ordet Ø Ø Finns i en uppsättning för varje skapat objekt. Objekt skapas med Ò Û Exempel på variabel: Ø Ø hos ett Ðobjekt Exempel på metod: Ø ÖØ µ hos ett Ðobjekt Deklarationsexempel: ÒØ Ü int x Användningsexempel (tilldelning): Ü int x 3 11 12
Metoder En metod används för att gömma detaljer om hur något löses Metodens huvud En metod kan ses från två olika sidor: deklarationssidan och anropssidan. Deklarationssidan ses från konstruktören som skriver källkoden till metoden. Konstruktören känner till alla detaljer Anropssidan eller användarsidan ses från den som vill utnyttja en skriven metod. Användaren är inte intresserad av detaljer Användningsexempel: utskrift med hjälp av metoden ÔÖ ÒØÐÒ µ hos datorsystemets utmatningsenhet ËÝ Ø ÑºÓÙØ: ËÝ Ø ÑºÓÙغÔÖ ÒØÐÒ À µ ËÝ Ø ÑºÓÙØ är ett ÈÖ ÒØËØÖ Ñ-objekt med metoder som alltså underlättar utskrifter 13 Då en metod kan ses från två olika sidor behövs något som länkar ihop dessa. Detta gör metodens deklarationshuvud Deklarationshuvudet beskriver metodens namn (som också antyder vad metoden gör), vilka typer av värden som kan skickas till metoden samt vilken typ av värde som kommer tillbaka från metoden Exempel på deklarationshuvud: metoden ÔÖ ÒØÐÒ µ hos ett ÈÖ ÒØËØÖ Ñ-objekt: ÔÙ Ð ÚÓ ÔÖ ÒØÐÒ ËØÖ Ò Üµ Se även klassen ÈÖ ÒØËØÖ Ñ i Javas API. 14 Javas API Java API: Exempel API står för Application Programmer Interface En samling klasser (redan skriven och kompilerad källkod) med variabler och metoder som man kan använda vid behov Klasserna med tillhörande variabler och metoder finns beskrivna på webben Kan användas efter de importerats med ÑÔÓÖØ. ÑÔÓÖØ måste stå ibörjan av Javafilen. Exempel: ÑÔÓÖØ Ú º Óº som importerar alla klasser i paketet Ú º Ó Observera att alla klasser i paketet Ú ºÐ Ò importeras automatiskt till alla Javaprogram 15 16
In- och utmatning Då inmatning från tangentbordet är ganska knöligt utnyttjas hjälpobjektet Ù Ö Ê Ö. Detta görs genom att skapa och lagra Ù Ö Ê Öobjektet i variabeln Ò Ø : Ù Ö Ê Ö Ò Ø Ò Û Ù Ö Ê Ö Ò Û ÁÒÔÙØËØÖ ÑÊ Ö ËÝ Ø Ñº Òµµ Med Ò Ø ovan kan nu en hel rad enkelt läsas in och lagras i variabeln Ú Ö: ËØÖ Ò Ú Ö Ò Ø ºÖ Ä Ò µ och tex göras om till ett heltal: ÒØ Ø Ð ÁÒØ ÖºÔ Ö ÁÒØ Ú Öµ Inmatning kan ge upphov till fel, ÁÇ Ü ÔØ ÓÒ, vilket Java kräver att programmeraren tar hand om alternativt påpekar att det kan inträffa Utmatning till skärmen är enklare och utnyttjar ËÝ Ø ÑºÓÙØ som är ett ÈÖ ÒØËØÖ Ñ-objekt. I likhet med Ò Ø kan man lagra ÈÖ ÒØËØÖ Ñ-objektet i variabeln ÙØ Ø : ÈÖ ÒØËØÖ Ñ ÙØ Ø ËÝ Ø ÑºÓÙØ Med ÙØ Ø blir utskrift en enkel match: ÙØ Ø ºÔÖ ÒØÐÒ Ù Ú Ö Ø Ðµ In- och utmatningsexempel»» ÁÒÇ ÍØÑ ØÒ Ò º Ú»» ÃÐ ÖÒ Ù Ö Ê Ö Ó ÈÖ ÒØËØÖ Ñ»» Ð Ö Ô Ø Ø Ú º Ó ÑÔÓÖØ Ú º Óº ÔÙ Ð Ð ÁÒÇ ÍØÑ ØÒ Ò ß» Ñ Ò µ Ö ÙÚÙ Ñ ØÓ Ò ÓÑ Ö Ü Ú Ö µº Á Ñ Ò µ Ò Ò¹ Ó ÙØÑ ØÒ Ò Ð ÁÇ Ü ÔØ ÓÒµ ÒØÖ Ú Ð Ø Ú ÖÚ Ö ØØ ÔÖÓ Ö ÑÑ Ø Ø Ö Ò ÓѺ» ÔÙ Ð Ø Ø ÚÓ Ñ Ò ËØÖ Ò Ö µ Ø ÖÓÛ ÁÇ Ü ÔØ ÓÒ ß»» Ò Ø Ö ÐÔÓ Ø Ø Ö ÒÑ ØÒ Ò Ù Ö Ê Ö Ò Ø Ò Û Ù Ö Ê Ö Ò Û ÁÒÔÙØËØÖ ÑÊ Ö ËÝ Ø Ñº Òµµ»» ÙØ Ø Ö ÐÔÓ Ø Ø Ö ÙØÑ ØÒ Ò ÈÖ ÒØËØÖ Ñ ÙØ Ø ËÝ Ø ÑºÓÙØ ÙØ Ø ºÔÖ ÒØ Ò ØØ Ø Ð µ ËØÖ Ò Ú Ö Ò Ø ºÖ Ä Ò µ ÒØ Ø Ð ÁÒØ ÖºÔ Ö ÁÒØ Ú Öµ ÙØ Ø ºÔÖ ÒØÐÒ Ù Ú Ö Ø Ðµ л» Ñ Ò µ л» ÁÒÇ ÍØÑ ØÒ Ò datorn> javac InOchUtmatning.java datorn> java InOchUtmatning Ange ett tal: -17 Du svarade: -17 datorn> 17 18