Föreläsning 3 sept 10 (Måndag v 37).

DD Chapter 3.

Applikationer och applets.

Det finns två sorters java-program som används på olika sätt:

Körning av applikation (vanliga, fristående program):

...>java klass // Klassfilen klass skall åtminstone innehålla

//(en översättning av ) en main-metod

Körning av applet med bläddrare:

Dessa program är ämmnade att köras genom att man man klickar på en webbsida som körs med en bläddare, t ex Netscape. webb-sidor beskrivs av filer i formatet (sidbeskrivningsspråket) html, filer som brukar ha suffix .html. I html finns särskild kod för att instuera bläddaren att det man klickar på är en applet, så bläddaren kan hämta klassfilen (från någonnstans på webben)

och exekvera den lokalt. Bläddaren kör sedan programmet, dvs bläddaren innehåller

en Java Virtuel Machine. Den bläddare ni har klarar antagligen inte bokens applets,

som är för moderna med swing-applets, men jag har lyckat byta till en modernar netscape som klarar jobbet.

Bekvämmare för programutvecklare är att använda en mini-mini-bläddare, som klarar swing, som bara kan köra applets och inget annat. Dessa applets måste finnas loklt på datorn.

...>appletviewer fil.html

Filen fil.html (på arbetskatalogen) kan se ut så här:

<html>

<applet code = "fil.class" width = 800 height = 800 >

</applet>

</html>

Filen fil.class, som ligger på arbetskatalogen, skall innehåll en klass som beskriver applets-objekt eller JApplets-objekt.

Klasser med klass-metoder och klasser som definerar objekt.

Det finns (lite förenklat) två användningar av klasser:

Klasser med klassmetoder:

En sådan klass innehåller en eller flera metoder som är deklarerade med ordet static.

De klasser vi hitills gjort har innehållet en enda sådan metod, nämligen (main-metoden).

Att programmera med sådan klasser påminner om traditonell impåerativprogrammering med Fortran, C, Pascal, Basic osv.

Klasser som definierar objekt:

En sådan klass innehåller en eller flera metoder som är deklarerade utan ordet static.

En sådan klass kan användas som en typ, och man kan deklarera hur många refernsvariabler man vill som var och en kan referera till var sitt objekt av den sort som klassen beskriver.

Hittils har vi t ex använt String-klassen. En viktig egenskap hos objekt är att man kan tänka sig att varje objekt har sin egen uppsättning värden och också har en egen uppsättning av de metoder som hör till klassen. Ex på körning av ett amin-metod med lokla variablerna

String firstNumber;

Strint secondNumber;

int number1;

int number2;

D&D Kapitel 3 är en första användning avobjket. Man behöver dock inte kunna skapa objektetet av någon appletsort, det gör appletviewer. Våra appletar kommer att behöva massor av metoder; men de flesta kommer vi inte att behöva skriva själva, vi kommer att ärva metoderna från en färdig klass JApplet .

Semantiken för programmet WelcomeApplet

Så här ser det ut när appletviewer skapat WelcomeApplet -objektet (en instans av klassen WelcomeApplet). Metoden paint har ännu inte anropats.

Så här ser det ut när appletviewer skapat WelcomeApplet -objektet (en instans av klassen WelcomeApplet). Metoden paint har anropats (med tillgång till ett Graphics -objekt som referas med g), som i sin tur anropat drawString i Graphics-objektet.

Semantiken för programmet AdditionApplet

Så här ser det ut när AdditonApplet-objektet just skall göra satsen (kommandot)

sum = number1 + number2;

Och så här ser det ut när paint har anropat g.drawString: