Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Sven-Olof Nyström Uppsala Universitet 11 mars 2005 1 Utvecklingsverktyg för Java • Vi rekommenderar Suns utvecklingsverktyg (SDK, tidigare JDK), se vidare kurshemsidan. • För den som vill prova ett integrerat utvecklingsverktyg finns t.ex. BlueJ http://www.bluej.org. De viktigaste verktygen i korthet: • javac: kompilator • java: interpretator • appletviewer: för att visa applets 2 Dokumentation • När man arbetar med Java behöver man dokumentation av alla standardklasser. • Bäst är att ladda hem den till sin dator men man kan också länka direkt till originalet på http://java.sun.com/j2se/1.4.2/docs/api/ eller http://java.sun.com/j2se/1.5.0/docs/api • Suns tutorial http://java.sun.com/docs/books/tutorial beskriver Java från grundläggande syntax till de mest avancerade konstruktionerna. 3 Verktyg (forts) Arbetsgången är: • man redigerar sina filer (klasser) med något redigeringsverktyg, • kompilerar dem med javac och • kör den med java (applikationer) eller appletviewer. 4 Verktyg (forts) • Applets kan också visas i webbläsare som t.ex. Explorer, Netscape eller Mozilla. • Kompilator, interpretator och appletviewer startas – från ett terminalfönster (Unix) eller – från ett MS-DOS-fönster (Windows). • Om filen heter MinTest.java skriver man alltså: javac MinTest.java java MinTest 5 Java Application Programmer’s Interface (API) • är ett stor samling färdiga programvarukomponenter • uppdelat i paket (packages) • t.ex. AWT och Swing för grafik and grafiska användargränssnitt • objekt, strängar, trådar, tal, input, output, datastrukturer m.m. • applets • nätverksklasser (URL, sockets, IP adresser) 6 Ett första exempel • Klassen Hej implementerar ett klassiskt exempel: en applikation som skriver ut ett meddelande. • Filen ska heta Hej.java, samma namn som klassen • public class Hej { public static void main(String[] args) { System.out.println("Hej hopp"); } } 7 Enkelt exempel (testkörning–Unix) harpo$ javac Hej.java harpo$ java Hej Hej hopp harpo$ 8 Tips Om ni provkör ovanstående kommer i att upptäcka att det går ganska långsamt att starta upp programmet. Det beror på att bytekoden (inklusive alla bibliotek) måste översättas till maskinkod. Skriv java -Djava.compiler=NONE Hej så går det snabbare att komma igång. 9 Enkelt exempel–Att notera: • Påminner mycket om C++. • I Java är allting klasser, även main är en metod i en klass. • I programmet deklareras en klass med namnet HelloWorld (filen ska då heta HelloWorld.java). • Klassen har en metod main som i sin tur har ett metodanrop till metoden println i (det statiska) objektet out i klassen System. • Liksom i C++ kan attribut och metoder deklareras private, public eller protected. 10 Att notera–mera: • Metoden main måste vara public, static och void: – public för att man ska kunna komma åt den utifrån klassen. – static betyder att den är en klassmetod och inte tillhör något objekt i klassen – void för att den inte returnerar något. 11 Mera att notera • Man kompilerar en Java-applikation med kommandot javac. • För att kompilera programmet ovan skriver vi alltså javac HelloWorld.java. • Kompilatorn skapar en bytekod-fil som heter HelloWorld.class • Man exekverar en Java-applikation genom att skriva java xxx där xxx är den klass som innehåller metoden main. I exemplet skriver vi alltså java HelloWorld 12 Mera att notera • I Java används ofta klassattribut (out i klassen System) och klassmetoder (main). • Sådana attribut och metoder deklareras static—de inte tillhör något objekt i klassen utan själva klassen. • I C++ kommer man åt sådana metoder med ::-operatorn, i Java räcker det med en punkt. • Man kan ha flera klasser i en källkodsfil om alla klasser utom den som har samma namn som filen bara används internt av "huvudklassen"(den med samma namn som filen). 13 En liten Java-applet Applets (appletprogram, miniprogram) är små applikationer som (oftast) körs av webbläsare. Vi skriver en liten applet: import java.awt.*; import java.applet.*; public class HelloWorldApplet extends Applet { public void paint(Graphics g) { g.drawString("Hello world", 5,25); } } 14 En liten applet (forts) Här ser du appleten "i aktion": 15 En liten applet (forts) Applets startas som sagt från en webbläsare: man lägger helt enkelt in ett anrop till appleten på en webbsida. Filen HelloWorldApplet.html: <APPLET CODE="HelloWorldApplet.class" WIDTH=200 HEIGHT=50 ALIGN=MIDDLE> </APPLET> Programmet appletviewer kan användas för att titta på appleten. För att se appleten, ange kommandot: appletviewer HelloWorldApplet.html varvid ett litet fönster poppar upp på skärmen. 16