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 ansatsen Pascal, Modula-2, Cobol, Basic, ADA... Den funktionella/applikativa ansatsen ML, Miranda, Haskell Den relationella ansatsen Prolog Den objektorienterade ansatsen : Ð Strukturen hos en applikation Ð GrundlŠggande program element Ð Att kšra ett program Ð Stšd fšr programvarukonstruktion Ð applets, C++, Simula, Smalltalk 3 4 Fšrsta programmet //Prints a quote from Abraham Lincoln class Lincoln public static void main (String[] args) System.out.println(ÓWhatever you are, be a good oneó); Kšrningen }//main }//class Lincoln 5 6 1
s Programstruktur Blanka Ett program utgšrs av en eller flera klasser En klass utgšrs av en eller flera metoder En metod innehœller program satser En applikation exekverar/utfšr alltid metoden main Blanktecken, blanka rader och tabbar ignoreras Formatteringen kan všljas pœ mœnga olika sštt Jmfr Lincoln2.java och Lincoln3.java LŠsligheten underlšttas av konsistent indentering 7 8 Kommentarer Identifierare inline documentation Identifierare namn pœ olika storheter Fšrklarar syftet med programmet och beskriver hšndelsefšrloppet I finns tvœ sštt att kommentera: Vissa identifierare Šr fšrdefinierade Identifierare fœr innehœlla bokstšver (ej Œ,Š,š), siffror, understrykningstecknet (_), och dollar tecknet // Kommentaren ršcker raden ut FŒr ej inledas med siffra /* kommentaren ršcker till den avslutande symbolen, Šven šver radbrytningar */ Šr case sensitive, medfšr att Total och total Šr olika identifierare 9 10 Reserverade ord VŠrden De reserverade orden fœr inte Šndras explicita všrden av en viss typ abstract boolean break by te byvalue case cast catch char class const continue default do double else extends false final finally float for future generic goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient true try var void volatile while Heltals-vŠrden: 25 69-4288 Flyttals-vŠrden: 3.14159 42.075-0.5 StrŠng-vŠrden: ÓResultatet = " ÓVŠlkommen till mitt kanonprogram!ó 11 12 2
API API (Application Programmer Interface ) Šr en samling klasser Metoderna println och print ingœr i API; och inte i sprœket sjšlvt Utskriftsmetoderna Ð println gšr en radframmatning Ð print gšr inte det Se exempel s.41 Countdown.java StrŠngkonkatenering StrŠngar Ð System.out.println(ÓDetta ŠrÓ + ÓstrŠngarÓ); Ð System.out.println(ÓDetta Šr talet = Ó + 123); + funktion beror pœ operanderna + numeriska operander ger vanlig aritmetik 13 14 Programmerings sprœk Fyra nivœer: MaskinspprŒk a ss em bler HšgnivŒsprŒk kompilatorn šversštter till byte Inte maskinsprœk fšr en specifik CPU interpretatorn, šversštter byte till maskinkod och exekverar fjšrde-generationens sprœk sšgs vara plattforms-oberoende 15 16 source byte Kompilera i vœr miljš : > javac Lincoln.java interpreter Byte Skapar filen Lincoln.class, som kan exekveras med: > java Lincoln Integrerad miljš t.ex. JBuilder Machine 17 18 3
Command Line Arguments //Visar ett exempel pœ parametrar till programmet public class ComLinArgs public static void main (String[] args) System.out.print(ÓFšrsta argumentet Šr : "); System.out.println(args[0]); }//main }//class ComLinArgs Kšrning Metoden main kan ges argument i kommandot > java ComLinArgs JŠttekul Dessa všrden kallas command line arguments Argumenten betraktas som en lista av stršngar 19 20 Klass bibliotek Importera Packages En klass kan nœs med : API Šr ett klass bibliotek Klasserna i API Šr uppdelade i packages Klassen System finns i paketet java.lang java.lang.system.out.println (); Éeller paketet kan importeras : import java.applet.*; import java.util.random; java.lang importeras automatiskt till alla program 21 22 Klasser och Objekt Klassdiagram Fig 2.9 s. 60 Fig. 2.10 s.61 Objects Class My first car Vehicle Car John's car Car Airplane Train Dad's car 23 24 4
Applets En applikation Šr ett komplett program applet - program som skickas šver nštet och exekveras av Web-lŠsare Applikationer har en metod main, applets har inte det Applets hšrleds frœn klassen java.applet.applet LŠnkar till applets kan lšggas i HTML dokument See Confucius.java and No_Parking.java // Skriv ut en stršng i en applet import java.awt.*; import java.applet.applet; public class EnkelApplet extends Applet public void paint( Graphics g ) g.drawstring( "Hejsvejs!", 30, 30 ); }// metod paint }// klass EnkelApplet Exempel 25 26 <title>enkel applet</title> <hr> HTLM-filen <applet =ÓEnkelApplet.class" width=200 height=200> Applets local computer </applet> <hr> source byte <a href=óenkelapplet.java">kšllkoden.</a> remote computer Web browser interpreter 27 28 5