Fält & Vector. Fält (array) - deklaration & användning Fält som parametrar Flerdimensionella fält klassen Vector. Programmeringsmetodik -Java 101



Relevanta dokument
Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Kapitel 6. Kapitel 6. Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor;

Arrayer. results

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Objektorienterad programmering i Java

Föreläsning 2, vecka 8: Repetition

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

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.

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Classes och Interfaces, Objects och References, Initialization

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

Programmering A. Johan Eliasson

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Objektorienterad Programmering (TDDC77)

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 6: Metoder och fält (arrays)

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

ID1004 Laboration 3, 5-6 November 2012

Föreläsning 5-6 Innehåll

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Tentamen i Grundläggande programmering STS, åk 1 fredag

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

Typkonvertering. Java versus C

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Testning av program. Verklig modell för programutveckling

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Tentamen ID1004 Objektorienterad programmering May 29, 2012

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

(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

OOP Objekt-orienterad programmering

Programmering för språkteknologer II, HT2014. Rum

DAT043 Objektorienterad Programmering

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Kort om klasser och objekt En introduktion till GUI-programmering i Java

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

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.

Repetition av OOP- och Javabegrepp

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Objektorienterad Programmering (TDDC77)

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Programmering för språkteknologer I, VT2012. Rum

Kopiering av objekt i Java

Tentamen i Grundläggande programmering STS, åk 1 lördag

Klassen javax.swing.timer

Tentamen i Objektorienterad modellering och design Helsingborg

Repetition av OOP- och Javabegrepp

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

2D1339 Programkonstruktion för F1, ht 2004

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Föreläsning 10. ADT:er och datastrukturer

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Parameteröverföring. Exempel. Exempel. Metodkropp

Tentamen i Objektorienterad modellering och design

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Laboration 1: Figurer i hierarki

Objektorienterad Programmering (TDDC77)

Exempel på användning av arv: Geometriska figurer

Tentamen i Grundläggande programmering STS, åk

PROGRAMMERING-Java TENTAMINA

Objektorienterad programmering

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Introduktion till arv

Transkript:

Fält & Vector Fält (array) - deklaration & användning Fält som parametrar Flerdimensionella fält klassen Vector Programmeringsmetodik -Java 101

Fält En array är en ordnad lista av värden Varje värde har ett numeriskt index N element indexeras med 0 till N-1 0 1 2 3 4 5 6 7 8 9 79 87 94 82 67 98 87 81 74 91 Programmeringsmetodik -Java 102

Fält Många värden av samma typ kan vara primitiva typer eller objekt Fältet själv är ett objekt Namnet på fältet blir då en referens variabel, och fältet instansieras separat Programmeringsmetodik -Java 103

Deklaration int[] frekvens = new int[10]; Typen anger inte storleken Typen är int[] Instansieras till 10 heltal Indexeras 0..9 Se Basic_Array.java (s.270) Programmeringsmetodik -Java 104

Fält Hakparenteser för att ange index frekvens[4] Kan användas överallt där ett heltal får förekomma Tilldelning, utskrift, uttryck Programmeringsmetodik -Java 105

Exempel float[] priser = new float[500]; boolean[] flaggor; flaggor = new boolean[20]; char[] koder = new char[1750]; Programmeringsmetodik -Java 106

Indexkontroll Väl skapat är fältet fixt Index måste referera till existerande element index i intervallet 0 N-1 frekvens[(tal-1)/10] = frekvens[(tal-1)/10]+1; Index kontrolleras under körning off-by-one vanligt fel Programmeringsmetodik -Java 107

Fältets storlek Varje fält objekt har en konstant length frekvens.length Antalet element, inte högsta index Se Reverse_Numbers.java (s. 272-273) Programmeringsmetodik -Java 108

Initialisering Hela fältet kan initialiseras vid deklarationen int[] enheter = {147, 323, 89, 933, 540, 269, 97, 114, 298, 476}; char[] kursniva = { A, B, C, D }; Programmeringsmetodik -Java 109

Observera : Initialisera med listor new används inte Ingen explicit storlek Längden bestäms av antalet element Endast vid deklarationen Se Primes.java Programmeringsmetodik -Java 110

Objekt som element Elementen i ett fält kan vara objektreferenser String[] grupp = new String[5]; 5 referenser till objekt av typen String Inga objekt har skapats (referensen är null) Varje objekt skapas separat grupp [0] = new String( Emilie ); Eller (för String ) String[] grupp = { Emilie, Johanna, Jakob, Ellen, Frida }; Programmeringsmetodik -Java 111

Member public class Member { private String name; private int member_ship_number; public Member (String member_name, int id_number) { name = member_name; member_ship_number = id_number; }//konstruktorn }//class Member Programmeringsmetodik -Java 112

Membership class Membership { private Member[] member_list ; private int num_members; public Membership() { num_members = 4; member_list = new Member[4]; member_list [3] = new Member( Johnny Storm,70469);... } } Programmeringsmetodik -Java 113

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 Programmeringsmetodik -Java 114

command line arguments 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 Programmeringsmetodik -Java 115

Flerdimensionella fält En-dimensionella fält = listor av värden Två-dimensionella fält - tabeller med rader & kolumner Två index Fält av fält i Java, medför att raderna kan ha olika längd Programmeringsmetodik -Java 116

Flerdimensionella fält Lista av listor Kan initialiseras med listor Varje lista har en egen längdkonstant int[][] tabell = new int[4][5]; tabell.length har värdet 4 medan alla dellistor tabell[i].length har värdet 5 (alla listor lika långa) Se TwoDArray.java (299) Programmeringsmetodik -Java 117

Klassen Vector Ett objekt av klassen Vector liknar ett fält Men Lagrar bara referenser till objekt av typen Object Inte samma syntax för indexering Klassen tillhör paketet java.util Programmeringsmetodik -Java 118

Servicemetoder addelement (Object element) removeelement (Object element) contains (Object element) elementat (int index) firstelement () lastelement () size () Programmeringsmetodik -Java 119

Klassen Vector Listtypen dynamisk Implementeras med fält Om mer utrymme behövs, skapas ett nytt objekt och elementen kopieras över Se Beatles.java (s. 304) Programmeringsmetodik -Java 120

Vad innebär det att programmera? Konstruera ett program som: Löser eller gör det enklare att lösa ett problem eller en uppgift Det finns många typer av program såsom Interaktiva (med en användare som styr programmet) Batch-program Typen av program påverkar vad det betyder att programmera Programmeringsmetodik -Java 121

Vad innebär det att programmera? Storleken eller komplexiteten påverkar också vad det innebär att programmera Småskalig programmering Ett fåtal personer inblandade Upp till ett tusental rader kod T ex. laborationerna på kursen Storskalig programmering Stora projekt med ibland upp till flera hundra inblandade Kan sträcka sig över flera år Enormt mycket kod att skriva och hantera T ex. Programmeringen av AXE-stationerna Programmeringsmetodik -Java 122

Att jobba som programmerare Handlar mycket om: Problemlösning Design Dokumentation Specifikation Granskning Felsökning Konstruktion Handlar mycket mindre än man tror om: Kodning vid datorn Programmeringsmetodik -Java 123

Vad har vi för hjälpmedel som programmerare? Algoritmer Programmeringsspråk Utvecklingsmiljö Editorer Kompilatorer, mm. Diverse verktyg för att hitta fel och rätta fel Administrationsverktyg Dokumentation Programbibliotek Programmeringsmetodik -Java 124

Programmeringsmetodik Programmering? Mer än bara kodning Metodik? En strategi eller metod för att utföra något Ett arbetssätt En arbetsplan Programmeringsmetodik -Java 125

Det finns olika typer av programmering En och samma metodik för alla typer av programmering? Nej! Vi kommer att koncentrera oss på småskalig programmering Programmeringsmetodik -Java 126

Skillnader i metodik Storskalig programmering kräver mer administration Versionshantering Personal Testning och felhantering blir mycket mer komplext Varför småskalighet på kursen? Lättare att börja med, överblickbara problem Storskaligheten går alltid att bryta ner till småskalighet Programmeringsmetodik -Java 127

Typer av småskalig programmering Maskinnära programmering Realtidsprogrammering Probleminriktad programmering Programmering av batch-system Programmering av interaktiva system Programmeringsmetodik -Java 128

Strukturerad programmering Formulera uppgiften, specificera Lös problemet Verifiera lösningen Kodning Avlusning Validering Dokumentation Underhåll Programmeringsmetodik -Java 129

Formulera uppgiften Samla in information - dialog med beställaren Strukturera indata utdata arbetsmiljön Skriv ner en specifikation Problem Omgivning Indata Utdata Tänk över kritiska situationer För att reda ut För att kunna validera lösningen och programmet Programmeringsmetodik -Java 130

Val av programmeringsspråk Det finns många språk som är olika bra lämpade för olika typer av programmering, problem etc. Man bör välja programmeringsspråk efter: Sina egna kunskaper Problemets natur Lösningens natur Tillgång till stöd, verktyg mm. Programmeringsmetodik -Java 131

Kodning Saker som ingår i kodningsarbetet Definiera programmeringsstilen Strukturera dataflödet Design av datatyper / Klasser Implementera algoritmerna och datatyperna Kommentera koden ordentligt Följ algoritmen (som är verifierad) Återanvändning av kod Har du sett något liknande problem lösas tidigare? Vilka funktioner finns i språket som kan vara nyttiga? Programmeringsmetodik -Java 132

Testning och verifiering av koden Testa delarna för sig allt eftersom de blir klara Ställ upp ett testschema Delarna Logiska block Hela systemet Validering av systemet Stäm av det färdiga systemet mot beställningen som är specificerad i ett dokument, skriv ner skillnader och likheter Programmeringsmetodik -Java 133

Syntaxfel Olika typer av fel Grammatiska fel Felstavningar Tvetydigheter Upptäcks ofta vid kompileringen Semantiska fel (Tankefel) Problemet är löst på fel sätt, eller man har löst fel problem. Programkörningsfel(run-time error) Programmeringsmetodik -Java 134

Relativa Kostnader för Olika Faser 2% 4% 1% 6% 5% 15% Kravinsamling Analys Planering Design Kodning Testning Underhåll 67% Compiled data from 1976-1981. See S.R. Schach: Software Engineering with Java, Irwin 1997 Programmeringsmetodik -Java 135

Typiska orsaker till fel 8% 12% 6% 14% 34% Felaktiga eller misstolkade krav Felaktiga eller misstolkade specifikationer Designfel som involverar flera komponenter Design- eller kodningsfel i en komponent Stavningsfel och dylikt Fel rättning Andra orsaker 22% 4% Study from 1978 See A. Goldberg, K.S. Rubin:Succeeding with Objects, Addison-Wesley, 1995 Programmeringsmetodik -Java 136

Relativa Kostnader för ett Fel Programmeringsmetodik -Java 137

Dokumentation Sammanställ den dokumentation som de övriga punkterna har producerat Inledning Problemspecifikation Systembeskrivning Beskriv systemet i stora drag, modulariseringen, dataflöde, större datastrukturer Algoritmbeskrivning Resultat från olika typer av verifiering och avlusning Användarmanual Möjliga utvecklingar av systemet Programmeringsmetodik -Java 138

Underhåll av systemet Ett system har en livscykel som innebär Rätta till kända felaktigheter Implementera möjliga förbättringar Inrapportera felaktigheter Versionshantering Programmeringsmetodik -Java 139

Algoritm Efter den Persiske matematikern Muhammed al- Khowârizmî 800 talet e. kr Vad är en algoritm? Som ett recept eller en arbetsbeskrivning Programmeringsmetodik -Java 140

Exempel 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 Programmeringsmetodik -Java 141

Karakteristik för 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 T ex. Andra steget i föregående algoritm kan förfinas så att man får en mer finkornig algoritm Programmeringsmetodik -Java 142

Algoritmer mer formellt Def: En algoritm är en noggrann plan, en metod för att stegvis utföra något Krav på en algoritm Ändlighet(Algoritmen måste ha en ändlig beskrivning) Bestämdhet (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) Programmeringsmetodik -Java 143

Algoritmbeskrivning Kort 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 Programmeringsmetodik -Java 144

Siffervärden Sträng - heltal Integer wrapper class: int heltal = Integer.parseInt (str); Läsa och konvertera i samma sats: heltal = Integer.parseInt (stdin.readline()); Programmeringsmetodik -Java 145

Frame Används för att skapa ett fönster i ett program. Kan bland annat användas för att rita i. Konstruktorer: Frame() Frame(title) Programmeringsmetodik -Java 146

ShowFrames import java.awt.*; import java.awt.event.*; public class ShowFrames{ //----------------------------------------- // Creates and displays an empty frame. //----------------------------------------- public static void main (String[] args){ Frame frame=new Frame( ShowFrames ); frame.setsize(300,300); frame.addwindowlistener(new GenericWindowListener()); frame.setvisible(true); } } Programmeringsmetodik -Java 147

GenericWindowListener import java.awt.event.*; public class GenericWindowListener extends WindowAdapter{ //------------------------------------ //Terminates the program when the window is closed. //------------------------------------ public void windowclosing (WindowEvent event) { System.exit(0); } } Programmeringsmetodik -Java 148

Ritytor-- Graphics Context Graphics hanterar själva ytan där man ritar på Graphics klassen innehåller ritmetoder och hanterar färg och typsnitt [s 681-684] Man kan inte direkt rita i/på en GUI komponent Varje GUI komponent har en s k Graphics Context där all ritning sker Programmeringsmetodik -Java 149

Ritytor-- Graphics Context Kontexten fås genom att anropa getgraphics metoden eller (automatiskt) som aktuell parameter i paint metoden Alla GUI komponenter har en paint metod Programmeringsmetodik -Java 150

Koordinatsystem Positionerna i varje rityta (dvs Graphics Context) representeras genom ett koordinatsystem Varje punkt <x,y> i koordinatsystemet representerar en bildpunkt (Pixel) Varje rityta har en bredd (width) och en höjd (height) Programmeringsmetodik -Java 151

Koordinatsystem Koordinatsystemet är upp och ner, dvs <0,0> ligger längst upp till vänster Det som ritas utanför ritytan kan inte ses (0, 0) 112 X 40 (112, 40) Y Programmeringsmetodik -Java 152

Färg Color klassen används för färghantering Färger definieras genom sina Färgvärden, som anger andelen röd, grön och blå i färgen Varje rityta har en förgrunds- och en bakgrunds färg Programmeringsmetodik -Java 153

Färg setcolor metoden i Graphics klassen sätter förgrunds färgen och setbackground metoden i GUI komponenten sätter bakgrunds färgen Color klassen tillhandahåller en del fördefinerade färger som publika konstanter Color(float r, float g, float b) Color(int r, int g, int b) Programmeringsmetodik -Java 154

Att Rita Enkla Figurer Graphics klassen har ritmetoder för: Linjer Ovaler Kvadrater Bågar Polygoner Polylinjer Programmeringsmetodik -Java 155

Att Rita Enkla Figurer De flesta figurer kan ritas ifylld (filled), rektangeln t o m i 3D Linjer är alltid en bildpunkt tjock drawline( fromx, fromy, tox, toy) Programmeringsmetodik -Java 156

Ovaler En oval definieras genom sin omgivande rektangel (Bounding Rectangle) drawoval( x, y, width, height) filloval( x, y, width, height) Programmeringsmetodik -Java 157

Ovaler 175 X 20 80 Y bounding rectangle 50 SDJHGUDZ2YDO Programmeringsmetodik -Java 158

Rektanglar Det finns tre typer av rektangel Vanliga Med rundade hörn Tredimensionella Varje rektangeltyp kan ritas ifylld eller tom Programmeringsmetodik -Java 159

Rektanglar drawrect(x, y, width, height) fillrect(x, y, width, height) draw3drect(x, y, width, height, upordown) fill3drect(x, y, width, height, upordown) clearrect(x, y, width, height) Programmeringsmetodik -Java 160

Boll import java.awt.*; public class Boll { public static void main (String args[]) { Frame myframe = new Frame();// skapa nåt att rita på myframe.setsize(200, 200); // ge den en storlek myframe.setvisible(true); // och se till att den visas Graphics g = myframe.getgraphics();// själva ritytan try { Thread.currentThread().sleep(1000); // sov 1 sekund } catch (InterruptedException ex)// måste fånga ett undantag {} g.setcolor(new Color(60, 60, 60));// grått g.filloval(100, 100, 40, 40);// en boll } } Programmeringsmetodik -Java 161

Output Programmeringsmetodik -Java 162

paint vs update vs repaint paint innehåller koden för själva ritning update suddar först bakgrunden och anropar sen paint repaint är ett slags begäran om omritning och om det inte redan finns ett liknande begäran anropas update Programmeringsmetodik -Java 163

paint vs update vs repaint När AWTn upptäcker att någonting måste ritas om anropas paint (automatiskt) Om man själv vill rita (om) någonting skall man anropa repaint paint skall INTE anropas direkt Programmeringsmetodik -Java 164

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