2I1049 Föreläsning 11 Modularisering, återanvändning och JavaBeans

Slides:



Advertisements
Liknande presentationer
Snabbguide och tips.
Advertisements

First Class Arken - Introduktionskurs
Händelsehantering i grafiska gränssnitt byggda med Tkinter
1 2I1049 Föreläsning 8 KTH-MI Peter Mozelius Grafiska gränssnitt, Java interface och händelsehantering.
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
2I1070 Lektion 2 KTH-MI Peter Mozelius Servlets och databaskopplingar.
1 ITK:P2 F9 HTTP, Java servlets och Apache Tomcat DSV Peter Mozelius.
Föreläsning 1.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Metoder i java Det finns två typer av metoder i java
Inkapsling.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Swing Grafik delen i Java kallas för Swing. Swing är stort; ca 800 klasser i 16 paket. Swing är en utveckling av AWT (Abstarct Window Toolkit). AWT var.
Att programmera i språket Java
1 ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering DSV Peter Mozelius.
Föreläsning 8 Appletprogram/fristående grafiska program Rita linjer, rektanglar mm Skriva text Byta färg Appletprogram html.
1 ITK:P1 Föreläsning 6 Layoutmodeller i Java DSV Marie Olsson.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
1 ITK:P1 Föreläsning 5 Iteration, slumpning och arrayer DSV Peter Mozelius.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
Programmering B PHP Lektion 1 Mahmud Al Hakim Folkuniversitetet
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
Programmeringsteknik för Media1 & K1
OOP F6:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList toString() – metoden.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
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.
MV500B: Introduktion till interaktiv ljuddesign David Yanagisawa, Anders-Petter Andersson 4.5 högskolepoängLektion 3.
Jonny Karlsson GRUNDKURS I PROGRAMMERING MED JAVA Föreläsning 9 ( ) INNEHÅLL: -Tabeller av klassobjekt -Användning av Java API specifikationen.
Föreläsning 14 ”Enkel” Filhantering.
Java servlets och databaskopplingar
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 ITK:P1 Föreläsning 8 Multimedia för spelkonstruktion DSV Peter Mozelius.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Java paket och jar-filer
INTRODUKTION TILL PROGRAMMERING
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
Föreläsning 4 Klasser Och Objekt.
1. Ett problem/uppgift.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
0. Kod, Klassdiagram och Sekvensdiagram import java.awt.event.*; import javax.swing.*; import java.awt.*; public class TwoThreads implements ActionListener.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Introduktion till programmeringsspråket Java -Den allmänna.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
ITK:P2 F8 Strömmar och filhantering DSV Peter Mozelius.
Föreläsning 9 Arv kap 8.1 Interface kap 9.2 Grafiska användargränssnitt (GUI) kap 10.
2I1073 Lektion 1 KTH-MI Peter Mozelius XHTML, stilmallar och Javascript.
Ladda ner och installera JAVA Mahmud Al Hakim DynamicOS
Copyright, Mahmud Al Hakim, Hakimdata.se Agenda  Kunskapstest  Windows Skrivbord (Desktop)  Aktivitetsfält  Fönster och menyer  Systemåterställning.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Föreläsning 9 Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Felsökning Java API.
OOP&M - teori1 OOP&M – Föreläsning 3 kap 2-4 Repetition Föreläsning-datayper-syntax-tilldelning.
Föreläsning 7 Metoder Parametrar Klassmetod.
Programmering i.NET Farid Naisan, Universitetsadjunkt Datavetenskap, Teknik och samhälle, Malmö högskola Assembly.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
OOP&M - teori1 OOPM del II – Föreläsning vecka Sista föreläsning del II Kapitel 21 plus paket Abstrakta klasser/metoder igen Gränssnitt/Interface.
OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat.
OOP&M - teori1 OOP2– Föreläsning vecka 0507 OBJEKT Mer om ärvning... Paket...
Presentationens avskrift:

2I1049 Föreläsning 11 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

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)

Jar-filer 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-filer 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

Jar-filer 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

Jar-filer 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

Jar-filer 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 */

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

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: 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/ Går att hämta hem som en ZIP-fil Kräver SDK/JRE > version 1.3

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)

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.lang.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

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

Lycka till med tentan! Kurskritik Vad har fungerat på kursen? Vad bör ändras? Lycka till med tentan!