fristående program En applikation är ett fristående program Att köra

January 9, 2018 | Author: Anonymous | Category: Engineering & Technology, Datavetenskap, Java Programming
Share Embed Donate


Short Description

Download fristående program En applikation är ett fristående program Att köra...

Description

Innehåll ! OOP

snabbintroduktion ! Datatyper ! Uttryck ! Satser ! Arv (intro) ! Att organisera Javakod ! Klassdesign och metodik (UML, CRC)

F15

Applikationer - fristående program ! Hur

konstruerar man fristående program som kan ”köras”? Dvs Java utan BlueJ?

! Arv,

polymorfi och dynamisk bindning ! Fält ! Undantag ! In-/utmatning och filer ! Applets vs applikationer ! Rekursion

jubo,thomasj,marie 2003

"I

BlueJ så kan man skapa objekt genom direkt genom att anropa konstruktorn via klassdiagrammet… " … och sedan anropa metoder interaktivt för att manipulera det skapade objektet " Detta går ej i de flesta andra programmeringsmiljöer för java. " Hur gör man då för att starta exekveringen av ett program?

1

F15

jubo,thomasj,marie 2003

En applikation är ett fristående program ! En

Att köra en applikation ! Antag

Java-applikation måste innehålla en metod main()

att filerna TowersOfHanoi.java och SolveTowers.java finns i en katalog ! Under Windows (liknande i alla andra system...):

"I

metoden main() startas exekveringen " Metoden main() måste se ut på ett särskilt sätt # Utom # Måste

argv som är ett godtyckligt namn se till objekt som behövs skapas och att rätt metoder startas.

" Starta

kommandofönstret och gå till rätt katalog

" Kompilera

> c:\jdk\bin\javac SolveTowers.java

Exempel:

" Kör

> java SolveTowers

public class ExampleApplication { public static void main (String[] argv) { // Deklarationer och satser som i // vilken metod som helst … } } F15

jubo,thomasj,marie 2003

! Ofta

måste man ange sökvägar

" Till

java/javac katalogen med klassfilerna (om såna finns) " Till katalogen med källkoden " Till

3

F15

Kommandoradsparametrar

4

! Används

main kan ges argument i kommandot > java ComLinArgs Jättekul !Dessa värden kallas kommandoradsparametrar !Argumenten betraktas som en lista av strängar //Visar 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

jubo,thomasj,marie 2003

jubo,thomasj,marie 2003

Jar-filer

!Metoden

F15

2

5

för att paketera ihop javafiler så att det blir lättare att distribuera ! BlueJ kan exportera ett projekt till en jar-fil ! Kan göras exekverbara genom att man i jar-filen beskriver i vilken klass metoden main finns

F15

jubo,thomasj,marie 2003

6

En Applet körs i en webläsare ! Webläsare " Laddar

HTML-filen Doodle.html Doodle Applet

(Netscape, Explorer etc)

en applet över nätet när den hittar en -tag

" Tillhandahåller en grafisk miljö " Skapar ett objekt av appletens klass " Tillåter inte vissa operationer av säkerhetsskäl

! Exempel

Doodle Applet

på hur det ser ut i html-dokumentet:

Doodle Applet ... ...

! Se

Doodle i kod-mappen på hemsidan

F15

7

jubo,thomasj,marie 2003

F15

Appletens kod Ytan i websidan Kodens plats = i samma katalog som html-dokumentet "."

8

jubo,thomasj,marie 2003

Applet java.lang.Object

java.awt.Component

java.awt.Container

java.awt.Panel

java.applet.Applet F15

9

jubo,thomasj,marie 2003

F15

Applets på nätet

10

jubo,thomasj,marie 2003

En applets anatomi och livscykel ! Skapas

Browser

Server

Fönster

Applet … + init ( ) + start ( ) + stop ( ) + destroy ( )

Webb-sida (.html)

Applet Applet (.class) Arkiv (.jar)

+ paint (Graphics g) + play (URL source) + resize (int w, int h) ...

Ljud och bild filer

av browsern (eller appletviewer:n) ! Inititialiseringen " Endast

en gång när appleten laddas " Motsvarar konstruktorn ! Startas " Varje " När

jubo,thomasj,marie 2003

11

F15

sidan lämnas

! Slutstädas " När

F15

gång sidan visas

! Stoppas

jubo,thomasj,marie 2003

sidan tas bort ur minnet 12

Vad Applets kan som applikationer inte kan

Vad applets inte kan/ får ! Ladda

! Spela

! Läsa

! Visa

ljudfiler HTML-dokument

! Prata

med andra applets på samma sida

bibliotek eller “native methods” och skriva filer på klienten ! Göra nätverksanslutningar annat än till sin “egen” server ! Starta program på klienten ! Läsa vissa systemegenskaper

F15

! Applets

som laddats “lokalt” har inga begränsningar

13

jubo,thomasj,marie 2003

F15

jubo,thomasj,marie 2003

14

Javadoc - för källkoden ! Speciella

kommentarer som kan användas för att generera dokumentation av koden man har skrivit ! BlueJ har möjlighet att göra detta (finns även andra verktyg) ! /** startar en javadoc kommentar ! Måste skrivas innan en klass, attribut, konstruktor eller metod deklaration ! Första raden skall vara en kort förklaring av vad metoden gör ! Efter den första raden som börjar med @ så slutar den allmänna beskrivningen av metoden

Dokumentation Programmeringsmetodik och programmering i ett objektorienterat språk, 5p. TDBA63 HT2003

F15

jubo,thomasj,marie 2003

Javadoc 2 ! ! ! ! ! ! ! ! !

@author @version @param @return @exception @see @since @serial @deprecated

(endast klasser och (endast klasser och (endast metoder och (endast metoder) (även @throws sedan

Labrapport interface) interface) konstruktorer)

! Framsida ! Innehållsförteckning ! Åtkomst

och användarhandledning ! Problembeskrivning ! Systembeskrivning ! Algoritmbeskrivning ! Lösningens begränsning ! Problem och reflektioner ! Testkörningar ! Källkod

Javadoc 1.2)

(eller @serialField eller @serialData)

! API

beskrivningen på nätet är uppbyggd med hjälp av javadoc ! För mer info se: http://java.sun.com/j2se/javadoc/ F15

jubo,thomasj,marie 2003

16

17

F15

jubo,thomasj,marie 2003

18

Framsidan

Innehållsförteckning

! Framsidan

! Innehållsförteckningen

på din labrapport kan du utforma ganska fritt. Tänk bara på att den ska vara läsbar, och innehålla (minst) följande information:

ska innehålla alla rubriker i rapporten, och eventuellt en del underrubriker, beroende på hur rörigt det blir.

" Ditt

" Tänk

namn e-mail adress här på CS! " Kursens namn samt vilken termin det är (t.ex. ht03) " Vilken laboration det är " Handledarens/handledarnas namn " Datum " Vilken version det är (första/andra/uppsamling etc.)

på att innehållsförteckningen inte bör vara listad i innehållsförteckningen...

" Din

! Lämna

! Använd

gärna de funktioner som finns för att generera innehållförteckning automatiskt i det ordbehandlingsprogram du använder

plats för kommentarer

F15

jubo,thomasj,marie 2003

19

F15

jubo,thomasj,marie 2003

Åtkomst & användarhandledning

Problemspecifikation

! Kan

ibland delas upp i två delar… ! Hur kan handledaren komma åt din lösning för testning, alltså sökvägen till din källkod och ditt program. Vad heter de olika filerna som programmet är uppbyggt av? ! Hur används programmet? ! Hur ska handledaren gå tillväga för att kompilera och köra din källkod?

F15

jubo,thomasj,marie 2003

21

! Ska

beskriva vad uppgiften går ut på kunna ge en bild av uppgiften utan att man ska behöva läsa hela orginalspecifikationen ! Använd egna ord, d v s kopiera inte labbspecifikationen ! Sammanfatta problemet ! Hänvisa till orginalspecifikationen ! Gör specifikationen att vissa antaganden måste göras? Ta upp dessa i sådana fall ! Har du gjort några utökningar av uppgiften? Redovisa i sådana fall dessa. ! Ska

F15

jubo,thomasj,marie 2003

Systembeskrivning ! Om

beskriva systemets interna uppbyggnad och struktur ! Beskriv varje klass och syftet med denna och dess del av helheten.

du har använt några icke självklara algoritmer, t.ex. en sorteringsalgoritm, en sökalgoritm eller något annat, ska du beskriva den/dem här. ! Försök undvika att använda element som är direkt kopplade till koden, t ex variabelnamn och dylikt ! Syftet med detta avsnitt är att en läsare ska kunna få förståelse för hur en komplicerad del löses utan att behöva lusläsa kod och utifrån denna inse vad som händer

" För

att beskriva klassen behöver man också beskriva tex de metoder som finns i den. " Här kan det gå bra att använda sig av javadoc för att automatgenerera delar av beskrivningen ! Beskriv

relationer mellan klasser, med figurer och kommentarer till dessa, i Java är UML ett bra verktyg

jubo,thomasj,marie 2003

22

Algoritmbeskrivning

! Ska

F15

20

23

F15

jubo,thomasj,marie 2003

24

Algoritm

Exempel !

Efter den Persiske matematikern Muhammed al-Khowârizmî 800 talet e. Kr ! Vad

är en algoritm?

" Som

F15

ett recept eller en arbetsbeskrivning

jubo,thomasj,marie 2003

25

Antag att vi har en lista med alla anställda på ett företag: Namn Pnr och Lön, och vi vill räkna ut lönekostnaden för företaget "

Skriv ner talet 0

"

Gå igenom listan, och för varje anställd så adderar du personens lön till det skrivna talet

"

När man nått slutet på lista, så är det nedskrivna talet utdata

F15

jubo,thomasj,marie 2003

Karakteristik för en algoritm

Algoritmer mer formellt ! Def:

En algoritm är en noggrann plan, en metod för att stegvis utföra något ! Krav på en algoritm

! Texten

som beskriver algoritmen är fixt stor ! Processen som algoritmen beskriver kan vara av dynamisk storlek ! Algoritmer löser en klass problem ! Algoritmer kan ha olika kornighet

" Ändlighet(Algoritmen

måste ha en ändlig beskrivning) (Varje steg måste vara entydigt) " Indata (varje algoritm måste ha Noll eller fler indata " Utdata (Algoritmen måste ha Ett eller flera utdata) " Effektivitet (Varje steg i algoritmen måste vara effektiva, kunna utföras på en ändlig tidsrymd) " Bestämdhet

"T

ex. Andra steget i föregående algoritm kan förfinas så att man får en mer finkornig algoritm

F15

jubo,thomasj,marie 2003

27

F15

jubo,thomasj,marie 2003

Algoritmbeskrivning

! Beskriver

alla begränsningar som du kan komma att tänka på, eller har stött på under testningen ! Uppriktighet anses positivt. Alltså bör du tala om de begränsningar som strider mot specifikationen

och koncist ! Entydigt ! Högnivåliknande syntax 1 Kontrollera att antalet personer är mindre än tio 1.1 Om antalet personer överstiger tio, avsluta med ett felmeddelande 2 För varje person: 2.1 Skriv ut personens namn med röd text 2.2 Skriv ut personens födelsenummer med blå text 2.3 Skriv ut personens adress med grön text 3 Vänta på att användaren trycker på tangenten N 4 Avsluta funktionen

jubo,thomasj,marie 2003

28

Lösningens begränsningar

! Kort

F15

26

" Nästan

alla lösningar innehåller någon begränsning, tänk till lite bara

! Hur

29

F15

kan/kunde begränsningarna undvikas?

jubo,thomasj,marie 2003

30

Problem och reflektioner

Testkörningar

! Stället där du kan skriva "vad som helst". ! Vad du tyckte om laborationens svårighetsgrad, ! Hur handledningen fungerat ! Hur bra datorerna fungerat ! Vilka problem som uppstått under arbetets gång ! Om du haft nog med tid etc.

! Du

måste testa din lösning innan du lämnar in den. För att visa att du gjort det, och för att ge handledarna ett snabbt sätt att kontrollera att din lösning ser OK ut så bifogar man testkörningarna i rapporten. ! Tänk ut vettiga testfall. Vad kan tänkas vara svårt för programmet? ! Kommentera testfallen. Varför valde du detta testfall? Blev resultatet som det var meningen att det skulle bli?

Tack ! Om

du fått hjälp av någon (kurskamrat, handledare, mamma), kan det vara på sin plats att tacka denne i rapporten.

F15

jubo,thomasj,marie 2003

31

F15

jubo,thomasj,marie 2003

Källkod

Källkod/Indentering

! Kan

vara bra att bifoga som bilaga, eftersom ordbehandlare har en tendens att misshandla källkod ganska rejält vad gäller indentering, stavning etc.

! Hur

finns vissa verktyg vars syfte enbart är att skriva ut källkod snyggt (t ex atp, a2ps och enscript)

för enkel sats som hör till t.ex. if- whileoch for- satser ! Tänk på att inte skriva för långa rader ! Välj identifierare med eftertanke!! ! Om du måste bryta upp ett uttryck/sats p.g.a. att raden skulle ha blivit för lång så flytta in resten av uttrycket minst till positionen för starten av uttrycket/satsen ! Mer info se: http://java.sun.com/docs/codeconv/

vara utskriven med ett icke-proportionellt typsnitt, t.ex. Courier. ! Koden ska vara indenterad på ett konsekvent sätt ! Koden ska se bra ut även på papper ! Koden ska vara kommenterad där det inte är klart vad du gjort ! Varje metod föregås av kommentarer som beskriver dess syfte, in-/utdata o s v 33

Övrigt ! Använd

ett korrekt och formellt språk ! Sidhuvud och sidfot. Använd dessa, men ha inte för mycket information i dem. I sidhuvudet kan du t.ex. ha ditt namn, datum, kursens namn och vilken laboration det är. I sidfoten kan du ha sidnumret. ! Tänk på att förstasidan inte bör vara numrerad eller ha samma sidhuvud som resten av rapporten. ! Läs F15

igenom rapporten innan du lämnar in den! jubo,thomasj,marie 2003

35

alltid in all kod som står i ett block 3-4 tecken (tab)

! Detsamma

! Ska

jubo,thomasj,marie 2003

man formaterar sin kod

" Flytta

" Det

F15

32

F15

jubo,thomasj,marie 2003

34

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF