Java-kursen. Javaprogram blir därför långsammare än andra program och man kan inte skapa körbara exe-filer.

Storlek: px
Starta visningen från sidan:

Download "Java-kursen. Javaprogram blir därför långsammare än andra program och man kan inte skapa körbara exe-filer."

Transkript

1 -kursen Inledning Java är ett plattformsoberoende programmeringsspråk. Du kan alltså köra samma program på datorer med olika operativsystem. Andra språk kompilerar källkoden direkt till maskinkod som bara passar en viss processortyp, men ett javaprogram kompileras till bytekod. När programmet skall köras, så måste en javatolk (intepretator) i datorn omvandla bytekoden till den rätta maskinkoden. Vanligt program Textfil Kompilering Maskinkod Länkning Körbar exe-fil Java-program Textfil Kompilering Bytekod Körs av javatolk (virtuell javamaskin) Javaprogram blir därför långsammare än andra program och man kan inte skapa körbara exe-filer. Man kan skapa två slags program: * Fristående program (applikationer) som kan köra var som helst av en javatolk. * Applets, som bara kan köras i webläsare. Språket java är ganska likt C++: * Mycket objektorienterat. * Allt består av klasser!! * Programkoden liknar C++, samma loopar, villkor osv. * Du slipper pekare!! Brogårdsskolan 1 Datainstitutionen

2 Javaspråket. Java liknar C++ med några undantag och några tillägg. Bl a slipper man pekare i Java. Allmänt Rader avslutas normalt med semikolon. Flera programrader kan samlas i block med blockparenteser (klammerparenteser). Kommentarer på en rad inleds med //. Kommentarer på flera rader inleds med /* och avslutas med */. Variabler deklareras som i C++. I javaprogram snackas det om metoder, som motsvarar funktioner i C++. Man skiljer mellan enkla och sammansatta datatyper: Enkla datatyper skrivs med liten bokstav: Typ Namn Antal bytes Talområde Heltal byte till 127 short till int till long 8 +/ Flyttal float 32 double 64 Tecken char 1 0 till 255 Logisk boolean 1 true eller false OBS Sammansatta datatyper utgörs av klasser och skrivs med stor bokstav. En användbar klass är String som lagrar strängar, och som har flera metoder som hanterar strängar. På sid 6 beskrivs klassen String! På sid 6 nämns också klasserna Integer och Double (obs börjar med stor bokstav!). Operatorer. +, - och * fungerar på samma sätt för heltal och flyttal. / (division) fungerar olika för heltal och flyttal: För heltal kapas decimalerna. Ex x=17/5 => x=3 Om täljaren eller nämnaren är flyttal, så fås decimaler. % (modulus) ger resten vid division av heltal. Ex. 17%5 => 2 ++ kallas increment-operator och ökar en variabel med kallas decrement-operator och minskar en variabel med 1. Increment- och decrementoperatorn kan stå före eller efter en variabel med olika resultat: int i=4, j=4; int a=i++; //a tilldelas innan i ökar, a=4 int b=++j; //b tilldelas efter att j ökat, b=5 Andra operatorer. + = * = / = % = Dessa fyra operatorer ger kortare skrivsätt enligt dessa exempel: Ex. x+=8 är samma som x=x+8 Inkomst*=2000+y är samma som Inkomst=Inkomst* (2000+y) Brogårdsskolan 2 Datainstitutionen

3 In- och utmatning av data. OBS cout och cin används inte i Java, utan istället kan klassen System användas: System.out.print( sträng ) Skriver ut på skärmen str=system.in.read() Läser in från tangenbordet Villkor. if-sats Ex.if (x<o) //Villkor inom parenteser. a=2; c=8; else //else kan man utelämna d=5; //Här kan blockparenteserna tas bort //eftersom blocket består av en enda rad. Logiska operatorer. == Lika med (OBS!) OCH && (OBS!)!= Skild från ELLER < Större än ICKE! > Mindre än >= Större än eller lika med <= Mindre än eller lika med OBS Om du vill jämföra objektvariabler, så måste du använda metoden equals(): Ex.if (ObjA.equals(ObjB)) switch-sats. Ex. switch (a) //a skall vara en heltalsvariabel case 1:m=9; //Denna rad körs om a=l. break; case 2:m=6; //Block efter case går också bra. break; //break medför att switchsatsen case 3:m=35; //avslutas (förutsatt att a=2). break; default:h=8; //default-sats körs bara om ingen //case-sats stämmer med a. Brogårdsskolan 3 Datainstitutionen

4 Loopar. for-satsen Ex. for (int i=o ; i<16 ; i++)....; //En massa trevliga programrader. Ex. for (int i=20;i>o;i=i-2) //Räknaren räknare neråt.... ;//En massa trevliga programrader. while-satsen Ex. while (x>=7)....;//diverse programrader.....; do-while-satsen Ex. do....;//trevliga programrader.....; while (x>=7); Programblocket efter do upprepas så länge villkoret efter while är sant. break och continue break kan användas i alla loopar för att hoppa ur loopen innan alla varv är klara. Ex. do.... ; if (y=16) break; //När villkoret är sant hoppar.... ; //programmet ut ur do-while.... ; while (x>=7) contiue kan avsluta ett varv i loopen innan det är klart, och direkt påbörja nästa varv. Ex. do... ;... ; if (y=16) continue; //När villkoret är sant hoppar... ; //programmet över resten av loopen... ; //och startar nästa varv. while (x>=7) Brogårdsskolan 4 Datainstitutionen

5 Vektorer (arrayer). OBS Till skillnad från andra språk, behandlas vektorer i Java som objekt, vilket innebär att du måste tilldela minnesutrymme med new. Du behöver inte ta bort minne med delete, detta ordnar java på egen hand! Ex. int tal[]; eller på en rad: int tal[]=new int[10] tal=new int[10]; OBS Du kan tilldela värden direkt i deklarationen och behöver då inte använda new: Ex. int tal[5] = 3,6,4,2,8; OBS Javas många klasser ligger samlade i paket. Några vanliga paket: Lang java.applet.* java.awt.* java.io.* java.net.* javax.swing.* java.util.* Innehåller grundläggande egenskaper och funktioner. (följer alltid med!) Innehåller allt som behövs i applets. Abstract Windowing Toolkit innehåller windowskomponenter. Paket med in/ut-rutiner. Innehåller funktioner för nätverk och kommunikation. Innehåller grafiska komponenter, t ex dialogrutor Innehåller funktioner för vektorer och datastrukturer mm Om du vill använda en klass, så måste du importera den till programmet t ex: import java.awt.graphics import java.awt.* importerar klassen Graphics importerar alla klasser i awt Paketet Lang behöver inte importeras, det skickas alltid med. Kolla gärna klasser och metoder i hjälpen. Programmeringsmiljön Du kan jobba med ett DOS-baserat java-paket som du kan ladda hem gratis från sun.com. Du använder i första hand två program: * javac.exe Javakompilator * java.exe Javatolk Brogårdsskolan 5 Datainstitutionen

6 Klassen String Så här kan en Stringvariabel deklareras: String str; Klassen String innehåller att antal metoder: str.length() ger antalet tecken i str str.charat(n) ger tecknet i position n str.substring(n) ger den delsträng som börjar i position n str.substring(n,m) ger den delsträng som börjar i position n och slutar i m-1 str.compareto(str2) ger 0 om str = str2, <0 om str kommer före str2 annars >0 str.equals(str2) true om str och str2 är lika, annars false str.equalsignorecase(str2) samma som ovan, men skiljer inte på stora och små bokstäver str.startswith(str2) true om str inleds med strängen str2, annars false str.startswith(str2,n) true om strängen str2 börjar i position n i str, annars false str.endswith(str2) true om str avslutas med strängen str2, annars false str.indexof(c) ger första positionen om tecknet c finns i strängen str, annars -1 str.indexof(c,n) letar från position n efter första platsen för tecknet c str.lastindexof(c) ger sista positionen om tecknet c finns i strängen str str.lastindexof(c,n) letar från position n efter sista platsen för tecknet c str.indexof(str2) ger första positionen för delsträngen str2 i str str.indexof(str2,n) letar från position n efter första platsen för strängen str2 str.lastindexof(str2) ger sista positionen om delsträngen str2 finns i strängen str str.lastindexof(str2,n) letar från position n efter sista platsen för delsträngen str2 str.trim() returnerar str utan inledande och avslutande blanktecken str.replace(c1,c2) ersätter alla tecken c1 med tecken c2 och returnerar str str.touppercase() ändrar till enbart stora bokstäver str.tolowercase() ändrar till enbart små bokstäver String.valueOf(x) omvandlar x till en sträng (x är enkel taltyp: int, double osv) Klassen Integer I denna klass finns bl a en metod som omvandlar en sträng till ett heltal: Integer.parseInt(str) Klassen Double I denna klass finns bl a en metod som omvandlar en sträng till ett decimaltal: Double.parseDouble(str) Brogårdsskolan 6 Datainstitutionen

7 Klassen Math Du måste skriva Math. före metoderna t ex Math.round(x) abs(a) absolutvärdet eller beloppet av talet a max(a,b) ger det största av talen a och b min(a,b) ger det minsta av talen a och b PI talet π E talet e = 2,7 exp(x) ger e x log(x) ger naturliga logaritmen av x sqrt(x) ger kvadratroten av x ceil(x) rundar av uppåt till heltal floor(x) rundar av nedåt till heltal pow(x.y) ger x y round(x) avrundar till heltal av typ long random() ger slumptal mellan 0 och 1 sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) Att runda av ett tal till önskat antal decimaler i java är ganska besvärligt. Så här kan man göra: import java.text.*; //Deklarera en redigerare NumberFormat r=numberformat.getinstance(); //Ställ in önskat antal decimaler(utan denna metod får du // högst tre decimaler r.setmaximumfractiondigits(n) // Du måste till sist omvandla ditt tal, x, till en sträng // för att avrundningen skall göras r.format(x) Brogårdsskolan 7 Datainstitutionen

8 Applikationer Applikation 1 En applikation är ett fristående javaprogram, som kan köras med javatolken. Gör så här när du skall skriva din första java-applikation: 1. Starta JCreator. 2. Välj File/New/File. 3. Markera File Type till vänster, välj Java File och klicka Next. 4. Skriv namn på ditt projekt, bläddra fram en bra mapp under Location och klicka Finish. (I detta exempel blir namnet Hockey, eftersom java-klassen har detta namn.) Nu skapas filen Hockey.java. 5. Skriv in denna kod: public class Hockey public static void main(string args[]) // Alltid samma! System.out.println( Frölunda vann! ); Glöm alltså inte att klassnamnet skall vara samma som filnamnet. 6. Kompilera projektet med Build/Compile File. Nu skapas bytekod i filen Hockey.class 7. Kör projektet med Build/Execute File. Nu översätter javatolken den bytekod som finns i filen Hockey.class. 8. Stäng filen med File/Close. Kommentar: * En java-applikation skapas som en egen klass. * Alla java-applikationer måste ha en main-metod, som brukar deklareras på samma sätt i alla program.. * System är en java-klass. out är en klass som ärver från System och println är en metod som tillhör klassen out. Gör så här när du redan har skrivit en java-applikation: 1. Starta JCreator. 2. Öppna en gammal.java-fil och ändra koden. 3. Spara den nya filen med samma namn som din nya klass. Brogårdsskolan 8 Datainstitutionen

9 Applikation 2 Nu skall vi använda klassen javax.swing.* som innehåller grafiska komponenter, bl a JOptionPane, som är en meddelanderuta. Klassen javax.swing.* måste importeras. import javax.swing.*; // public class Hockey public static void main (String[] arg) JOptionPane.showMessageDialog(null, Heja Frölunda! ); System.exit(0); Metoden showmessagedialog skriver alltså ut texten innanför citattecken. Metoden System.exit(0) avslutar programmet. Applikation 3 a) Med metoden showinputdialog kan man också läsa in data med JOptionPane. Utskriften kan man dela upp på flera rader med hjälp av kontrolltecknet \n. Pröva detta program: import javax.swing.*; public class App3 public static void main (String[] arg) String namn; namn = JOptionPane.showInputDialog( Vad heter du? ); JOptionPane.showMessageDialog(null, Välkommen\n + namn); System.exit(0); b) Programmet skall också fråga efter antal och sedan skriva lika många rader enligt figuren. Java Applikation 4 a) Skapa en applikation med JOptionPane som först läser in ett namn (ett ord!) och sedan visar antalet bokstäver. b) Programmet skall dessutom visa namnet baklänges. Brogårdsskolan 9 Datainstitutionen

10 Applikation 5 a) Skapa en applikation med JOptionPane, som först läser in sidorna a och b i en rätvinklig triangel och sedan beräknar och visar hypotenusans längd. b) Programmet skall visa en varningsruta om a eller b är negativ. c) Resultatet skall visas med två decimaler. Applikation 6 Så här kan man läsa in flera tal på en gång: //Denna klass måste importeras! import java.util.*; String s=joptionpane.showinputdialog( Ange två tal(med mellanslag) ); //Skapa en hjälpvariabel som delar upp strängen s i delar: StringTokenizer tok = new StringTokenizer(s); //Plocka ut de två talen ur strängen s med metoden nexttoken: int tal1 = Integer.parseInt(tok.nextToken()); int tal2 = Integer.parseInt(tok.nextToken()); Klass StringTokenizer har bl a dessa tre metoder: nexttoken() counttokens() hasmoretokens() //Ger nästa del i strängen //Ger antalet återstående delar i strängen //Är true om det finns fler delar i strängen a) Skapa en applikation med JOptionPane, som läser in tre heltal och sedan visar summan av talen. b) Programmet skall läsa in ett godtyckligt antal heltal och visa summan. Applikation 7 a) Skapa en applikation med JOptionPane som visar 5 slumptal mellan 1 och 10. random ger slumptal av typ double, som du kan omvandla till heltal genom att skriva (int) framför: slump=(int)(math.random()*(största-minsta+1)+minsta) b) Skapa ett Hi-Lo-spel. Programmet skall först slumpa ett heltal mellan 1 och 100. Sedan får användare gissa. Efter varje gissning visas För högt! eller För lågt! tills svaret är rätt. Applikation 8 Strängar av typ String kan man inte jämföra så här: if (str1==str2)... Istället använder man metoden equals: if (str1.equals(str2)) Skapa en applikation som först läser in två namn med mellanslag och sedan meddelar om namnen är lika eller inte. Brogårdsskolan 10 Datainstitutionen

11 Applikation 9 Skapa en applikation som först läser in en mening och sedan räknar antalet ord. Applikation 10 Med dialogrutan showconfirmdialog kan du välja mellan olika alternativ. Om du skriver raden int button=joptionpane.showconfirmdialog(null, "Smakade pizzan bra!"); så dyker denna ruta upp Knapparna är numrerade 0, 1, 2,.. från vänster. När du stänger rutan, så returneras numret på den knapp som stängde rutan. Om du stänger med krysset så returneras -1. Med en if-sats kan du kolla vilken knapp som stängde rutan: if (button==1) //Stängde någon med No? Man kan ge dialogrutan andra knappar med en tredje parameter. Här är en vanlig variant: int button=joptionpane.showconfirmdialog(null,"är du gift?","svara",joptionpane.yes_no_option); Här är en annan variant: int button=joptionpane.showconfirmdialog(null,"vill du fortsätta?", "Bekräfta",JOptionPane.OK_CANCEL_OPTION); Skapa en applikation som visar en ja/nej-fråga med en showconfirmationdialog. Om användaren svarar Ja eller Nej, så skall en showmessagedialog visa om svaret är rätt eller fel, och därefter skall programmet avslutas. Om användaren väljer Cancel, så skall programmet avslutas omedelbart. Applikation 11 Om man klickar på Avbryt i en showinputdialog-ruta, så returneras värdet null. Detta kan man använda för att hoppa ut ur en loop med break. Skapa en applikation som testar addition genom att visa slumpade additionsexempel och läsa in svar med showconfirmadialog. Efter varje addition skall resultatet visas med en show- MessageDialog. Programmet skall avslutas när användaren väljer Avbryt i showconfirmdialog. Brogårdsskolan 11 Datainstitutionen

12 Applikation 12 Nu skall det handla mest om metoder, men först.... En java-applikation kan innehålla flera klasser i samma fil, men bara en av klasserna får vara public, och namnet på filen skall vara samma som namnet på public-klassen. Denna filen skall alltså ha namnet Stefan.java: import javax.swing.*; class Arne class Elsa public class Stefan Här kommer ett exempel på en metod (kuben) som beräknar ett värde. En sådan metod måste avslutas med return. Lägg också märke till att metoden kuben finns i samma klass som main. public class Matte public static void main (String[] arg) int x; x = kuben(5) JOptionPane.showMessageDialog(null, Resultat: + x); System.exit(0); public static int kuben(int a) return a*a*a; // returtyp = int Brogårdsskolan 12 Datainstitutionen

13 Här kommer samma exempel, men nu ligger metoden kuben i en egen klass. Lägg märke till skillnaden när metoden anropas! public class Matte public static void main (String[] arg) int x; x = Matteklass.kuben(5) JOptionPane.showMessageDialog(null, Resultat: + x); System.exit(0); class Matteklass public static int kuben(int a) return a*a*a; En metod kan naturligtvis ha flera argument. Det finns också metoder utan returvärde. Java Uppgift: Skriv metoden Last som används i detta program: public class Namnklass public static void main (String[] arg) String Namn=JOptionPane.showInputDialog( Skriv namn! ); char x=useful.last(namn); JOptionPane.showMessageDialog(null, Sista tecken: + x); System.exit(0); Brogårdsskolan 13 Datainstitutionen

14 Applets Applet 1 En applet skriver du också i en texteditor med filtillägg.java och kompilerar till class-fil, men programmet kan bara köra från en webläsare. Du måste alltså lägga in en länk till din applet i en HTML-fil. Gör så här med JCreator: 1. Välj File/New/Project, markera Basic Java Applet och klicka Next. 2. Ge din applet ett namn, välj lämplig mapp under Location och klicka Next. 3. Kolla att det ser ungefär så här och klicka sedan Finish. 4. Öppna mapparna i fönstret FileView till vänster, och dubbelklicka på javafilen. Så här kan det se ut 5. Skriv eller kopiera denna kod i kodfönstret, och spara: import java.applet.applet; import java.awt.graphics; public class GuldApplet extends Applet public void paint(graphics g) g.drawstring("frölunda vinner!",5,25); 6. Kompilera filen genom att välja Build/Compile Project eller F7. Nu skapas filen GuldApplet.class i mappen classes. Brogårdsskolan 14 Datainstitutionen

15 7. Appleten måste ligga på en websida. Om du öppnar HTML-filen, så har JCreator skapat denna kod: Lägg märke till raden code = GuldApplet.class som kopplar din applet till HTML-filen 8. Välj Build/Execute Project eller F5. Nu startar SUNS program appletviewer.exe som kör HTML-filen med din applet. 9. Du kan också öppna HTML-filen i en webläsare Kommentar: Eftersom en applet körs hemma hos den som öppnar websidan, så kan en applet inte göra vad som helst: En applet kan t ex inte starta program eller öppna filer på den dator där websidan öppnas. Brogårdsskolan 15 Datainstitutionen

16 Analys av applet GuldApplet 1 import java.applet.applet; 2 import java.awt.graphics; 3 4 public class GuldApplet extends Applet 5 6 public void paint(graphics g) 7 8 g.drawstring("frölunda vinner!",5,25); 9 Rad 1 Rad 2 Rad 4 Rad 6 Här importeras klassen Applet med funktioner som hanterar webläsaren. Här importeras klassen Graphics som behövs för att rita text i ett Windowsfönster. Varje applet skapas som en ny klass. extends Applet betyder att klassen GuldApplet ärver från klassen Applet. Varje applet ärver fem metoder från klassen Applet: init() start() stop() paint() destroy() Här kan du lägga in deklarationer när programmet laddas mm. Metoden är tom från början. Här bestämmer du vad som skall hända när programmet startar. Metoden är tom från början. Avslutar alla aktiviteter när användaren lämnar websidan. Metoden är tom från början, och behöver sällan ändras. Allt som syns på skärmen ritas av paint. Metoden måste alltid ha ett argument av klassen Graphics, t ex paint(graphics g) Rensar minnet när appleten avslutas. Bör inte ändras. Om du ändrar en metod så gör du en override på metoden. I exemplet ovan gör vi override på metoden paint(). Rad 8 Klassen Graphics innehåller flera grafikmetoder. Här använder vi drawstring som skriver text i det aktuella fönstret. Lägg märke till punktnotationen! hjälpen Brogårdsskolan 16 Datainstitutionen

17 Applet 2 Klassen Graphics innehåller div grafiska metoder, t ex drawstring. Med klassen Font kan du ändra textegenskaper och med klassen Color kan du ändra färg. Du måste först skapa ett nytt objekt med new. Sedan kan du ändra font eller färg med metoderna setfont() och setcolor(). Ex Color c=new(0,255,255); g.setcolor(c); //Om g är ett objekt av typen Graphics Med den enkla datatypen int kan vi inte omvandla tal till text och tvärtom. Istället använder vi klassen Integer, som är en s k wrapper class till int. Andra wrapper-klasser är Boolean, Float, Double, Long, Character (alla skrivs med stor bokstav!). Klassen Integer har bl a metoden parseint() som omvandlar text till tal. Här kommer en applet som skriver ut text. För att kunna ändra texten och teckensnittet i HM- L-filen utan att ändra i själva javakoden, så använder vi taggen PARAM som skickar värden från HTML-koden till applet-koden. import java.applet.applet; import java.awt.graphics; import java.awt.font; import java.awt.color; public class Mintext extends java.applet.applet String txt; String tsnitt; String sizetxt; int size; public void init() txt=getparameter("text"); if (txt==null) txt= "Frölunda!"; // Hämtar värde från PARAM -taggen tsnitt =getparameter("teckensnitt"); // Värde från PARAM -taggen if (tsnitt==null) tsnitt= "TimesRoman"; sizetxt =getparameter("storlek"); if (sizetxt==null) sizetxt= "28"; // Värde från PARAM -taggen size=integer.parseint(sizetxt,10); // Omvandlar till tal hjälpen Brogårdsskolan 17 Datainstitutionen

18 public void paint(graphics g) Font f=new Font(tsnitt,Font.BOLD,size); Color c=color.red; g.setfont(f); g.setcolor(c); g.drawstring(txt,5, 50); Så här ser en enkel HTML-fil ut. Lägg märke till PARAM-taggen! <HTML> <HEAD> <TITLE>Frölunda</TITLE> </HEAD> <BODY> <APPLET CODE="Mintext.class" WIDTH=400 HEIGHT=100> <PARAM NAME="text" VALUE="Frölunda vann äntligen!!!"> <PARAM NAME="teckensnitt" VALUE="Arial"> <PARAM NAME="storlek" VALUE="10"> </APPLET> </BODY> </HTML> hjälpen Brogårdsskolan 18 Datainstitutionen

19 Applet 3. Denna applet skall med hjälp av en oändlig loop uppdatera en klocka varje sekund. För att loopen inte skall blockera processorn hela tiden, så använder vi multitasking: Klockans loop körs i en tråd (thread). Då kan processorn jobba med annat parallellt med det som händer i tråden. Så här ser appleten ut: import java.applet.applet; import java.awt.*; import java.util.date; public class Klocka extends java.applet.applet implements Runnable Font teckensnittet=new Font("Helvetica",Font.BOLD,18); Date tiden; Thread trad; public void start() if (trad==null) trad=new Thread(this); trad.start(); public void stop() if (trad!=null) trad.stop(); trad=null; public void run() while (1<2) tiden=new Date(); repaint(); try Thread.sleep(1000); catch (InterruptedException e) Tråden skapas och startas När tråden startas så körs automatiskt metoden run() Oändlig loop. Varje sekund skapas nytt tiden-objekt. repaint anropar metoden paint. public void paint(graphics g) g.setfont(teckensnittet); g.drawstring(tiden.tostring(),10,30); Första raden i klassen Klocka ser ut så här: Objektet tiden omvandlas till en sträng. Brogårdsskolan 19 Datainstitutionen

20 public class Klocka extends java.applet.applet implements Runnable I Java kan en ny klass bara ärva från en enda klass till skillnad från C++ som tillåter s k multipla arv. I stället kan man skapa s k gränssnitt, med div metoder mm. Runnable är ett gränssnitt med olika metoder som behövs när man jobbar med trådar. För att komma åt dessa metoder måste vår applet implementera gränssnittet Runnable. Så här kan HTML-filen se ut: <HTML> <HEAD> <TITLE>Klocka</TITLE> </HEAD> <BODY> <APPLET CODE="Klocka.class" WIDTH=300 HEIGHT=70>Applet funkar ej!</applet> </BODY> </HTML> hjälpen Brogårdsskolan 20 Datainstitutionen

21 Applet 4. Nu blir det rullande text! Här använder vi också en tråd, eftersom texten skall rulla hela tiden. import java.awt.*; public class Scrolltxt extends java.applet.applet implements Runnable Font teckensnittet=new Font("Helvetica",Font.BOLD,18); Thread trad; int xkoord=400; String texten; public void init() texten=getparameter("text"); if (texten==null) texten= "Ingen text definierad i HTML-koden"; public void start() if (trad==null) trad=new Thread(this); trad.start(); public void stop() if (trad!=null) trad.stop(); trad=null; public void run() while (1<2) xkoord--; if (xkoord< -200) xkoord=400; repaint(); try Thread.sleep(20); catch (InterruptedException e) public void paint(graphics g) g.setfont(teckensnittet); g.drawstring(texten,xkoord, 30); Brogårdsskolan 21 Datainstitutionen

22 Så här kan HTML-filen se ut: <HTML> <HEAD> <TITLE>Scrolltxt</TITLE> </HEAD> <BODY> <APPLET CODE="Scrolltxt.class" WIDTH=400 HEIGHT=70> <PARAM NAME="text" VALUE="Frölunda vann, jajamensan!!!"> </APPLET> </BODY> </HTML> hjälpen Brogårdsskolan 22 Datainstitutionen

23 Några rader om grafik. Klassen Graphics innehåller metoder för att rita olika figurer mm. drawline() drawrect() fillrect() drawroundrect() fillroundrect() drawpolygon() fillpolygon() drawoval() filloval() drawarc() fillarc() Ritar linjer Ritar ofyllda rektanglar Ritar fyllda rektanglar Ritar rundade rektanglar Ritar fyllda rundade rektanglar Ritar ofyllda polygoner Ritar fyllda polygoner Ritar ofyllda cirklar och ellipser Ritar fyllda cirklar och ellipser Ritar cirkelsegment Ritar cirkelsegment En färdig bild hämtar du så här: Image bild; bild=getimage(getcodebase(), minbild.jpg ); Först skapar du ett objekt av klass Image. Sedan hämtar du bilden med metoden getimage(). getcodebase returnerar sökvägen till den mapp där appleten ligger. Bilden skall alltså ligga i samma mapp som appleten! Java klarar bilder med formaten JPG och GIF. Du skriver ut bilden så här: g.drawimage(bild,x,y,this); Ordet this betyder att bilden skrivs ut i den applet som paint() ligger i. Det finns 13 färdiga färgvariabler: Color.white Color.green Color.lightGrey Color.gray Color.darkGrey Color.blue Color.green Color.red Color.red Color.orange Color.pink Color.cyan Color.yellow Color.magenta Brogårdsskolan 23 Datainstitutionen

24 Färg ändrar du enkelt så här: g.setcolor(color.red); //Tillhör klassen Graphics Du kan också blanda egna färger: Color c=new(0,255,0); g.setcolor(c); //Skapar ett nytt färgobjekt Du kan ändra bakgrundsfärg så här: setbackground(color.black); //Fristående metod Du kan ändra förgrundsfärgen så här: setforeground(color.blue); //Fristående metod Applet 5. hjälpen Skriv en applet som ritar en blå rektangel med gul bakgrund i ett fönster på websidan. Applet 6. Skriv en applet som visar en trevlig bild i ett fönster på websidan. Brogårdsskolan 24 Datainstitutionen

25 Applets som använder händelser. import java.awt.event; import java.awt.color; import java.awt.graphics; public class RitaCirklar extends java.applet.applet int xkoord; int ykoord; boolean knapp; public void init() setbackground(color.black); knapp=false; public boolean mousedown(event evt, int x,int y) xkoord=x; ykoord=y; knapp=true; repaint(); return true; public boolean mouseup(event evt, int x,int y) xkoord=x; ykoord=y; knapp=false; repaint(); return true; metoderna mousedown o mouseup anropas automatiskt, när du klickar med musen Ett objekt av klassen Event måste finnas bland parametrarna! public void update(graphics g) paint(g); Varför override på update? public void paint(graphics g) if (knapp) g.setcolor(color.yellow); g.drawoval(xkoord-15,ykoord-15,30,30); else g.setcolor(color.red); g.drawoval(xkoord-15,ykoord-15,30,30); Metoden drawoval ritar cirklar och ellipser! Brogårdsskolan 25 Datainstitutionen

26 Applet som ritar linjer. import java.awt.graphics; import java.awt.color; import java.awt.event; import java.awt.point; public class Linjer extends java.applet.applet int antallinjer=0; int maxantallinjer=10; String linjerkvar="10"; Point startlinje; Point stopplinje; Point noll=new Point(0,0); Point[] starter=new Point[maxAntalLinjer+1]; Point[] stoppar=new Point[maxAntalLinjer+1]; public void init() setbackground(color.yellow); public boolean mousedown(event evt,int x, int y) startlinje=new Point(x,y); return true; public boolean mouseup(event evt, int x, int y) stopplinje=new Point(x,y); sparalinje(startlinje,stopplinje); return true; public boolean mousedrag(event evt, int x, int y) stopplinje=new Point(x,y); repaint(); return true; void sparalinje(point ena, Point andra) if (antallinjer<=maxantallinjer) antallinjer++; starter[antallinjer]=ena; stoppar[antallinjer]=andra; startlinje=noll; stopplinje=noll; int i=maxantallinjer-antallinjer; Integer I=new Integer(i); Brogårdsskolan 26 Datainstitutionen

27 linjerkvar=i.tostring(); repaint(); public void paint(graphics g) g.setcolor(color.red); g.drawline(startlinje.x,startlinje.y,stopplinje.x,stopplinj e.y); g.setcolor(color.blue); if (antallinjer<=maxantallinjer) g.drawstring("du har " + linjerkvar + " linjer kvar att rita!",10,10); else g.drawstring("du har för många linjer!",10,10); for (int i=1;i<=antallinjer;i++) g.drawline(starter[i].x,starter[i].y,stoppar[i].x,stoppar[i ].y); Brogårdsskolan 27 Datainstitutionen

28 Applet som styr en orm med tangenthändelser. import java.awt.graphics; import java.awt.color; import java.awt.event; public class Orm extends java.applet.applet implements Runnable int tangent; int xkoord; int ykoord; Thread trad; public void init() xkoord=this.size().width/2; ykoord=this.size().height/2; setbackground(color.black); public void start() if (trad==null) trad=new Thread(this); trad.start(); public void stop() if (trad!=null) trad.stop(); trad=null; public boolean keydown(event evt, int key) tangent=key; return true; public void run() while (true) switch (tangent) case Event.DOWN: ykoord+=5; Brogårdsskolan 28 Datainstitutionen

29 break; case Event.UP: ykoord-=5; break; case Event.LEFT: xkoord-=5; break; case Event.RIGHT: xkoord+=5; break; if (xkoord>this.size().width) xkoord=this.size().width; if (xkoord<0) xkoord=0; if (ykoord>this.size().height) ykoord=this.size().height; if (ykoord<0) ykoord=0; repaint(); try Thread.sleep(100); catch (InterruptedException e) public void update(graphics g) paint(g); public void paint(graphics g) g.setcolor(color.red); g.filloval(xkoord,ykoord,10,10); Brogårdsskolan 29 Datainstitutionen

30 Applet som använder knappar och metoden action. import java.awt.*; import java.applet.*; public class KnappDemo extends Applet Image bild; public void init() //Skapa två knappar med text! Button b1=new Button("Bild1"); Button b2=new Button("Bild2"); //Lägg in knapparna add(b1); add(b2); //Använd metoden action för att kolla om något är på gång! // Lägg märke till returtypen! public boolean action(event evt, Object arg) //Kolla om en knapp (Button) skickade meddelandet! if (evt.target instanceof Button) // parametern arg innehåller texten på knappen. // Typomvandla till String String text=(string)arg; // Kolla vilken text, som knappen har! if (text.equals("bild1")) bild=getimage(getcodebase(), "gubbe.gif"); if (text.equals("bild2")) bild=getimage(getcodebase(), "tree.gif"); // Anropa metoden repaint(), som anropar paint, // som ritar upp bilden. repaint(); return true; public void paint(graphics g) g.drawimage(bild,20,20,this); hjälpen Brogårdsskolan 30 Datainstitutionen

31 Diverse komponenter. Knapp Textruta Konstruktor: Button knappa = new Button( Röd ) Metoder: getlabel() Returnerar texten på knappen setlabel(string) Sätter ny text på knappen Konstruktor: TextField ruta1 = new TextField(30) //Textruta med 30 tecken Metoder: gettext() Returnerar texten i textrutan settext(string) Lägger in text i textrutan Alternativknapp Konstruktor: CheckboxGroup knappar = new CheckboxGroup // Måste först skapa // en grupp Checkbox ruta1 = new Checkbox( Röd, knappar,false) Checkbox ruta2 = new Checkbox( Blå, knappar,true) Checkbox ruta3 = new Checkbox( Gul, knappar,false) Metoder: getstate() Returnerar true om knappen är markerad setstate(boolean) Ändrar markeringen getlabel() Returnerar knappens text setlabel(string) Sätter ny text på knappen Brogårdsskolan 31 Datainstitutionen

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Lite logik. Kap 6: Sid 2

Lite logik. Kap 6: Sid 2 6 Loopar och val Lite logik Val mellan två alternativ Val mellan flera alternativ Sammansatta villkor Boolska variabler Jämför strängar While-loopar Do-loopar For-loopar Kortformer Kap 6: Sid 2 Lite logik

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Applets med komponenter

Applets med komponenter 5 Applets med komponenter Knappar Om gränssnitt (interface) Händelser Måla om appletytan Etiketter och textrutor Förvandla strängar till tal Aritmetik Omvandla datatyper med cast Felhantering Kap 5: Sid

Läs mer

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass. Datateknik A, Syfte: Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass. Att läsa: Lektion 2 Uppgifter:

Läs mer

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin) Lektion Java Grunder Javas historia Ursprungligen utvecklades Java (1991) för att användas i olika typer av konsumentelektronik (mikrovågsugnar, videoapparater) av programmerare på Sun. Språket kallades

Läs mer

Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets

Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets Objektorienterad programmering i Java Föreläsning 5 Kort om Java-Applets 1 Läsanvisningar Den här föreläsningen syftar till att ge en bild av vad en Java-Applet är och är ganska fristående från föregående

Läs mer

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

Läs mer

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014 Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public

Läs mer

NetBeans 7. Avsikt. Projektfönster

NetBeans 7. Avsikt. Projektfönster NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser // En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa

Läs mer

PROGRAMMERING I SPRÅKET JAVA

PROGRAMMERING I SPRÅKET JAVA PROGRAMMERING I SPRÅKET JAVA Innehåll 1. VI BÖRJAR PROGRAMMERA...2 INLEDNING...2 NEDLADDNING OCH INSTALLATION AV JAVA...2 JAVA MED TEXTPAD...3 JAVADOKUMENTATION...3 FÖRSTA PROGRAMMET I JAVA - UTMATNING...4

Läs mer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

FactoryCast HMI. Premium & Quantum PLC. Applets 2004-10-28

FactoryCast HMI. Premium & Quantum PLC. Applets 2004-10-28 FactoryCast HMI Premium & Quantum PLC Applets 2004-10-28 INNEHÅLLSFÖRTECKNING 1 OM DETTA DOKUMENT...3 2 FÖRUTSÄTTNINGAR...3 3 PROJEKT I J++...4 3.1 LÄSA PLC-VARIABLER...4 3.1.1 Gränssnittet...4 3.1.2 Upprätta

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 2 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin, 2018 Outline Emacs Introduktion till Objektorienterad Programmering Introduktion till Java Variabler

Läs mer

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02 Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02 Denna laboration är frivillig och syftar till att låta dig lära mer om grafik i java. Labben är ganska grundlig och går igenom vad du skall

Läs mer

2D1339 Programkonstruktion för F1, ht 2003

2D1339 Programkonstruktion för F1, ht 2003 2D1339 Programkonstruktion för F1, ht 2003 Kontrollskrivning 1 Onsdag 19/11 2003 kl 9.15 10.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

2D1339 Programkonstruktion för F1, ht 2004

2D1339 Programkonstruktion för F1, ht 2004 2D1339 Programkonstruktion för F1, ht 2004 Kontrollskrivning 1 Onsdag 24/11 2004 kl 11.15 12.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :

Läs mer

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

JAVAUTVECKLING LEKTION 3

JAVAUTVECKLING LEKTION 3 JAVAUTVECKLING LEKTION 3 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Numeriska typer Inläsning av numerisk data Numeriska typomvandlingar Standardklassen Math Villkorskonstruktioner

Läs mer

Att skriva till och läsa från terminalfönstret

Att skriva till och läsa från terminalfönstret Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen

Läs mer

Lab5 för prgmedcl04 Grafik

Lab5 för prgmedcl04 Grafik Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna

Läs mer

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4: (22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard

Läs mer

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34 Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger

Läs mer

Rita Egna Bilder, Timer

Rita Egna Bilder, Timer Rita Egna Bilder, Timer Josef Svenningsson November 27, 2012 Grafik Varje gång ett fönster behöver ritas om, pga av att det flyttas eller varit övertäckt, anropas automatiskt en metod som har namnet paintcomponent.

Läs mer

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015 Objektorienterad Programkonstruktion Föreläsning 3 9 nov 2015 Kursnämnd Namn kommer... UML: Klassdiagram UML: Relationer Ärver från superklass Implementerar gränssnitt Dubbelriktad eller oriktad relation

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel 732G11 Linköpings universitet 2011-02-15 1 2 3 4 Extrapass Extrapass håller på att bokas. Blir 3-4 st. och öppet för alla. Mer info på kursmailen när bokningen är klar. i Java En funktion i Java... public

Läs mer

2D1342 Programkonstruktion för F1, ht 2006

2D1342 Programkonstruktion för F1, ht 2006 2D1342 Programkonstruktion för F1, ht 2006 Lappskrivning 1 Tisdag 7/11 2006 kl 11.15 12.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga

Läs mer

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016 Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP Objekt-orienterad programmering OOP F1:1 Delkursansvarig Epost Kursens webbsidor sm@fc.dsv.su.se http://people.dsv.su.se/~sm/oop/ Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första

Läs mer

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik 2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det riktiga provet tar 45 minuter (en lektionstimme) och det

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

Objektorienterad programmering Föreläsning 2

Objektorienterad programmering Föreläsning 2 Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade

Läs mer

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU lösningsförslag till tentamen 2017-06-09 Tid: 8:30-12:30. Plats: SB. Ansvarig lärare: Fredrik Lindblad,

Läs mer

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Sven-Olof Nyström Uppsala Universitet 13 juni 2005 1 Utvecklingsverktyg för Java Vi rekommenderar Suns utvecklingsverktyg (SDK, tidigare JDK), se

Läs mer

Tentamen , Grundläggande programmering i Java

Tentamen , Grundläggande programmering i Java Institutionen för informationsteknologi och medier Sid:1(3) Grundläggande programmering i Java Martin Kjellqvist Lösningsförslag, lösningsansatser Tentamen 2006-01-20, Grundläggande programmering i Java

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt

Läs mer

4.4 Swing ett interaktivt grafiskt gränssnitt

4.4 Swing ett interaktivt grafiskt gränssnitt 4.4 Swing ett interaktivt grafiskt gränssnitt Våra javaprogram har hittills bara haft utdata, inga indata. Det var utdata som skrevs ut från programmet till bildskärmen antingen med metoden showmessagedialog()

Läs mer

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt Programmeringsteknik II - HT18 Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt 18-09-28 1 Förra gången: Arv och klasshierarkier Vi såg hur

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2 Strukturerad programmering l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll 1 2 Olika ansatser Begrepp Den manipulativa/imperativa

Läs mer

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen (5 februari 2018 F4 1 ) Dagens föreläsning Sett i datorsalarna Mer om arrayer Matriser Formatering av utskrifter Inläsning med hjälp av Scanner-klassen Ett exempel med dialogrutor Java-doc Kommer först

Läs mer

ID1004 Laboration 3, 5-6 November 2012

ID1004 Laboration 3, 5-6 November 2012 18-okt-2012/FK ID1004 Laboration 3, 5-6 November 2012 Labben bör göras individuellt. Beräknad tid ca 2 timmar. Instruktionen antar att labben utförs i datasal, med hjälp av den integrerade utvecklingsmiljön

Läs mer

Frames, menyer och GUI-program

Frames, menyer och GUI-program 15 Frames, menyer och GUI-program Frames En frame-klass Om konstruktorer - igen Funktionella fönster Menyer Popupmenyer GUI-applikationer Dialogrutor Printerutskrift Kap 15: Sid 2 Frames Redan i kapitel

Läs mer

JAVAUTVECKLING LEKTION 4

JAVAUTVECKLING LEKTION 4 JAVAUTVECKLING LEKTION 4 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Iterationer (loopar) Algoritmer Mer om felsökning 1 WHILE-SATSEN String s = JOptionPane.showInputDialog("Talet

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016 Objektorienterad Programkonstruktion Föreläsning 3 7 nov 2016 Klass/instans Med hjälp av nyckelordet static kan vi bestämma att en metod eller ett fält ska tillhöra själva klassen i stället för en specifik

Läs mer

Att använda Java SE JDK 6

Att använda Java SE JDK 6 Att använda Java SE JDK 6 Programmeringsspråket Java är utvecklat av det amerikanska företaget Sun Microsystems. Sun erbjuder gratis en utvecklingsmiljö för java-programmering, Java 2 SE (Standard Edition).

Läs mer

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler

Läs mer

Språkkonventioner och redigering av tal.

Språkkonventioner och redigering av tal. Språkkonventioner och redigering av tal. Kap J3-1 Konventioner för olika språk hanteras med hjälp av klassen java.util.locale Ett objekt i denna klass beskriver en lokal konvention. Lokala konventioner

Läs mer

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser. (16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i

Läs mer

Föreläsnings 9 - Exceptions, I/O

Föreläsnings 9 - Exceptions, I/O Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

E02 The Review Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition Kurs: 1dv403 Webbteknik I Johan Leitet E02 - "The Review" Dagens agenda Identifierare Kommentarer Variabler Datatyper Operatorer Villkorssatser

Läs mer

Att använda Java SE JDK 6

Att använda Java SE JDK 6 Att använda Java SE JDK 6 Programmeringsspråket Java är utvecklat av det amerikanska företaget Sun Microsystems. Sun erbjuder gratis en utvecklingsmiljö för java-programmering, Java 2 SE (Standard Edition).

Läs mer

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser? Programmeringsteknik och Matlab Övning 6 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se 1 F18-20-2006 Denna vecka Måndag: Ett komplext problem Tisdag: Lektion. Kväll: Essäfrågan distribueras via webben. Dead-line onsdag 17 maj, kl 12.00. Inlämning elektroniskt och på papper. Onsdag: Grafik

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering

Läs mer

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2000-03-22, kl 14.00-18.00 Hjälpmedel: En lärobok

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Grafiskt användargränssnitt, Swing Layout och komponenter Göra

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F12:1 OOP Objekt-orienterad programmering Föreläsning 12 Mer om JOptionPane Undantagshantering Vad är det? try catch Kasta egna undantag Filhantering spara objekt mellan körningar Användardialog via

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

NetBeans 5.5. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java bild 1 Objektorienterad programmering i Java Föreläsning 1 Kapitel 1-3 i kursboken Java Software Solutions bild 2 Läsanvisningar Kapitel 1 är en repetition av det ni förväntas kunna sedan tidigare. Det

Läs mer

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera

Läs mer

Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max 30p i denna halvtentamen Hjälpmedel:

Läs mer

Tentamen , Introduktion till Java, dtaa98, dtea53

Tentamen , Introduktion till Java, dtaa98, dtea53 Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion

Läs mer

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print. 1 Inmatning och utskrift Inmatning från tangentbord och utskrift till skärm sker i java med hjälp av objekten System.out och System.in. Dessa båda objekt är exempel på strömmar. En ström är en typ som

Läs mer

TDDD78 Viktiga begrepp, del 2

TDDD78 Viktiga begrepp, del 2 jonas.kvarnstrom@liu.se 2015 TDDD78 Viktiga begrepp, del 2 Identitet och likhet Är likhet och identitet samma sak? Oj, vi har samma kläder på oss idag! Nej, men likadana! Besserwisser 3 Detta är två rutor

Läs mer