Frames och applets - en jämförelse
|
|
- Maj Svensson
- för 8 år sedan
- Visningar:
Transkript
1 4 Applets Frames och applets - en jämförelse Din första applet Färger, texter och figurer Skapa egna klasser och objekt Bilder och ljud Parametrar i html-koden
2 Kap 4: Sid 2 Frames och applets - en jämförelse Att visa en Frame Vi repeterar först hur vi gjorde för att visa en Frame: I föregående kapitel gjorde du en övning där du skapade en klass, MinFrame, genom att ärva från Frame. Sedan skrev du ett javaprogram (en klass med en main-metod) Här instansierade du ett MinFrame-objekt och visade det på skärmen: class VisaFrame public stati void main(...) MinFrame f; f = new MinFrame(); f.show();... class Frame public void show()... // med flera metoder // (Kod skriven av // Javas konstruktörer) class MinFrame extends Frame MinFrame()... public void show()... // med flera metoder // (Kod skriven av // Javas konstruktörer) f... show()... MinFrame-objektet MinFrame-objektet är en (mycket enkel) GUI-applikation, ett windows-program. Det kan förses med knappar, textfält, kryssrutor etc. (Det ska vi göra så småningom ) För att visa ett Frame-objekt (starta GUI-applikationen) krävs alltså en main-metod där man instansierar objektet (anropar dess konstruktor) anropar objektets show-metod Java applets Ordet "applet" betyder "liten applikation" (litet program) Vad är då en applet? En applet är också en GUI-applikation, men den är inte ett fristående program. En applet visas (och körs) "inbäddad" på en webb-sida. Java4.doc Ove Lundgren 2
3 Kap 4: Sid 3 Java har en klass som heter Applet. Man skriver sin egen applet genom att ärva från denna klass (precis som vi gör en egen frame genom att ärva från klassen Frame ) Antag att vi skrivit en applet, MinApplet.java, där vi ärvt från Applet, samt sparat och kompilerat så att filen MinApplet.class existerar. Det behövs nu inte någon klass med en main-metod för att starta appleten. Ett appletobjekt instansieras och visas nämligen genom webbläsarens försorg! För att få webbläsaren att skapa och visa ett MinApplet-objekt skriver man helt enkelt in följande tagg i HTML-koden: <APPLET CODE = "MinApplet.class" WIDTH=300 HEIGHT=200> </APPLET> När webb-läsarens träffar på denna tagg så instanieras (och visas) automatiskt ett objekt ur klassen. En applet har några metoder. Efter att objektet skapats anropas dessa (med automatik). Så här kan du tänka dig att det går till: En "tagg" i vår HTML-fil <APPLET CODE = "MinApplet.class" WIDTH=200 HEIGHT=200> </APPLET> class Applet public void init() public void start() public void paint(graphics g) // fler metoder finns... Någon classfil med mainmetod behövs inte! Webb-läsaren utför satserna nedan automatiskt Här är vår appletklass, skapad genom arv från klassen Applet MinApplet x; x = new MinApplet(); x.init(); x.start(); x.paint(graikfobj); Objektet skapas class MinApplet extends Applet public MinApplet() // konstruktor public void init() public void start() public void paint(graphics g) // fler metoder finns... init() start() Appletytan visas paint(grafikobj) // fler metoder finns... Innehåll visas MinApplet-objektet Anmärkning: I figuren ovan har vi (för att öka tydligheten) låtit appletobjektet få referensen x. Instansieringen av appletobjeket sker bakom kulisserna så detta är ingen referens vi kan använda oss av. Java4.doc Ove Lundgren 3
4 Kap 4: Sid 4 Vi kommer nu till avsnitt där vi ska lära oss hur man arbetar med färger samt hur man ritar och lägger in komponenter (knappar, textfält, kryssrutor etc). Därefter följer mus- och knapphantering, animering, trådar mm. För att lära oss detta kan vi antingen arbeta med frames eller med applets. Hanteringen är likartad. Vi har bedömt att det är något enklare att gå vägen via applets. Det är dessutom trevligt att kunna publicera sina nyvunna kunskaper på webben om man vill Därför kommer större delen av denna kurs att handla om applets. Alltså: Dags att jobba med Applets! Din första applet Bland de fördefinierade klasserna finns alltså klassen Applet Den klassen finns i ett paket som heter java.applet. (Vi måste komma ihåg att importera det paketet.) Klassen Applet har metoder som finns med i varje applet ( bl a init, start, paint ) Att skapa en applet innebär att man skapar en klass som ärver från klassen Applet. Här är koden för en mycket enkel applet, MinApplet. import java.applet.*; public class MinApplet extends Applet public MinApplet() // konstruktorn Använd alltid modifieraren public när du skapar skapar en applet (annars hittas den inte av webläseren) Övning: MinApplet Skapa mappen X\java\MinApplet Skriv in koden ovan. Spara som MinApplet.java i mappen MinApplet Kompilera (MinApplet.class skapas) Skriv en HTML-fil: <html> <body bgcolor ="blue"> <h1>jag testar min applet! </h1> <APPLET CODE="MinApplet.class" WIDTH=300 HEIGHT=200 ></APPLET> </body> </html> Spara den med namnet MinApplet.html i mappen MinApplet Öppna MinApplet.html i webbläsaren (En helt tom applet visas ) Med JDK följer ett program, appletviewer, med vars hjälp vi kan se appleten utan att starta webbläsaren. Exekvera MinApplet.html med appletviewer (En helt tom applet visas ) Java4.doc Ove Lundgren 4
5 Kap 4: Sid 5 Metoderna i klassen Applet Klassen Applet har ett antal metoder (som vår egen applet, MinApplet, ärver) Metod: init() start() Körs med automatik när en applet laddas. Här lägger man kod för initialvärden av olika slag. (I applets placerar man, som vi senare ska se, oftast initieringar i init-metoden, och inte i konstruktorn.) Körs automatiskt då en applet visas Här skrivs kod som får appleten att göra något. Antag att du under ett surfpass visar en en webbsida med en applet. Därefter går du till en annan sida men återvänder sedan till appleten. Appletens init-metod körs första gången appleten visas. Appletens start-metod körs första gången samt varje gång du återvänder till sidan med appleten. paint(graphics g) Metoden exekveras automatiskt varje gång en applet visas. Metoden har en parameter, en referens till ett Graphics-objekt. Dessa har en rad metoder för att rita och skriva på appletytan. Vi ska strax förklara hur Graphics fungerar Följande metoder exekveras med automatik i samband med att man lämnar en applet: stop() destroy() Körs automatiskt då man lämnar webb-sidan med appleten Exekveras automatiskt när man slutar sitt surfpass. (Det kommer att dröja ett tag innan vi använder de två sistnämnda metoderna. För närvarande räcker det att du känner till att de finns ) Alla dessa metoder (och många fler) finns i klassen Applet, och därmed i vår appletklass, subklassen MinApplet. class Applet public void init() public void start() public void paint(graphics g) public void stop() public void destroy()... Metoderna finns här också, de är ju ärvda från klassen Applet! class MinApplet extends Applet public void init() public void start() public void paint(graphics g) public void stop() public void destroy()... Java4.doc Ove Lundgren 5
6 Kap 4: Sid 6 Du minns från kapitel 3 att en metod kan omdefinieras i subklassen (överskuggas säger man ibland, engelska: override) Att skriva applets handlar mycket om att omdefiniera ovanstående metoder. Vi börjar med att se på en typisk omdefinition av paint. Då måste vi först diskutera klassen Graphics: Klassen Graphics Appletens yta kan du tänka dig som en rityta som vi kan rita och skriva på. Vi behöver nu en "verktygslåda" med metoder för att rita och skriva på appleten Det finns en klass som heter Graphics ( finns i paketet java.awt ) Ett objekt ur den klassen är en sådan "verktygslåda"! Med metoderna i ett Graphics -objektets kan vi nämligen rita och skriva på appleten! Till varje appletobjekt (även till Frame-objekt och flera andra typer av objekt) hör ett Graphics-objekt. (Du kan tänka dig att det till varje rityta finns en låda med ritverktyg.) init() start() paint(grafikobj) //fler metoder finns... drawstring(...) drawrect(...) fillrect(...) med flera grafikobjektet som tillhör appleten MinApplet-objektet Vi såg på föregående sida att metoden paint anropas och körs då appleten visas. Metoden paint ska, som synes, ha ett argument, nämligen en referens till ett Graphics-objekt. Då paint anropas används som argument automatiskt en referens till detta grafikobjektet som tillhör appleten! Exempel: Tänk dig att vi överskuggar paint-metoden så här: public void paint(graphics g) g.drawstring("min applet!", 20, 30); Vad händer vid anrop av paint? Jo, parametern g byts ut mot referensen till grafikobjektet som tillhör appleten. Satsen g.drawstring("min applet!", 20, 30); betyder då att metoden drawstring i grafikobjektet som tillhör appleten exekveras: Strängen "Min applet" kommer att skrivas på positionen 20, 30 i appleten ( 20 pixlar från vänsterkanten, 30 pixlar från överkanten ) Anmärkning: Som namn på parametern brukar man välja bokstaven g (Så är det i nästan all javalitteratur ) Naturligtvis kan du välja vilket parameternamn som helst Java4.doc Ove Lundgren 6
7 Kap 4: Sid 7 Övning: Överskugga paint Gör tillägg i MinApplet på följande sätt: import java.applet.*; public class MinApplet extends Applet public MinApplet() // konstruktor public void paint(graphics g) g.drawstring("min applet!", 20, 30); Spara. Kompilera. Kör MinApplet.html i appletviewer Vi använder ju här klassen Graphics så vi måste komma ihåg att importera den. Klassen ligger i paketet java.awt. paint-metoden är omdefinierad så som vi beskrev på föregående sida: g.drawstring( Min applet!, 20, 30); Metoden har, som du ser, tre argument: - textsträngen Min applet! - talet 20 (som anger textsträngens position i x-led räknat i pixels) - talet 30 (positionen i y-led) (Du kommer väl ihåg att textsträngar skrivs inom citationstecken. Tal skrivs utan citationstecken.) Lägg till ytterligare en sats i paint-metoden: g.drawstring("välkommen!", 20, 60); Spara kompilera kör! Njut! Du kommer snart att lära dig använda de andra metoderna i grafikobjektet Om init-metoden I kaptitel 2 behandlade vi konstruktorer. Konstruktorn är den metod som skapar objektet. Du minns kanske att en konstruktor med tomt block (standardkonstruktorn) inte behövde skrivas in i koden, den existerar ändå. Satsen public MinApplet() // konstruktor i appleten ovan skulle vi alltså kunnat utelämna (Testa gärna!) I applets brukar man alltid använda standardkonstruktorn, så vi kodar den inte i fortsättningen (kom bara ihåg att den finns där, "osynlig" ) För att sätta eventuella initialvärden används i applets metoden init Sådan kod som vi för andra klasser skriver i konstruktorn placerar vi hos applets i init-metoden Exempel följer strax Java4.doc Ove Lundgren 7
8 Kap 4: Sid 8 En modell för att skriva applets Vi kommer att följa denna modell när vi skriver våra applets: Allra först skriver vi satser för att importera klassen Applet ( i paketet java.applet ) Vanligen importeras också klasserna i paketet java.awt (där finns Graphics, Color m fl) (Först i klassdefinitionen brukar vi ha konstruktorn. Eftersom vi i applets alltid använder standardkonstruktor kodar vi den inte) Deklarationer av instansvariabler och objekt. Metoden init överskuggas: Här skriver vi kod som sätter initialvärden: Vi instansierar objekt som ska användas (med new), sätter begynnelsevärden på variabler mm (sådant som vi "normalt" skriver i konstruktorn ) (Eventuell överskuggning av metoden start. Det dröjer lite innan vi använder start ) Metoden paint överskuggas. Här är modellen : import java.applet.*; import java.awt.* ; // importera ev. andra klasser som behövs public class MinApplet extends Applet // standardkonstruktor - kod utelämnas // här följer deklaration av instansvariabler och objekt public void init() // ev. omdefiniera init public void paint(graphics g) // omdefiniera paint Java4.doc Ove Lundgren 8
9 Kap 4: Sid 9 Färger, texter och figurer Övning: Färglägg texter Skapa mappen X\java\Grafik Skriv in denna kod och spara filen som Grafik.java i den nya mappen. import java.applet.*; public class Grafik extends Applet // instansvariabler Color farg; public void init() farg = new Color(255,0,0); public void paint(graphics g) g.setcolor(farg); g.drawstring("välkommen till JAVA",25,25); g.drawstring("välkommen till JAVA",25,45); Kompilera. Skriv en enkel HTML-fil (Grafik.html). Kör appletviewer (Texten skrivs med röd färg) Du förstår förhoppningsvis det mesta av koden. Nyheter förklaras nedan i avsnittet om färger Om färger Vi använder en färg i övningen ovan och måste skapa ett objekt ur klassen Color Klassen finns i java.awt-paketet Först i klassdefinitionen deklarerar vi ett objekt som vi kallar farg. Vi skriver Color farg; I init-metoden skapar vi objektet farg. Vi skriver farg = new Color(255,0,0); Color-konstruktorn tar tre argument, tre heltal i intervallet En färg blandas nämligen av tre komponenter: Rött, Grönt, Blått. En komponent kan ha värden mellan 0 och 255. Några exempel: farg1 = new Color(255,0,0); // röd färg farg2 = new Color(0,255,0); // grön färg farg3 = new Color(0,0,255); // blå färg farg4 = new Color(255,0,255); // violett färg farg5 = new Color(255,255,255); // vit färg farg6 = new Color(0,0,0); // svart färg farg7 = new Color(128,128,128); // grå färg Java4.doc Ove Lundgren 9
10 Kap 4: Sid 10 Grafikobjekt (vår "låda med målarverktyg") har en metod som heter setcolor och denna metod har ett objekt av klassen Color som argument. Vi använder den i paint-metoden för att sätta färg på den text som skrivs med drawstring Testa! Ändra till annan färgblandning. Spara kompilera kör! Färgkonstanter Ovan skapade vi själva ett färgobjekt med ( t ex ) och valde sedan denna färg med farg1 = new Color(255,0,0); g.setcolor(farg1); Klassen Color har ett antal färgkonstanter, det vill säga fördefinierade färger, som direkt kan användas, så här exempelvis: g.setcolor(color.red); Color.red är en färgkonstant som (förstås) ger röd färg. Här är alla färgkonstanterna: Color.orange Color.pink Color.cyan Color.magenta Color.yellow Color.black Color.white Color.gray Color.lightGray Color.darkGray Color.red Color.green Color.blue En konstant är (som vi förut har sett) en klassvariabel (primitiv variabel eller objekt) vars värde ej kan ändras. Så här är t ex den röda färgen deklarerad i Color-klassen: public static final Color red = new Color(255,0,0); Övning: Testa färgkonstanter Gör tillägg i paint-metoden i appleten ovan: Spara - kompilera - kör. g.setcolor(farg); g.drawstring("välkommen till JAVA",25,25); g.setcolor( Color.blue ); g.drawstring("välkommen till JAVA",25,45); Den "senast" satta färgen är den som gäller för utskrifterna: Den första strängen skrivs med din egen-komponerade färg, den andra skrivs med blå färg. Java4.doc Ove Lundgren 10
11 Kap 4: Sid 11 Grafik Övning: Rita figurer Ändra koden i klassen Grafik till följande: // Grafik import java.applet.*; public class Grafik extends Applet // deklarationer Color roed, groen, blaa; // Tre färgobjekt deklareras public void init() roed = new Color(255,0,0); groen = new Color(0,255,0); blaa = new Color(0,0,255); // röd // grön // blå public void paint(graphics g) g.drawline(10,10,100,100); g.setcolor(groen); g.drawrect(100,10,130,170); g.setcolor(blaa); g.drawoval(50,50,120,100); g.setcolor(roed); g.drawstring("välkommen till JAVA",25,25); g.drawstring("välkommen till JAVA",25,45); Spara. Kompilera. Kör med appletviewer Här använder vi ytterligare några metoder i Graphics-objektet ("målarlådan") Metoderna används för att rita figurer av olika slag. Alla metoderna har fyra heltalsargument som anger hur figurerna ska placeras: Metoden drawline(x1,y1,x2,y2) ritar en linje från punkten (x1,y1) till punkten (x2,y2) (i vårt fall alltså från (10,10) till (100,100) ) Metoden drawrect(x,y,b,h) ritar en rektangel med övre vänstra hörnet i (x,y) med bredden b och höjden h (i vårt fall övre vänstra hörnet i (100,10) och med bredden 130 och höjden 170) Metoden drawoval(x,y,b,h) ritar en ellips inskriven i den tänkta rektangel som har övre vänstra hörnet i (x,y) och med bredden b och höjden h ( i vårt fall ö. v. hörn i (50, 50) bredd 100 och höjd 100) Så här alltså: (50, 50) Java4.doc Ove Lundgren 11
12 Kap 4: Sid 12 Metoden setcolor sätter färg på de ritade figurerna. Nu: Byt ut drawrect mot fillrect och drawoval mot filloval Spara kompilera kör (Figurerna är nu fyllda med den valda färgen ) Byt ut g.fillrect(100,10,130,170) mot g.fillroundrect(100,10,130,170,20,20) Spara kompilera kör (Rektangeln har nu rundade hörn ) (100, 10) Om man ökar talen 20 får man mer avrundade hörn Om koordinater i en applet Från matematiken är vi vana vid att x får större värden åt höger längs x-axeln och att y växer uppåt I en applet (och i de flesta datorgrafiksammanhang) ligger origo, alltså pixeln eller bildpunkten med bildskärmskoordinaterna ( 0, 0 ) längst upp till vänster. x får större värden ju längre åt höger vi kommer men: y växer nedåt. Så här: ( 0, 0) Allt större x-värden 50 Allt större y-värden 100 ( 100, 50 ) (100, 80 ) Java4.doc Ove Lundgren 12
13 Kap 4: Sid 13 Övning: Stapeldiagram Metoden g.fill3drect(x,y,b,h,true) ger en viss (dock blygsam) 3D-effekt. x, y, b och h fungerar som för fillrect. Det fjärde argumentet ska ha ett boolskt värde (dvs skriv antingen antingen true eller false ) (true ger "upphöjning", false ger "nedsänkning") (Mer om boolska värden kommer i kapitel 6 ) Gör en applet som ser ut som på bilden nedan. (Olika färger på staplarna.) Spara som Stapeldiagram.java i mappen X\java\Stapel Övning: Blomma Skapa mappen X\java\Blomma Skriv en applet som visar en blomma såsom figuren visar. Använd blå, röda, gröna och gula cirklar, och en (smal) grön rektangel. Spara som Blomma.java Java4.doc Ove Lundgren 13
14 Kap 4: Sid 14 Välj bakgrundsfärg Övning: Bakgrundsfärg Metoden setbackground() är en metod som är definierad i klassen Applet - och därmed i vår appletklass. När en ett objekt anropar en metod som den själv äger så anropas metoden med this, så här: this.setbackground(color.yellow); // Metoden setbackground anropas Metoden har ett objekt av typen Color som argument. Vi har använt konstanten Color.yellow När metoden anropas får objektet (vår applet) den bakgrundsfärg som argumentet anger. Skriv in ovanstående sats i init()-metoden i appleten Grafik Spara kompilera provkör. Experimentera gärna vidare med texter, färger och figurer. Provkör på riktigt i en web-läsare. Anmärkning: Ordet this kan utelämnas. Om man inte skriver någonting alls framför ett metodnamn så är det underförstått att objektet anropar en egen metod. (Vi skriver - oftast - ut this för att öka tydligheten.) Textfonter Övning: Vi testar fonter Skriv in koden nedan. Spara den som FontTest.java i X\java\FontTest // FontTest import java.applet.*; public class FontTest extends Applet // deklarationer Font typ1, typ2, typ3; public void init() typ1 = new Font("TimesRoman",Font.PLAIN,10); typ2 = new Font("Courier",Font.BOLD,20); typ3 = new Font("Arial",Font.ITALIC,30); public void paint(graphics g) g.setcolor(color.red); g.setfont(typ1); g.drawstring("java - forever!",100,100); g.setfont(typ2); g.drawstring("java - forever!",100,150); g.setfont(typ3); g.drawstring("java - forever!",100,200); Kompilera. Skriv en HTML-fil. Kör! Läs kommentarer på nästa sida! Java4.doc Ove Lundgren 14
15 Kap 4: Sid 15 Vi arbetar med en ny klass Font (finns i java.awt-paketet) Vi deklarerar tre fontobjekt: typ1, typ2, typ3 I init-metoden skapar vi de tre objekten och skickar med tre parametrar: - Typsnitt (t ex TimesRoman ) - Stil (t ex Font:BOLD) - Storlek. (t ex 20 ) Testa gärna andra kombinationer av typsnitt - stil -storlek! Text på statusraden Övning: Statusrad I någon av dina applets - lägg till följande sats i paint-metoden: this.showstatus("denna text skrivs på statusraden!"); Spara - kompilera om. Kör motsvarande HTML-fil med Appletviewer Texten skrivs på statusraden längst ned i appleten (Ibland får du göra appleten lite större för att statusraden ska synas) Öppna även HTML-filen i web-läsaren och provkör appleten där. Texten hamnar på web-läsarens statusrad. showstatus är en metod som definierats i klassen Applet. Därmed finns den även i vår applet och ägs således av appletobjektet Java4.doc Ove Lundgren 15
16 Kap 4: Sid 16 Skapa egna klasser och objekt Dags att skriva några egna objekt igen! Övning: KryssRektangel Skapa klassen KryssRektangel, så här: public class KryssRektangel private int xpos; private int ypos; private int bredd; private int hojd; public KryssRektangel( ) bredd = 50; hojd = 40; public KryssRektangel(int b, int h ) bredd = b; hojd = h; public void setposition(int x, int y) xpos = x; ypos = y; public void rita(graphics g) g.drawrect(xpos, ypos, bredd, hojd); g.drawline(xpos, ypos, xpos+bredd, ypos+hojd); g.drawline(xpos, ypos+hojd, xpos+bredd, ypos); Paketet java.awt måste importeras eftersom klassen Graphics förekommer Instansvariablerna anger den kryssade rektangelns position i x- och y-led, samt dess bredd och höjd. Klassen har två konstruktorer: Den första har inga argument. Variablerna får standardvärden för bredd och höjd. I den andra tilldelas instansvariablerna värden vid instansieringen. Klassen har en metod, setposition, där man kan sätta rektangelns läget, det vill säga bestämma var rektangeln ska ritas. Klassen har också en metod, rita, som ritar den kryssade rektangeln med hjälp av metoderna ("verktygen") i ett Graphics-objekt ("målarlådan") ( xpos,ypos ) bredd hojd ( xpos+bredd, ypos+hojd ) Java4.doc Ove Lundgren 16
17 Kap 4: Sid 17 Spara klassen med namnet KryssRektangel.java i mappen X\java\KryssRektanglar och kompilera Skriv nu en applet som skapar objekt ur klassen ovan, och anropar dess metoder setposition och rita: // TestaKryssRektangel.java import java.applet.*; public class TestaKryssRektangel extends Applet KryssRektangel kr; public void init() kr = new KryssRektangel(50, 40 ); kr.setposition( 20, 30 ); public void paint(graphics g) kr.rita(g); // argumentet är appletens Graphics-objekt Spara som TestaKryssRektangel.java i samma mapp som ovan. Kompilera. Skriv också en html-fil som startar appleten, och exekvera! I TestaKryssRektangel: Deklarera ytterligare ett objekt: KryssRektangel kr, kr2 ; I init-metoden, lägg till: kr2 = new KryssRektangel(10,50 ); kr2.setposition( 50, 40 ); I paint-metoden: kr2.rita(g); Spara, kompilera, provkör! I KryssRektangel: Lägg till ytterligare en instansvariabel private Color farg; Ändra den andra konstruktorn så att man kan ange färg på den kryssade rektangeln: public KryssRektangel(int b, int h, Color c ) bredd = b; hojd = h; farg = c; Först i rita-metoden: Lägg till: Spara och kompilera. g.setcolor(farg); Java4.doc Ove Lundgren 17
18 Kap 4: Sid 18 I TestaKryssRektangel: Ändra instansieringen av objekt: kr = new KryssRektangel( 50, 40, Color.red ); ( Gör samma sak med kr2 ) Spara, kompilera, provkör! Övning: KryssKvadrat Skriv en klass, KryssKvadrat, som ritar kryssade kvadrater. Den ska kunna instansieras från en applet med t.ex kk = new KryssKvadrat(50, Color.red ); // sidan är 50 Spara i samma mapp som ovan. Sedan: Deklarera och skapa några kryssade kvadrater i appleten ovan. Tips: Klassen KryssKvadrat ärver förstås från KryssRektangel. Allt är redan deklarerat. Det enda som behövs är en ny konstruktor. Kom ihåg att deklarera instansvariablernas i KryssRektangel som protected Försök klara uppgiften på egen hand (annars får du kika nedan) public class KryssKvadrat extends KryssRektangel public KryssKvadrat (int s, Color c) bredd =s; // bredd och hojd får samma värde hojd = s; // farg =c; Java4.doc Ove Lundgren 18
19 Kap 4: Sid 19 Övning: Asteroid I denna applet, VisaAsteroid, instansieras ett objekt av klassen Asteroid. Skriv av (eller kopiera) koden. Spara den som VisaAsteroid.java i mappen X\java\Asteroid // VisaAsteroid.java import java.applet.*; public class VisaAsteroid extends Applet Asteroid ast; public void init() ast = new Asteroid(50 ); ast.setposition( 120, 130 ); public void paint(graphics g) this.setbackground(color.black); ast.visa(g); Skriv klassen Asteroid. Då ett objekt, ast, instansieras med ast = new Asteroid(50); ska ett Asteroid-objekt med diametern 50 pixels skapas. I klassen finns en metod public void setposition(int x, int y)... Vid anrop kan man ange koordinaterna för asteroidens mittpunkt, t.ex. ast.setposition(100,120); I klassen finns ännu en metod, public void visa(graphics g)... Då metoden anropas, t.ex. så här ast.visa(g); ska asteroiden visas som en mörkgul cirkelskiva och, på denna, en blekgul cirkelskiva något förskjuten uppåt-vänster. Spara Asteroid.java i mappen X\java\Asteroid och kompilera. Komilera VisaAsteroid.java Skriv också en html-fil som visar appleten Försök klara uppgiften på egen hand! (Lösningsförslag på nästa sida) Gör sedan så att fler Asteroid-objekt skapas och visas Java4.doc Ove Lundgren 19
20 Kap 4: Sid 20 Lösningsförslag: public class Asteroid private int xpos, ypos, diam; private Color c1, c2; public Asteroid( int d ) diam = d; c1 = new Color(220,220,150 ); // grå-gul c2 = new Color(255,255,190 ); // vit-gul public void setposition(int x, int y) xpos = x; ypos = y; public void visa(graphics g) g.setcolor(c1); g.filloval(xpos - diam/2, ypos - diam/2, diam, diam ); int diam2 = diam - 5; g.setcolor(c2); g.filloval(xpos - diam/2,ypos-diam/2, diam2, diam2 ); Övning: Flaggor I appleten på nästa sida instansieras tre objekt av typen Flagga. Metoden setposition() bestämmer flaggornas position på appletytan. Metoden rita(...) ritar flaggorna. Skriv av koden! Spara filen TestaFlagga.java i mappen X:\java\Flaggor Java4.doc Ove Lundgren 20
21 Kap 4: Sid 21 import java.applet.*; public class TestaFlagga extends Applet Flagga sweflag, danflag, finflag; public void init() sweflag = new Flagga(Color.blue, Color.yellow ); sweflag.setposition( 20, 30 ); danflag = new Flagga(Color.red, Color.white); danflag.setposition( 50, 100 ); finflag = new Flagga(Color.white, Color.blue ); finflag.setposition( 150, 130 ); public void paint(graphics g) setbackground(color.cyan); sweflag.rita(g); danflag.rita(g); finflag.rita(g); Skriv sedan klassen Flagga. Spara filen Flagga.java i samma mapp som ovanstående fil. Kompilera Flagga. Kompilera TestaFlagga. Skriv en html-fil som exekverar TestaFlagga och provkör. Så här ska resultatet bli: Övning: Norsk flagga Skriv en ny klass, NorFlagga som ärver från Flagga. Konstruktorn ska ha tre parametrar (färger) rita()-metoden ska rita en norsk eller isländsk flagga, så här: Java4.doc Ove Lundgren 21
22 Kap 4: Sid 22 Lösningsförslag: Övningen Flaggor // Flagga.java public class Flagga private int xpos, ypos; private int bredd=90, hojd=60; private Color bakfarg, korsfarg; public Flagga(Color c1, Color c2 ) bakfarg = c1; korsfarg = c2; public void setposition(int x, int y) xpos = x; ypos = y; public void rita(graphics g) g.setcolor(bakfarg); g.fillrect(xpos, ypos, bredd, hojd); g.setcolor(korsfarg); g.fillrect(xpos, ypos+hojd/2-5, bredd, 10); g.fillrect(xpos+bredd/3-5, ypos, 10, hojd); Lösningsförslag: Övningen Norsk Flagga // Ändra först i Flagga.java: protected int xpos, ypos; protected int bredd=90, hojd=60; protected Color bakfarg, korsfarg; // Lägg också till en parameterlös konstruktor: public Flagga() // NorFlagga.java public class NorFlagga extends Flagga private Color korsfarg2; public NorFlagga(Color c1, Color c2, Color c3 ) bakfarg = c1; korsfarg = c2; korsfarg2 = c3; //rita-metoden överskuggas: public void rita(graphics g) g.setcolor(bakfarg); g.fillrect(xpos, ypos, bredd, hojd); g.setcolor(korsfarg); g.fillrect(xpos, ypos+hojd/2-6, bredd, 12); g.fillrect(xpos+bredd/3-6, ypos, 12, hojd); g.setcolor(korsfarg2); g.fillrect(xpos, ypos+hojd/2-3, bredd, 6); g.fillrect(xpos+bredd/3-3, ypos, 6, hojd); Java4.doc Ove Lundgren 22
23 Kap 4: Sid 23 Övning: Stapelobjekt En stapel ritar du som bekant med g.fillrect(x,y,b,h) där x och y är koordinaterna för rektangelns övre, vänstra hörn. Skriv en klass Stapel med följande egenskaper: Ett objekt, st, instansieras i en applet med st = new Stapel(); Det ska finnas en metod: public void rita(int x, int y, int b, int h, Color c, Graphics g)... Då metoden anropas i en applet, t.ex. så här st.rita( 20, 100, 5, 25, Color.blue, g ); ska en blå stapel ritas med med nedre, vänstra hörnet i punkten ( 20, 100 ). Stapeln ska ha bredden 5 och höjden 25 pixels. Spara Stapel.java i mappen X\java\Stapel (som du har sedan tidigare) Försök klara uppgiften på egen hand! (Lösningsförslag på nedan) Skriv om appleten Stapeldiagram.java i övningen Stapeldiagram: Utnyttja din nya klass, Stapel public class Stapel // Endast en konstruktor utan parametrar. Behöver ej kodas... // Inga instansvariabler behövs... public void rita(int x, int y, int b, int h, Color c, Graphics g) g.setcolor(c); g.fillrect(x, y-h, b, h ); Övning: StreckGubbe Skriv en klass, StreckGubbe (Spara i mappen X\java\Gubbe ) Instansiering: gubbe = new StreckGubbe(Color c); Metoden gubbe.setposition(int x, int y)... sätter plats Metoden gubbe.visa(graphics g)... visar en figur på skärmen Skriv en applet som visar några gubbar Java4.doc Ove Lundgren 23
24 Kap 4: Sid 24 Bilder och ljud Några begrepp i samband med bild och ljud Det är trevligt (och enkelt) att lägga in bilder och ljud i applets. Du kommer att arbeta med två nya (lite speciella) klasser, Image och AudioClip. Image -klassen finns i paketet java.awt AudioClip finns i paketet java.applet Ett bildobjekt (Image-objekt) skapas och hämtar sitt bildinnehåll från en fil med en metod i appletobjektet som heter getimage() Ett ljudobjekt (AudioClip-objekt) skapas och hämtar ett ljud från en fil med en metod i appletobjektet som heter getaudioclip() Bildfiler ska ha formaten gif eller jpg Ljudfiler ska (i Java 1.1) vara sparat som au-filer. Java2 har även stöd för formaten wav, aiff och mid Spara för enkelhetens skull de ljud- och bildfiler som tillhör din applet i samma mapp som du har appletens java-, class- och html-filer. Övning: Bilder Skapa mappen X\java\BildLjud Skriv koden nedan och spara filen som Bilder.java i den nya mappen. Kopiera filen jumbo.gif till mappen (Du kan naturligtvis byta filen mot en egen gif- eller jpg-fil om du vill ) import java.applet.*; public class Bilder extends Applet // deklarationer Color roed, blaagraa; Image bild1; public void init() roed = new Color(255,0,0); blaagraa = new Color(200,200,255); bild1 = this.getimage(getdocumentbase (),"jumbo.gif"); this.setbackground(blaagraa); public void paint(graphics g) g.setcolor(roed); g.drawstring("jumbo vinkar",25,25); g.drawimage(bild1,50,50,this); Java4.doc Ove Lundgren 24
25 Kap 4: Sid 25 Kommentar: Vi deklarerar ett bildobjekt (som vi har kallat bild1 ) I init-metoden använder vi Applet-metoden getimage för att tala skapa bildobjektet och ange vilken bild vi vill visa: bild1 = this.getimage(getdocumentbase ( ), "jumbo.gif" ); Här kan man skriva URL (=webbadress) för den sida där bilden finns. Tomt betyder att bilden finns i samma mapp som den HTML-fil som startar appleten Här skriver du bildfilens namn Du ser att vi inte skapar ett bildobjekt med new här. Metoden getimage sköter instansieringen I paint-metoden använder vi Graphics-metoden g.drawimage(bild1,50,50,this) för att rita bilden i position (50, 50) i denna (this) applet. Skriv en enkel HTML-fil (Bilder.html) som startar appleten. Kör denna i appletviewer. (Bilden visas nu i din applet ) Lägg till denna rad sist i paint-metoden: g.drawimage(bild1,150,50,120,100,this); Denna variant av drawimage-metoden har sex argument: bildobjektets namn, x-position, y-position, bredd, höjd och this. Spara, kompilera, kör. Java4.doc Ove Lundgren 25
26 Kap 4: Sid 26 Övning: Ljud Kopiera filen spacemusic.au till din mapp. (Du kan naturligtvis välja en egen au-fil om du vill ) Komplettera Bilder.java på följande sätt: import java.applet.applet; import java.applet.audioclip; import java.awt.graphics; import java.awt.color; import java.awt.image; public class Bilder extends Applet // deklarationer Color roed, blaagraa; Image bild1; AudioClip ljud1; public void init() roed = new Color(255,0,0); blaagraa = new Color(200,200,255); bild1 = this.getimage(getdocumentbase(),"jumbo.gif"); ljud1 = this.getaudioclip(getdocumentbase(), "spacemusic.au"); this.setbackground(blaagraa); public void paint(graphics g) g.setcolor(roed); g.drawstring("jumbo vinkar",25,25); g.drawimage(bild1,50,50,this); g.drawimage(bild1,150,50,120,100,this); this.ljud1.play(); Vi importerar här AudioClip (finns i paketet java.applet) Vi deklarerar ett ljudobjekt (som vi kallar ljud1) I init-metoden skapas ljudobjektet och vi anger vilken ljudfil som ska användas med metoden getaudioclip() Vi spelar upp ljudet med metoden play(); Spara - kompilera - kör - njut Testa gärna: Byt ut au-filen mot en ljudfil i wave-format. Spara och kompilera (med en Java2-kompilator) Exekvera html-filen med appletviewer (för Java2) Java4.doc Ove Lundgren 26
27 Kap 4: Sid 27 Parametrar i html-koden Det går att skicka med parametervärden (strängar) till appleten från html-koden. Övning: Testa html-parametrar I Grafik.java - deklarera dessa strängar: String text1, text2; I init()- metoden, lägg till dessa satser: text1 = getparameter("p1"); text2 = getparameter("p2"); I paint()-metoden, ändra så att det står: Spara och kompilera. g.drawstring(text1,25,25); g.drawstring(text2,25,45); Ändra <APPLET>-taggen i Grafik.html till <APPLET CODE="Grafik.class" WIDTH=500 HEIGHT=300 > <PARAM NAME = "p1" VALUE = "Java for ever!"> <PARAM NAME = "p2" VALUE = "Kalle Persson"> // skriv ditt eget namn! </APPLET> Provkör i webläsare! Parametrarna p1 och p2 tilldelas värden (strängar) i <APPLET>-taggen. Det värde (den sträng) som parametern p1 håller överförs till String-variabeln text1 med satsen text1 = getparameter("p1"); i appleten, och skrivs ut. (Motsvarande sker med värdet i p2) Java4.doc Ove Lundgren 27
Grafik, bilder och ljud
Swing * Eclipse * Midlets * Android 5 Grafik, bilder och ljud Klassen JPanel JPanel som rityta Färger, texter och figurer Visa en bild Spela ett ljud JPanel som container Metoden repaint() Egna grafiska
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:
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å
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
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
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
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
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.
DD1342 Programkonstruktion för F1, ht 2007
DD1342 Programkonstruktion för F1, ht 2007 Lappskrivning 1 Torsdag 22/11 2007 kl 9.15 10.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar markerats räknas det som fel svar. Alla skriftliga
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
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
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
Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser
Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,
Föreläsning 5-6 Innehåll
Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]
JAVA Mer om klasser och objektorientering
JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det
Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 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
Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:
Att skapa en klass kvadrat Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: public class Kvadrat { private int sida; Det var väl inte
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
Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc
Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp
Exempel på användning av arv: Geometriska figurer
(9 maj 2014 Klasshierarkier 1 ) Exempel på användning av arv: Geometriska figurer Uppgift: Skriv ett program som kan hantera några olika geometrisk figurer: linjer, cirklar och rektanglar. (9 maj 2014
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Ö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
Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt
Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras
Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering
och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering
ITK:P1 Föreläsning 8. Verktyget Javadoc. Kommentarer för Javadoc. Multimedia för spelkonstruktion
ITK:P1 Föreläsning 8 Multimedia för spelkonstruktion 1 DSV Peter Mozelius Verktyget Javadoc De flesta program behöver dokumentation I Java finns ett verktyg som genererar HTML- dokumentation på ett enkelt
5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor i Java Först följer frågor av flervalstyp. Frågorna är inte ordnade efter svårighetsgrad. 1. Skillnaden mellan typerna int och
2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning
2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten
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
Java, klasser, objekt (Skansholm: Kapitel 2)
Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma
Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 14 I torsdags & fredags: arrayer Deklaration, initiering, åtkomst Arrayer är referenser Arrayer som parametrar och returvärden Exempel
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
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
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
Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }
En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class
Laboration 4: Digitala bilder
Objektorienterad programmering, Z : Digitala bilder Syfte I denna laboration skall vi återigen behandla transformering av data, denna gång avseende digitala bilder. Syftet med laborationen är att få förståelse
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
Javas klassbibliotek. Kap 7: Sid 2
7 Mest om metoder Javas klassbibliotek Allmänt om metoder Metoderna i klassen Math Trigonometriska övningar Experiment med slumptal Förvandla sträng till decimaltal Antal decimaler i utskrift Metoder i
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
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
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ösningsförslag övning 2.
Objektorienterad programmering, Z1 Lösningsförslag övning 2. Uppgift 1. public class SIUnits { public static double yardspermeter = 1.093613; public static double poundperkilo = 2.204623; public static
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
2D1339 Programkonstruktion för F1, ht 2003
2D1339 Programkonstruktion för F1, ht 2003 Fiktiv Kontrollskrivning 1 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 hjälpmedel är tillåtna
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
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
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:
Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering
Programmeringsteknik för I1 Övning 2 Administrativt Övningsgrupp 2 (Sal E32/D32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kontrollera att ni har fått Lab2 inrapporterad
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å
Laboration 1: Figurer i hierarki
Laboration 1: Figurer i hierarki Bakgrund Två grundläggande tekniker i objektorienterad konstruktion är arv och komposition. Mål Laborationen har flera avsikter: 1. Ge kunskaper i hur program kan organiseras
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
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
"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde
Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande
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
Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes
Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om
JAVAUTVECKLING LEKTION 11
JAVAUTVECKLING LEKTION 11 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Mer om klasser och objekt Statiska/instans-metoder Överlagrade metoder Inkapsling Konstruktorer 1 UPPGIFT
TUTORIAL: KLASSER & OBJEKT
TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan
Föreläsning 13 Innehåll
Föreläsning 13 Innehåll Arv Repetition Om tentamen Datavetenskap (LTH) Föreläsning 13 HT 2017 1 / 32 Diskutera Här är början på klassen MemoryWindow som använts på en lab. Vad kan menas med extends SimpleWindow?
I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else
Förkunskaper från tidigare föreläsningar: Objektorienterad Programmering (TDDC77) Föreläsning IX: Klasser och Objekt, Instantiering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 I STONE I Variabler,
Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel
Objekt Instansvariabler Instansmetoder Klassvariabler Klassmetoder Inkapsling Föreläsning 6 Vad är ett objekt? Ett objekt har egenskaper, som kallas för objektets attribut Egenskaperna beskriver tillsammans
Laboration 3, uppgift En klass för en räknare
Laboration 3, uppgift 1 3.1 En klass för en räknare Ursprungligen skriven av Erland Holmström. Magnus Myreen har uppdaterat vissa delar. Hösten 2014 Anvisningar: Programmet skall utformas enligt de principer
2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa
2203$( Föreläsning ii - Mer om Java bla this och konstruktorer Av Björn Eiderbäck Email: bjorne@nada.kth.se Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: 7906277 previous next Exempel: lampa Light1 #
Objektorienterad programmering
Objektorienterad programmering Föreläsning 19 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Konstruktion av egna grafiska komponenter Kontsruktion av egen komponent Att rita upp
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
EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten
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
Övningar Dag 2 En första klass
Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt
TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20.
Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:
Modeller, Objekt och Klasser
Modeller, Objekt och Klasser Bildserie 3 Objekt Orienterad Programmering OO-programmering bygger på att vi som människor uppfattar tillvaron i termer av objekt - Bastu, pizza, öl,... Det borde vara lättare
Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser
Föreläsning 8 Arv och abstrakta klasser Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen (extends) Den nya klassen behåller alla egenskaper som den gamla
Malmö högskola 2007/2008 Teknik och samhälle
Laboration 9 Avsikten med denna laboration är att du ska jobba vidare med klasser. Uppgifterna går ut på att skriva metoder och att skriva konstruktorer. Laborationen bygger vidare på laboration 8. Skapa
TENTAMEN I. OBJEKTORIENTERAD PROGRAMMERING för Z1. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng
Institutionen för Datavetenskap JSk TENTAMEN TDA540 TENTAMEN I OBJEKTORIENTERAD PROGRAMMERING för Z1 TID 14.15-18.15 Ansvarig: Betygsgränser: Hjälpmedel: Jan Skansholm Sammanlagt maximalt 60 poäng. På
Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier
Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv
(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
Klasser och objekt, referenser Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Klasser och objekt Referenser 2 Klasser och objekt 3 KLASSER OCH OBJEKT Relaterat data Information om en fyrkant Bredd Höjd Färg 4 KLASSER OCH OBJEKT Egna datatyper Skapa en
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
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
Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.
Fält av referenser Tanken med objekt är man kan bygga ihop olika sorts objekt till nya saker. Sålunda kan man exempelvis använda Bil och Trafikljus att konstruera ett Väg-objekt. Om Bil och Trafikljus
Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl 9.00 14.
Tentamen 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl 9.00 14.00, sal D31 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel
TENTAMEN OOP
TENTAMEN OOP 2014-03-15 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
OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2
Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 2 TID: 4 timmar Ansvarig: Betygsgränser: Hjälpmedel: Jan Skansholm Sammanlagt maximalt
Föreläsning 14: Grafik & mera händelsehantering
TDA 545: Objektorienterad programmering Föreläsning 14: Grafik & mera händelsehantering Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Idag: grafik läs kap 17 Viktigt i denna föreläsning: att rita
Föreläsning 3 sept 10 (Måndag v 37). DD Chapter 3.
Föreläsning 3 sept 10 (Måndag v 37). DD Chapter 3. Applikationer och s. Det finns två sorters java-program som används på olika sätt: Körning av applikation (vanliga, fristående program):...>java klass
Objekt och referenser
Objekt och referenser Antag att vi har följande enkla klass: public class Person { private String namn; private String adress; private String personnummer; public Person() { namn = NN ; adress = ; personnummer
Klassen javax.swing.timer
Klassen javax.swing.timer I Swing finns en klass Timer som man kan använda för att upprepa en vis kodsekvens med jämna tidsmellanrum. Ett objekt av klassen Timer exekveras som en egen tråd. Ett objekt
Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.
Använd olika lager. Döp lagren! Organisera era bibliotek! Design av interaktiv multimedia Ge era symboler instansnamn för att hitta dem med AS. Nytt för denna kurs: Ingen ActionScript-kod i.fla-filen!
Arrayer. Indexerade variabler, arrayer, fält Statistiska mått Sortering Sökalgoritmer Rita polygoner Objektarrayer Starta program med argument
Swing * Eclipse * Midlets * Android 9 Arrayer Indexerade variabler, arrayer, fält Statistiska mått Sortering Sökalgoritmer Rita polygoner Objektarrayer Starta program med argument Sectordata 2010 Kap 9
public och private Obs: private inte skyddar mot access från andra objekt i samma klass.
public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private
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
Laboration 1 - Grunderna för OOP i Java
Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben
Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift
Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.
TT Kapitel 3. Husdjur & Fisk Javaklasser Translation by Leif Lourié Java program består av klasser som beskriver saker (objekt) som finns på riktigt. Även om det finns många olika sätt att skriva program
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 Laboration 3 Visualisering (och implementering) av sortering Exempel på grafik (med Swing-paketet) Frågor 1 Laboration 3 Visualisering
Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)
Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: 2:a september 200, klockan 8:30-12:30. Plats: V Ansvarig lärare: Katarina Blom, tel 772 10 0. Läraren besöker tentamen kl 9:30
3.5 Visuell programmering
3.5 Visuell programmering Alla våra program hittills har varit C# Console Applications (sid 41) inkl. programmet MessageBox fast det genererade en grafisk meddelanderuta. Nu vill vi utnyttja grafikens
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
PROGRAMMERINGSTEKNIK TIN212
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2017-10-23 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Klasshierarkier - repetition
Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet