Komponenten-Orientierte Softwareentwicklung mit JavaBeans. Birngruber Dietrich
|
|
- Walter Roth
- vor 5 Jahren
- Abrufe
Transkript
1 Komponenten-Orientierte Softwareentwicklung mit JavaBeans Birngruber Dietrich
2 Inhalt Einführung zum Thema Software Komponenten Komponenten - Wozu? Schlagwörter Geschichtlicher Hintergrund Wiederverwendung Java Komponentenmodell: JavaBeans
3 Software Komponenten - Wozu? Software Crises (Ende 60er) Ist sie bereits überwunden? Wiederverwendung (Reuse) Qualitätsverbesserung Reduced time to market Objekt-Orientierung hat sich etabliert - Brauchen wir mehr? Software Komponenten sind trendy Alternativen zu Komponenten: GEP, AOP,...
4 Komponenten - Schlagwörter componentware, software components, component based programming, component oriented programming, Lego for software engineers, reuse, Java, JavaBeans, DCOM, VBX, ActiveX, CORBA, CORBA-Beans...
5 Abstraktionsmechanismen - Evolution oder Revolution? 40's - 50's Data Registers Control OP Codes 50's - 60's Predefined Types Predefined Operations 60's - 70's User Defined Types User Defined Operations 70's - 80's (Simula 67) 90's -? Classes Components?????
6 Erhoffte Vorteile durch OOP Wiederverwendung von Code durch Vererbung (inheritance) Flexibilität durch Polymorphismus Modellieren der realen Welt (object identity) Erhöhung der Produktivität und Qualität Und trotzdem: Software Krise nicht überwunden! Warum?
7 Fragile Base Class Problem beschreibt Probleme durch Vertragsbruch zwischen Unterund Überklasse Unterklasse hält sich an den Vertrag Überklasse wird später geändert und bricht den Vertrag Ersetzbarkeit ist nicht mehr garantiert! syntactic: Modifizieren der Schnittstelle der Überklasse z.b.: Ändern von Methodennamen, Parameterliste,... semantic: Verhalten der Überklasse ändert sich
8 OOP Problem: Vererbung Inheritance breaks information hiding Schnittstelle zwischen Klienten / Objekt, Klasse ermöglicht Information Hiding A A C B B Schnittstelle zwischen Unterklasse und Superklasse kann Information Hiding verletzten, indem auf Instanzvariable der Superklasse direkt zugegriffen wird C
9 Beispiel: OO Framework für Editoren OO-Editor-Framework erlaubt schnelle Anpassung :-))) Framework wird für zwei OS bereitgestellt zwei verschiedene Versionen mehr Aufwand für Framework Hersteller Kunde braucht oft nicht ganze Funktionalität Framework kann schwer zerlegt werden einzelnes Objekt kann nicht ausgeliefert werden Kunde will Framework auch in Sprache X weil er auch ein Framework zur Rechtschreibprüfung, geschrieben in der Sprache X, verwendet Integration
10 Beispiel: Framework (2) Lösungen Auslieferung von Quellcode? um Framework in Anwendungen verwenden zu können Framework Code in jeder Anwendung (Speicherverschwendung) Preisgabe von Know How Application A Editor V1.0 Application B Editor V1.0 neue Framework Version betrifft viele Anwendungen jede Anwendung muss neu übersetzt werden...
11 Erwartete Vorteile durch COP Qualitätssteigerung Komponenten werden mehrmals wiederverwendet und Fehler werden sukzessiv beseitigt Senkung der Herstellungskosten Kürze Software-Entwicklungszeit indem, komplexe Komponenten wiederverwendet werden. Wurde das nicht schon mit OOP versprochen?
12 Lösungsansätze Plattformunabhängigkeit keine teueren parallelen Entwicklungen für jedes OS extra Sprachunabhängigkeit verwenden von Komponenten, programmiert in verschiedenen Sprachen Komponenten als unabhängige Einheiten Ausliefern von dem, was wirklich benötigt wird Markt für verschiedene Implementierungen
13 Lösungsansätze Zugriff nur über Schnittstelle kein teilweises Information Hiding, sondern vollständiges! blackbox reuse kein Auslieferen von Quellcode - sondern binäres Format kein Fragile Base Class Problem Dynamisches Laden von Komponenten weniger Speicherverschwendung Verhalten kann zur Laufzeit verändert werden... Viele dieser Lösungsansätze auch mit OO möglich!!!
14 Wiederverwendung (reuse) whitebox reuse Schnittstelle gegeben, aber voller Zugriff auf die Implementierung Anwender muß fremden Code verstehen und lernen Entwickler gibt sein Know How preis z.b.: durch implementation inheritance Gewünscht: blackbox reuse Zugriff nur über wohl definierte Schnittstelle Design by Contract Anwender braucht gute Dokumentation - muß aber Code nicht lernen Möglichkeit von try and buy z.b.: Application Programming Interface (API)
15 Wiederverwendung Objekt - Orientiert: Whitebox Reuse durch Vererbung Anwender braucht gute Dokumentation und muß fremden Code verstehen Entwickler gibt sein Know How preis Komponenten - Orientiert Blackbox Reuse durch Assoziation, Aggregation Anwender braucht gute Dokumentation Zugriff nur über Schnittstellen, Design by Contract Möglichkeit von Try & Buy
16 JavaBeans Grundlagen
17 Ziele Verstehen der grundlegenden JavaBean Technologie Wissen, wie man eine JavaBean baut Wissen, wie man eine JavaBean verwendet Spaß an der Arbeit Als Anfänger beginnen und als Bean... als ein JavaBean Experte enden
18 JavaBeans - Grundlagen JavaBeans Einführung und Definition Events über den grundlegenden Kommunikationsmechanismus Properties über virtuelle Variable Serialization über Zustand und Persistenz Packaging über das Verpacken von JavaBeans
19 JavaBeans Einführung Einfache Konzepte Einfache Programmierschnittstelle Plattformneutrales Komponentenmodel Verbindungen zu anderen Komponenten- und Verteilungsmodellen wie DCOM oder CORBA In plattformabhängigen Behältern (containern) einbettbar z.b.: MS Excel, Word etc.
20 JavaBeans Definition A Java Bean is a reusable software component that can be manipulated visually in a builder tool (JavaBeans Spezification)
21 JavaBeans Definition Beispiele: GUI widgets, Spreadsheet, HTML-Browser Keine genaue Angabe darüber, was eine "software component" ist. Die Granularität von JavaBeans reicht von einer Klasse bis zur ganzen Applikation. Die meisten sind jedoch "middle grained" - was immer das heißen mag! Eine oder mehrere Klassen realisieren eine Komponente Eine oder mehrere Komponenten realisieren eine komplexere Komponente oder eine Applikation
22 JavaBeans Definition Explizite Unterstützung von visueller Programmierung Design Time versus Run Time Visible versus Unvisible Beans Erforderliche Features oder Eigenschaften: properties events methods persistence customization introspection
23 JavaBeans Definition Beans wurden für ein lokales Laufzeitmodell im gleichem Adreßraum konzeptioniert. Beans können jedoch über verschiedene Mechanismen auf entfernte Ressourcen zugreifen. Wozu noch Klassenbibliotheken?
24 Beispiel einer Montageumgebung: VisualAge
25 JavaBeans - Grundlagen JavaBeans Einführung und Definition Events über den grundlegenden Kommunikationsmechanismus Properties über virtuelle Variable Serialization über Zustand und Persistenz Packaging über das Verpacken von JavaBeans
26 Ereignisse (Events) Allgemeiner Kommunikationsmechanismus Erlaubt loosley coupled communication Beans werden über Ereignisse zusammengesteckt Idee von Ereignissen: Die Änderung eines Zustandes soll allen, die sich dafür interessieren, mitgeteilt werden. Ziele: Ein allgemeines Rahmenwerk, das erweitert werden kann und für verschiedene Anwendungsdomänen geeignet ist Ereignisse müssen auch in anderen Programmierumgebungen (v.a. scripting environments) behandelt werden können Unterstützung durch Werkzeuge
27 Event Delegation Mechanismus Technische Realisierung in Java (seit JDK 1.1) mit drei Beteiligten: Quelle (event source) Auslöser der Ereignisse (WO ist etwas passiert?) Sie benachrichtigt alle, die sich dafür interessieren Interessierter mit Ereignis Definition (event listener) reagiert auf Ereignisse (WAS ist passiert?) wird bei der Quelle registriert und deregistriert Ereignis Objekt (event) ist Information über Zustandsänderung
28 Zusammenspiel zwischen Quelle, Interessierter und Ereignis Objekt X Event Source 1 void addfoolistener (FooListener l) Referenz auf Interface l 2 FooListener (Interface) void foobarhappened (FooEvent e1) Status geändert! - Erzeuge FooEvent e1 - Ereignis "foobarhappened" auslösen Objekt X 3 void removefoolistener (FooListener l)
29 Bean Design Pattern für Ereignis Objekte (Events) erweitern java.util.eventobject Klassenname endet mit Event z.b.: FooEvent, MouseEvent etc. Instanzvariable sind immutabel d.h. nicht veränderbar Der Zugriff auf Instanzvariable erfolgt nur über öffentliche Zugriffsmethoden Die Zugriffsmethoden unterliegen den Design-Pattern für Properties Ereignis Beispiel: public class AlarmEvent extends java.util.eventobject { private long t; public AlarmEvent(Object source, long ms) {super(source);t=ms;} public long gettime() {return t;} }
30 Beispiel - SimpleAlarmBean Beschreibung Alle x Millisekunden wird ein Alarm ausgelöst Sehr einfaches Bean: AlarmEvent Enthält die Entstehungszeit des Alarms in Millisekunden. AlarmEventListener Behandelt Ereignis alarmoccured SimpleTimerBean Event Source löst alle x Millisekunden den Alarm aus und benachrichtigt die registrierten AlarmEventListner
31 Beispiel - SimpleAlarmBean AlarmEvent & AlarmListener public class AlarmEvent extends java.util.eventobject { private long time; public AlarmEvent(Object source, long ms) { super(source); time=ms; } } public long gettime() {return time;} /* */ public interface AlarmListener extends java.util.eventlistener { // alarmoccured event void alarmoccured(alarmevent ev); }
32 Beispiel - SimpleAlarmBean (1) (Ereignisquelle) public class SimpleAlarmBean implements Runnable { Thread t; static final int WAIT_MS = 10000; //alarm occures all 10 sec. Vector listeners; //registered listeners //default constructor public SimpleTimerBean() { listeners = new java.util.vector(); t = new java.lang.thread (this); t.start(); } //registration and deregistration of the listeners public synchronized void addalarmlistener(alarmlistener l) { this.listeners.addelement(l); } public synchronized void removealarmlistener(alarmlistener l) { this.listeners.removeelement(l); } //...
33 Beispiel - SimpleAlarmBean (2) //... protected void firealarmevent() { if (listeners == null) return; Vector targets=(vector)listeners.clone(); AlarmEvent ev=new AlarmEvent(this,System.currentTimeMillis()); for (int i =0; i < targets.size(); i++) { AlarmListener target=(alarmlistener)targets.elementat(i); target.alarmoccured(ev); } } public void run() { while (t!= null ) { try { t.sleep(wait_ms); firealarmevent(); } catch (Exception ex) { ex.printstacktrace(); } } } } //end of class SimpleAlarmBean
34 JavaBeans - Grundlagen JavaBeans Einführung und Definition Events über den grundlegenden Kommunikationsmechanismus Properties über virtuelle Variable Serialization über Zustand und Persistenz Packaging über das Verpacken von JavaBeans
35 Eigenschaften (Properties) Properties oder Eigenschaften sind diskrete, benannte Attribute eines JavaBeans, welche das Aussehen oder das Verhalten eines Beans verändern können. Beispiel: label Property eines GUI Knopfes, welches die Beschriftung darstellt Auf Properties wird immer über Methoden zugegriffen Meistens werden Properties auch gespeichert Properties können zur Run Time und zur Design Time gesetzt werden
36 Simple Properties Bean Design Pattern Grundlegende Signatur von read / write Properties: public void set<name> ( <Type> value ); //simple setter public <Type> get<name> (); //simple getter z.b.: Simple Property label vom Typ String public void setlabel (String alabel); //simple setter public String getlabel (); //simple getter
37 JavaBeans - Grundlagen JavaBeans Einführung und Definition Events über den grundlegenden Kommunikationsmechanismus Properties über virtuelle Variable Serialization über Zustand und Persistenz Packaging über das Verpacken von JavaBeans
38 Serialization (1) Mechanismus zum Speichern (=Serialisieren) und zum Laden (=Deserialisieren) von Java Objekten Es werden Typinformation und Zustand eines Objektes auf einen beliebigen Ausgabestrom gespeichert API ist zu finden im Package java.io Serialisierbare Klassen implementieren java.io.serializable Unabhängig welcher Serialisierungsmechanismus benutzt wird java.io.serializable enthält keine Methoden Ist nur Typ zum Erkennen ja ich möchte serialisiert werden
39 Serialization (2) Gespeichert werden nur Instanzvariable Nicht gespeichert werden: transient und Klassenvaraible (static) Ganzer Objektgraph wird gespeichert Wichtige Stream Klassen zum Serialisieren von Objekten java.io.objectinputstream java.io.objectoutputstream Fast alle Klassen des JDK implementieren Serializable Ausnahmen: java.lang.object, java.lang.thread, etc.
40 JavaBeans - Grundlagen JavaBeans Einführung und Definition Events über den grundlegenden Kommunikationsmechanismus Properties über virtuelle Variable Serialization über Zustand und Persistenz Packaging über das Verpacken von JavaBeans
41 Packaging Problem: Ein JavaBean besteht in der Regel aus vielen Dateien Lösung: archivieren als JAR - Java Archive Anwendungsszenario Bean Entwickler packt die notwendigen Dateien in ein JAR Kunde kauft JAR (übers Netz) und importiert es in sein Builder Tool Builder Tool erkennt automatisch alle Beans und ändert die Palette Kunde verwendet die neuen Beans in seinem Builder Tool JAR Tool ist im JDK enthalten Beispiel: Zwei Dateien werden in das Archiv classes.jar gepackt jar cvfm Beans.jar manifest.mf Foo.class B.class
42 Inhalt eines JAR.class Dateien: Beans, Unterstützende Klassen etc..html Dateien: Dokumentation.avi,.au etc: sonstige Ressourcen, Videos, Bilder etc. Manifest.mf Datei Beschreibt welche Klassen ein Bean ist und welche nicht Beispiel: Manifest-Version: 1.0 Name: com/ibm/led/ledclock.class Java-Bean: True Digest-Algorithms: SHA MD5 SHA-Digest: XspvM2DfvGR7uap4+U7mpgY0p/o= MD5-Digest: jlabnolaisrcy9vba80a0w== Name: com/ibm/led/alarmevent.class Digest-Algorithms: SHA MD5
43 JavaBeans - Grundlagen FRAGEN? Wir sehen uns im WS00/01
Java Beans von Christian Beck-Wörner. Inhalt. Was ist ein Bean Konzept von Beans Entwicklung eines Beans Eigenschaften von Beans Testumgebung: BDK
Java Beans von Christian Beck-Wörner Inhalt Was ist ein Bean Konzept von Beans Entwicklung eines Beans Eigenschaften von Beans Testumgebung: BDK Was ist ein Bean? Ein JavaBean ist eine wiederverwendbare
MehrJava Beans. http://java.sun.com/beans/
Java Beans http://java.sun.com/beans/ Software Komponenten Eine Software Komponente ist ein eigenständiges, flexibles und einfach wieder verwendbares Stück Software. In Java: + Plattformunabhängigkeit
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
MehrJava Beans. Seminar Komponentenprogrammierung Freie Universität Berlin, WS 2004/2005 Ivo Köhler, 08. November 2004
Java Beans Seminar Komponentenprogrammierung Freie Universität Berlin, WS 2004/2005 Ivo Köhler, 08. November 2004 1 Agenda Was sind Java Beans? Wie funktionieren Java Beans? Objekte vs. Komponenten Mechanismen
MehrLösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am
Aufgabe 1 Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am 16.3.2002 Folgende Implementierung löst die gestellte Aufgabe : public interface Figur { public void anzeigen (); public
MehrInterface. So werden Interfaces gemacht
Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.
MehrApplication Frameworks and Componentware Wintersemester 2002/03. Komponentenbasierte Programmierung in Java
JavaBeans Java inproc Komponenten Übersicht Komponentenbasierte Programmierung in Java JavaBeans werden in der JVM der Anwendung ausgeführt JavaBeans sind Komponenten, die über Zugriffsklassen verfügen
MehrVorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
MehrDas Interface-Konzept am Beispiel der Sprache Java
Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrDas Model View Controller (MVC) Konzept
Das Model View Controller (MVC) Konzept Ziel: Erhöhung der Flexibilität und Reduktion der Komplexität von GUI-Programmen durch Standard- Struktur (MVC-Pattern). Geht zurück auf Smalltalk. View 1 View 2
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
MehrObjektorientierte Programmierung II
Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem
MehrJavakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 07: Nebenläufigkeit Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in die Nebenläufigkeit und Java Thread Konzept: Motivation
MehrKapitel 8: Serialisierbarkeit
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 8: Serialisierbarkeit Folie 189 : Serialisierbarkeit Die Umwandlung eines komplexen Objektes in ein Byte-Array nennt
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
MehrJava Beans. Übersicht, Eigenschaftstypen, Heutiger Stand.
Java Beans Übersicht, Eigenschaftstypen, Heutiger Stand. 1 Definition Eine Bean ist eine wieder verwendbare Softwarekomponente basierend auf der JavaBeans-Spezifikation von Sun, die sich visuell mit einem
Mehr11. Komponenten Grundlagen der Programmierung 1 (Java)
11. Komponenten Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 10. Januar 2006 Einordnung im Kontext der Vorlesung
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Ausnahmebehandlung und Nebenläufigkeit 9. Vorlesung am 15. Dezember 2010 Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A
MehrJava Idioms. Basic und Advanced Java Coding Style. Prof. Dr. Nikolaus Wulff
Java Idioms Basic und Advanced Java Coding Style Prof. Dr. Nikolaus Wulff Java Idiome Operator == versus equals Methode equals und hashcode Vermeide NullPointer Java Konstruktoren Function Pointers, Interfaces
MehrModel-View-Controller. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1
Model-View-Controller Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Model View Controller (MVC) Architekturmuster für die Gestaltung von interaktiven Oberflächen 3 Komponenten Model: Datenmodell
MehrProgrammieren 1 09 Vererbung und Polymorphie
Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
MehrEnterprise JavaBeans Überblick
Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrInstrumentierung und Dekodierung
116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
MehrObjekt-orientierte Programmierung
Objekt-orientierte Programmierung Eine (sehr) kurze Einführung Daniel Lübke Gliederung Motivation Grundlagen (Objekte, Klassen, Vererbung) Interfaces Klassenvariablen
MehrKlassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object
Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
MehrKapitel 5: Interfaces
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
MehrHandbuch für die Erweiterbarkeit
Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/
MehrEinführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
MehrLaborskript Verteilte Systeme
Laborskript Verteilte Systeme Nebenläufigkeit in Java Prof. Dr. Oliver Haase 1 Threads Java bietet zwei verschiedene Arten an, Threads zu erzeugen und zu starten: Entweder durch Erweitern der Klasse Thread,
MehrJavaBeans Property-Editoren und Customizer
JavaBeans Property-Editoren und Customizer J. Heinzelreiter WS 2004/05 Property-Editoren Builder Tools beinhalten Standard-Editoren für Zahlen (ganze Zahlen, Gleitkommazahlen), Strings, Auswahl von Fonts,
MehrEinführung in die Programmierung I. 11. Vererbung. Stefan Zimmer
Einführung in die Programmierung I 11. Vererbung Stefan Zimmer 21.1.2008 Programmcode wiederverwenden Wenn wir einige Klassen geschrieben haben, werden wir dabei Teile davon öfters hingeschrieben haben
MehrII.4.5 Generische Datentypen - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
Mehr7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi
7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/
MehrObjektserialisierung
Objektserialisierung SEP 170 Serialisierung von Objekten Umwandlung des Objektzustandes in einen Strom von Bytes, aus dem eine Kopie des Objekts zurückgelesen werden kann. Serialisierung in Java einfacher
Mehr12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell
Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,
MehrProgrammieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik
Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrObjektorientierte Datenbanken
Objektorientierte Datenbanken Ralf Möller, FH-Wedel z Beim vorigen Mal: y Java Data Objects Teil 2, Queries z Heute: y Java Data Objects Teil 3, Objektidentität z Lernziele: y Grundlagen der Programmierung
MehrFunktionale und Objekt-Orientierte Programmierkonzepte
Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1
MehrJava Concurrency Utilities
Java Concurrency Utilities Java unterstützt seit Java 1.0 Multithreading Java unterstützt das Monitorkonzept mittels der Schlüsselworte synchronized und volatile sowie den java.lang.object Methoden wait(),
MehrPropädeutikum Programmierung in der Bioinformatik
Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen
MehrCreational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.
Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational
MehrEnterprise JavaBeans Überblick
Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.
MehrEin Vortrag im Rahmen des Wahlpflichtmoduls Fortgeschrittene Programmierung mit JAVA
Ein Vortrag im Rahmen des Wahlpflichtmoduls Fortgeschrittene Programmierung mit JAVA Themenspeicher Strukturen objektorientierter Programmierung (Wiederholung) Klassen und Vererbung Schnittstellen und
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrMethoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public
MehrSommersemester Implementierung I: Struktur
Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
Mehrparallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher.
Threads parallele Prozesse auf sequenziellen Prozessoren Prozesse und Threads Es gibt zwei unterschiedliche Programme: Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher. Ein Thread
MehrSilke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:
MehrTeil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
MehrInformatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze
Vorlesung 14 Serialisierung, Autoboxing 1 Serialisierung von Objekten Die Objekte innerhalb eines Java-Programmes sollen manchmal auch nach Beendigung der JVM verfügbar bleiben Objekte müssen ab und an
MehrII.4.2 Abstrakte Klassen und Interfaces - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrTag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrEclipse in der Java-Entwicklung
Patrick Kiwitter Eclipse in der Java-Entwicklung aktuell zur Version 3.4 ^Y '! I rwaddison-wesley An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney
MehrAnwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie
Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete
Grundlagen der Programmierung Prof. H. Mössenböck 15. Pakete Idee Paket = Sammlung zusammengehöriger Klassen (Bibliothek) Zweck mehr Ordnung in Programme bringen bessere Kontrolle der Zugriffsrechte (wer
MehrWiederholung. Klassenhierarchie:
Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrGeschachtelte Klassen
Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte
MehrTh. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen
Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrNebenläufige Programmierung in Java: Threads
Nebenläufige Programmierung in Java: Threads Wahlpflicht: Fortgeschrittene Programmierung in Java Jan Henke HAW Hamburg 10. Juni 2011 J. Henke (HAW) Threads 10. Juni 2011 1 / 18 Gliederung 1 Grundlagen
MehrInhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1
Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene Motivation Aufgabe: Finanzbuchhaltungssystem für internationale Hotelkette
MehrProgrammierkurs. SoSe Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
Programmierkurs SoSe 2013 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 5 Was machen wir heute hier? weiter mit Objektorientierter Programmierung viel
MehrUML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich
UML / Fujaba Generierung von Java-Quellcode aus UML-Diagrammen Marcel Friedrich Agenda Einleitung Struktur Verhalten Klassendiagramme Storydiagramme Statecharts Action methods 2 Thema Codegenerierung mit
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrInfo B VL 14: Java Collections/Reflections
Info B VL 14: Java Collections/Reflections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 14: Java Collections/Reflections
MehrAbstrakte Klassen, Interface. DVG Abstrakte Klassen, Interface
Abstrakte Klassen, Interface Beispiel: Vögel Definition von Klassen enthält Abstraktion von den konkreten Objekten. Z.B.: Klasse: Vogel Kann ein Objekt der Klasse Vogel instanziiert werden? Nein, es gibt
MehrThomas Sillmann. Swift im Detail HANSER
Thomas Sillmann Swift im Detail HANSER Inhalt 1 Apples neue Programmiersprache: Swift 1 1.1 Willkommen bei Swift! 1 1.2 Warum Swift? 1 1.3 Swift und Objective-C 2 1.4 Voraussetzungen für die Swift-Entwicklung
Mehr