2I1049 Föreläsning 9. Iterativ programutveckling. Iterativ programutveckling. Modularisering, återanvändning och JavaBeans

Relevanta dokument
Att använda Java SE JDK 6

Att använda Java SE JDK 6

Laboration 10 - NetBeans

Laboration 10 - Eclipse

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Föreläsning 10. Paket Synlighet Arkiv. DA129A Programmering 1

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Objektorienterad programmering i Java I

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

NetBeans 7. Avsikt. Projektfönster

Avslutning. Kapitel Komprimering av filer

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

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.

Inledande programmering med C# (1DV402) Introduktion till C#

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

OOP Objekt-orienterad programmering

Föreläsning 2 Verktyg m.m.

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

ID1004 Laboration 3, 5-6 November 2012

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

FactoryCast HMI. Premium & Quantum PLC. Applets

TUTORIAL: SAMLING & KONSOLL

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

12 Metaprogrammering i Java

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

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

Kompilering av Java-program med eclipse SDK för den som kan BlueJ

Objektorienterad programmering

NetBeans 5.5. Avsikt. Projektfönster

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

Design av en klass BankAccount som representerar ett bankkonto

2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering

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

JAVA Mer om klasser och objektorientering

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

1 jar-filer. 1.1 Översikt. 1.2 jar-filers struktur. 1.3 jar manifest

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Verktyg och Utvecklingsmiljö. Jochim von Hacht

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

Ingenjörsfirman Stéen Java Sida 1 av 1

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15

Föreläsning 3. Programmering, C och programmeringsmiljö

Lektion 5. Datateknik A, Java I, 5 poäng

(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

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

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

Föreläsning 9: Projektintroduktion, programmeringsmetod, samt att skapa körbara program och dokumentation

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning.

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

Introduktion till programmering, hösten 2011

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

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Rekursion. Att tänka rekursivt Att programmera rekursivt i Java Exempel. Programmeringsmetodik -Java 254

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

ITK:P1 Föreläsning 8. Verktyget Javadoc. Kommentarer för Javadoc. Multimedia för spelkonstruktion

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

Föreläsning 1: Introduktion till kursen

Stackar, köer, iteratorer och paket

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

Internationalisering/lokalisering på webben

Guide för Innehållsleverantörer

Objektorienterad Programkonstruktion. Föreläsning jan 2016

OOMPA 2D1359 Föreläsning 3

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

2I1070 Lektion 2 Servlets och databaskopplingar Internetprogrammering 2I1049 Treskiktsarkitektur Klient-server med servlets

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

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

DAT043 - föreläsning 8

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

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

Java-concept och Swing. Swing low, sweet chariot

Programmeringsteknik II

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

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

IT för personligt arbete F6

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

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

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

ITK:P1 Lektion 4. Lektion 4. Lektion 4. Att implementera en spelidé i Java. DSV Peter Mozelius

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.

JAR som tar eller zip. Java. Exekvering

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT17

FRÅN MAVEN TILL GRADLE

Föreläsning 14. Filhantering

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

Transkript:

2I1049 Föreläsning 9 Modularisering, återanvändning och JavaBeans KTH-MI Peter Mozelius Iterativ programutveckling Iterativ utveckling evolutionär utveckling inkrementell utveckling Att bygga programmen bit för bit Lägg till en rad kod i taget och kontrollera att allt fungerar innan något mera läggs till Enklare felsökning, bättre kontroll Att gå igenom programmen en gång till när all kod fungerar och optimera Iterativ programutveckling 1

Modularisering i Java Redan i ett medelstort mjukvarusystem ingår det en mängd olika klasser På något måste alla klasser struktureras I Java gör detta genom att klasser som på något sätt hör ihop samlas i ett paket Standardpaket som java.awt Egendefinierade paket som bildas genom att det allra högst upp i klassfilerna finns ett: package paket; Paket Till skillnad från klassnamnen så inleds paketnamnen alltid med en liten bokstav I filsystemet på vår dator skapar vi sedan en mapp med samma namn som paketet t ex C:\java\egna\paket För att det sedan ska fungera att från andra källkodsfiler kunna köra: import paket.*; Så ska C:\java\egna finnas med i CLASSPATH CLASSPATH Sätts olika i olika miljöer: Windows, autoexec.bat/kontrollpanelen/prompt set CLASSPATH =.;C:\java\egna;D:\mapp\fil.jar Linux, punktfil/prompt setenv CLASSPATH.:/java/egna:eget/fil.jar (Olika sätt i olika skal i UNIX) 2

JAR = Java ARchive Files Ett plattformsoberoende standardsätt för att kunna samla ihop ett antal filer till ett arkiv Praktiskt för installation och distribution Java VM är införstådd med denna teknik och kan ladda in klassfiler direkt från ett JAR-arkiv Även applets kan använda jar-filer Arkiven kan även innehålla bilder, ljud mm JAR-filerna är komprimerande enligt den modell som används för ZIP-arkiv Klassfiler krymper med ca 40% Textfiler minskar upp till 75% Bildfiler däremot påverkas knappt då de redan är komprimerade Komprimeringen och packningen till en enda fil har klara fördelar i ett nätverk I bin-katalogen av din javainstallation ligger den körbara filen jar (.exe) packa ett arkiv genom jar -cvf arkiv.jar Klass1.class Klass2.class Titta på innehållet: jar -tvf arkiv.jar Packa upp arkivet jar -xvf arkiv.jar 3

Vi tar nu 20 min paus! Förutom de vanliga aktiviteterna som kaffedrickning mm så ska ni även packa och packa upp ett jar-arkiv jar -cvf arkiv.jar Klass1.class Klass2.class jar -xvf arkiv.jar Hur man bygger och kör en jar-fil : Kompilera Lektion2a.java Skapa manifestfilen manifest.fil jar -cvmf manifest.fil test.jar Lektion2a.class java -jar test.jar ELLER dubbelklicka (i Windows) Manifestfilen innehåller här enbart: Main-class: Lektion2a OBS plus en avslutande radmatning OBS Dokumentation Olika sätt att kommentera i Java: // kommentar till radens slut /* kommentar som sträcker sig över flera rader */ /** * Flerradig kommentar för javadoc * @version 1.0 */ 4

javadoc Dokumentation och javadoc är ett sätt att underlätta återanvändningen av javakod /** javadoc-kommentarerna ska placeras * omedelbart innan den klass eller metod * som kommentarerna gäller * @author Peter Mozelius */ Skapas genom: PROMPT:> javadoc Kodfil.java Återanvändning Välskrivna klasser är återanvänbara Återanvändbarheten förenklas genom OO-tekniker som arv och inkapsling MEN, återanvändning har alltid förekommit inom alla varianter programmering En form av återanvändning som finns i många programmeringsspråk är komponenter Komponentprogrammering Att återanvända kompletta komponenter som även fungerar i grafiska utvecklingsmiljöer Vanligt inom Windowsvärlden sedan många år Delphi, Visual Basic m fl I Java finns det Java Beans Exemplel på Java Beans Button, JButton, Panel, JPanel The HotJavaBrowser Bean 5

JavaBeans En komponentarkitektur Ett antal regler för att kunna skriva återanvändbar mjukvara i språket Java En javaböna är en återanvändbar komponent som även kan hanteras visuellt i en grafisk utvecklingsmiljö Grafiska utvecklingsmiljörer/rad-verktyg: Borland: JBuilder Sun: NetBeans, Forte m fl JavaBeans Både JBuilder och Forte är kommersiella produkter men Forte finns även som open source under namnet NetBeans: http://www.netbeans.org/ Tutorials och instruktionsvideos på: http://www.netbeans.org/kb/trails/java-se.html JavaBeans Bönorna innehåller kod för både grafik och logik Bönorna kan vara både små och stora Stora JavaBeans kan innehålla en komplett webbläsare (HotJava) eller ett kalkylprogram Fyra av de saker som kännetecknar JavaBeans: Design pattern (designmönster) Reflection (introspektion) Object serialisation (serialisering) JAR-archive (klassfilen packad i en jar-fil) 6

JavaBeans design patterns Designmönster = programmeringsregler JavaBeans metoder ser ut enligt: public PropertyType getpropertytype() public void setpropertyname(propertytype arg) public boolean ispropertyname() Som t ex i klassen javax.swing.jcomponent public void setbackground(color c) JavaBeans reflection Reflection Java Reflection API java.lang.reflection En teknik som gör att javakod kan undersöka egenskaperna hos objekt under programkörning getfields() returnerar en array med publika variabler getdeclaredfields() returnerar samtliga variabler getdeclaredconstructors() getdeclaredmetods() JavaBeans serialization Serialisering: Ett sätt att frystorka våra javabönor Interfacet java.io.serializable Objekten monteras ner till bytes En ström av bytes kan sparas till en fil Filen kan senare läsas in och återskapa objektet En användbar teknik som kan tillämpas även när man inte arbetar med JavaBeans 7

Enterprise JavaBeans Bönor för flerskiktslösningar För internetlösningar med skalbarhet Kräver Java Enterprise Edition Bygger på JavaBeans men även på RMI Efterfrågad kunskap i arbetslivet. Komplext område som behöver en egen kurs. Läs mera om EJB på: http://java.sun.com/products/ejb/index.jsp Kurskritik Vad har fungerat på kursen? Vad bör ändras? Lycka till med tentan! 8