spectj AOP mit Java, Konzepte und Beispiele
|
|
- Anke Frei
- vor 5 Jahren
- Abrufe
Transkript
1 A spectj AOP mit Java, Konzepte und Beispiele
2 AspectJ Ist eine Erweiterung von Java Ist eine aspektorientierte Sprache (wie Java eine objektorientierte Sprache ist) Ist frei verfügbar der Compiler ist Open Source Wird von gängigen IDE s unterstützt Eclipse, Emacs, JBuilder, Forte
3 I die Aspect J Grundlagen Idee, die Konzepte, die Sprache
4 Aspect J Grundlagen Aufbauend auf Java dynamic join points Punkte in der Ausführung eines Java-Programms Erweiterung von Java pointcuts Ist eine Beschreibung von join points Einfache pointcuts Benutzerdefinierte pointcuts advice Definiert Aktionen an join points aspect Eine modulare Einheit überschneidender Eigenschaften Enthält pointcuts, advice Felder, Konstruktoren und Methodendeklarationen
5 join points Schlüsselpunkte im Aufrufgraphen Methode wird aufgerufen und beendet oder wirft Exception CalcFront dispatch Methode wird aufgerufen und beendet oder wirft Exception Calculator Methode wird ausgeführt und beendet oder wirft Exception Methode wird ausgeführt und beendet oder wirft Exception dispatch
6 join points method call join points Calculator dispatch method execution join points Verschiedene Arten von join points Methoden & Konstruktor call join points Methoden & Konstruktor execution join points Felder get & set join points Exception handler join points statische & dynamische initialization join points
7 Einfache pointcuts Ein pointcut ist ein Ausdruck zum Beschreiben von join points, welcher: join points ein- oder ausschließt optional Werte aus join points herauszieht call(void Calculator.add(double, double)) Bezeichnet alle join points, die ein Methodenaufruf sind und genau diese Signatur haben.
8 Einfache pointcuts Um mehrere Signaturen zu erfassen, ist die Verwendung von Wildcards * für Namen und.. für Parameter erlaubt: call(void Calculator.*(..)) Bezeichnet alle join points, die ein Methodenaufruf zur Calculator- Klasse darstellen und eine beliebige Signatur haben.
9 Komposition von pointcuts pointcuts können mit den Operatoren &&, und! zu einem neuen pointcut zusammengefasst werden call(void Calculator.add(double, double)) call(void Calculator.sub(double, double)) Jeder Aufruf in der Calculator-Methoden void add(double, double) oder void sub(double, double)
10 Benutzerdefinierte pointcuts Benutzerdefinierte (benannte) pointcuts Können wie einfache pointcuts verwendet werden Werden durch das Schlüsselwort pointcut beschrieben Name Parameter pointcut calc(): call(void Calculator.add(double, double)) call(void Calculator.sub(double, double));
11 Pointcuts (Zusammenf.) Benutzerdefinierter pointcut pointcut move(): call(void Calculator.add(double, double)) call(void Calculator.sub(double, double)); Einfacher pointcut, wie z.b.: - call, execution - this, target, args - get, set - within, withincode - handler - cflow, cflowbelow - initialization, staticinitialization
12 Ein advice ist eine zusätzliche Aktion, die an einem joinpoint ausgeführt wird. Mögliche Advices (Auswahl) before vor dem joinpoint after returning after throwing after wenn ein Wert am joinpoint zurückgegeben wird wenn eine Exception innerhalb ausgelöst wird Rückkehr aus vom joinpoint, egal wie around am joinpoint, mit expliziter Kontrolle über diesen
13 after advice after advice läuft auf dem Rückweg Calculator pointcut calc(): call(void Calculator.add(double, double)) call(void Calculator.sub(double, double)); after(): calc() { <Code hier läuft nach jeder Berechnung>
14 Ein einfacher Aspekt Ein Aspekt definiert eine spezielle Klasse, die andere Klassen überschneiden kann. aspect DisplayUpdating { pointcut calc(): call(void Calculator.add(double, double) call(void Calculator.sub(double, double)); after() : calc() { Display.update();
15 Der Verwebungsvorgang Java-Klassen oder Binary AspectJ- Aspekte AspectJ-Compiler (ajc) Java-Binary
16 II Statische Beispiele Invarianten Tracing und Logging
17 Ein Calculator package Calculator; public class CalculatorClass { double _op1; double _op2; Public class CalculatorFront {... CalculatorClass calc =new CalculatorClass(); double result = 0;... public CalculatorClass() { public void setop1(double op) { _op1=op; public void setop2(double op) { _op2=op; public double add() { return _op1 + _op2; public double sub() { return _op1 - _op2; input=readstring(); calc.setop1(double.parsedouble(input));... input=readstring(); calc.setop2(double.parsedouble(input));... if(currop.equals("+")) { result = calc.add(); else if(currop.equals("-")) { result = calc.sub();...
18 Statische Invarianten Überprüfen durch einen Aspekt, dass die Calculator-Komponente ordnungsgemäß verwendet wird Werden die Operanden durch Setter- Methoden gesetzt?
19 Lösung package Calculator; import org.aspectj.lang.*; public aspect BadFieldSet { declare error : set(* *) &&!withincode(* set*(..)) && within(calculator.*) : "bad field set";
20 Tracing Um den Programmfluss zu evaluieren, soll jeder Zugriff auf die Calculator- Komponente Protokolliert werden Es soll eine Ausgabe auf der Konsole erfolgen
21 Lösung cont. package Calculator; import org.aspectj.lang.*; public aspect tracing { // all return values, all packages, only CalculatorClass, all methods, all arguments pointcut TraceMethod(): execution(* *.CalculatorClass.*(..)); before(): TraceMethod() { System.out.println("enter " + thisjoinpoint.getsignature()+" "+GetParameters(thisJoinPoint)); after(): TraceMethod() { System.out.println("leave " + thisjoinpoint.getsignature());
22 Lösung static private String GetParameters(JoinPoint jp) { StringBuffer buf = new StringBuffer(); // Reflective access to join point parameters below Object[] args = jp.getargs(); buf.append("("); // If there are any arguments, print them if (args.length > 0) { // Go through the arguments and add them to the StringBuffer for (int i = 0; i < args.length; i++) { if(i>0) buf.append(", "); buf.append(args[i]); // Log the contents of buf buf.append(")"); return buf.tostring();
23 Zusammenfassung Aspect J sehr verbreiteter Aspektweber für Java Pointcuts und Advices sind ein leistungsfähiger Mechanismus zum einweben von Aspektcode Aber durch syntaktische Beschreibung vor allem mit Wildcards auch Gefahr der Unübersichtlichkeit
Aspekt Orientierte Programmierung
Kapitel 13 Aspekt Orientierte Programmierung 13.1 Aspekte in Apache Wir betrachten den Quellcode des Apache-Servers: Der Code zum XML-Parsen steckt in einer eigenen Klasse (rot) Quelle: aspectj.org 0 ausgearbeitet
MehrHauptseminar AOSD. Aspektorientierte Programmierung am Beispiel AspectJ
Hauptseminar AOSD Aspektorientierte Programmierung am Beispiel Seite 1 Aspektorientierte Programmierung Umfeld - eine Definition Elemente in Introduction Pointcut Join Point Advice Aspect Errors and Warnings
MehrEinführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung
Einführung in AOP Informatikseminar Rico Schiekel - 012816 rschiekel@web.de Fachhochschule Ravensburg Weingarten Hochschule für Technik und Sozialwesen Einführung in AOP Agenda Kernproblem der Objekt Orientierung
MehrAspekt-orientierte Programmierung
1/100 Aspekt-orientierte Programmierung Andreas Zeller Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken Separation der Interessen 2/100 Die Separation der Interessen (separation of concerns)
MehrAspektorientierte Programmierung
Aspektorientierte Programmierung Programmierparadigma AspectJ separation of concerns Modularisierung Aspekte kapseln Verhalten das mehrere Klassen betrifft Objektorientierte Programmiertechniken: Aspektorientiertheit,
MehrOOP. Tagesprogramm. Aspektorientierte Programmierung. Annotationen
1 2014-12-03 Tagesprogramm Aspektorientierte Programmierung Annotationen 2 Aspektorientierte Programmierung Programmierparadigma AspectJ separation of concerns Modularisierung Aspekte kapseln Verhalten
Mehr1 Motivation und Einleitung
AspectJ - AOP für Java Georg Blaschke (georg.blaschke@stud.informatik.uni-erlangen.de) Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Betriebssysteme und Verteilte Systeme 3. Mai 2003
MehrAspekt-orientierte Programmierung
Aspekt-orientierte Programmierung Andreas Zeller Lehrstuhl für Softwaretechnik Universität des Saarlandes, Saarbrücken 2006-01-09 Separation der Interessen Die Separation der Interessen (separation of
MehrAOP Day 07. eine Veranstaltung der SIG AspectJ. organisiert vom AOP-Komitee. und der guten Fee. powered by. Oliver Böhm Darko Palic Ludger Solbach
AOP Day 07 eine Veranstaltung der SIG AspectJ organisiert vom AOP-Komitee Oliver Böhm Darko Palic Ludger Solbach und der guten Fee Bori Gerhardt powered by Historisches (1) Dez. 2005: AspectJ Winter Camp
MehrRekonfiguration durch dynamische aspektorientierte Programmierung
Rekonfiguration durch dynamische aspektorientierte Programmierung Martin Gumbrecht 13. Juni 2014 Motivation Dynamische Rekonfiguration von Softwaresystemen Fehlerbehebung, Sicherheitsaktualisierungen,
MehrProgrammentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
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,
MehrSW-Archäologie mit AOP (Praxisbericht)
SW-Archäologie mit AOP (Praxisbericht) Ausgrabungen vergangener SW-Architekturen 9. Workshop SW-Reengineering Bad Honnef Mail 2007 Oliver.Boehm@agentes.de agentes AG 2006 Aktionäre Pironet NDH AG (Hauptaktionär)
MehrEinführung in die Aspect Orientierte Programmierung (AOP) Arno Schmidmeier, AspectSoft JUGS Zürich, Januar 2003
Einführung in die Aspect Orientierte Programmierung (AOP) Arno Schmidmeier, AspectSoft JUGS Zürich, Januar 2003 Inhalt AOP Einführung Meine Erfahrungen Fragen und Antworten AOP Einführung Arno Schmidmeier
MehrSW-Archäologie mit AspectJ
SW-Archäologie mit AspectJ Ausgrabungen vergangener SW-Architekturen Java Forum Stuttgart 2015 oliver.boehm@aosd.de 1 Agenda. 1.0 2.0 3.0 4.0 5.0 Die klassische Herangehensweise Ein kleiner Ausflug mit
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
MehrAdvanced Software Engineering WS0910 Kapitel4. Dr. Dominik Haneberg
Advanced Software Engineering WS0910 Kapitel4 Dr. Dominik Haneberg ASPEKT-ORIENTIERTE ENTWICKLUNG 08.02.2010 Advanced Software Engineering 2 Einführung Aspektorientierte Programmierung (AOP) ist ein Programmierparadigma,
Mehr2. Unterprogramme und Methoden
2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf
MehrAOP by Examples. JavaLand, 25. März 2015, Oliver Böhm. Photo from
AOP by Examples JavaLand, 25. März 2015, Oliver Böhm Photo from http://www.ukaop.org.uk/ 1 Wie alles begann U.S. Army Photo 1960 1980 2000 Assembler 1960 1980 2000 FORTRAN COBOL C Assembler 1960 1980 2000
MehrDynamisches Aspektweben in C und C++: DAO C++ und µdyner
Aspektorientierte Programmierung Dynamisches Aspektweben in C und C++: DAO C++ und µdyner Referent: André Zweschke Referent: André Zweschke 1 Inhalt 1. Motivation: Web-Caches 2. Dynamic Aspect Oriented
Mehrn 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen
n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 -
MehrCoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
MehrJava Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017
Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java
MehrProgrammierkurs. Manfred Jackel
Java für Anfänger Teil 7: Methoden Programmierkurs 06.-10.10.2008 Manfred Jackel 1 Methoden In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. [Oft benötigter]
MehrPolymorphie. Überladen. Definition Methodennamen überladen Konstruktoren überladen Operatoren überladen Beispiele. Dr.
Polymorphie Überladen Definition Methodennamen überladen Konstruktoren überladen Operatoren überladen Beispiele Dr. Beatrice Amrhein Definition 2 Definition: Überladen (von Namen) Überladen bedeutet, dass
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
MehrParameterübergabemechanismen für den Methodenaufruf
Methode, griech. der Weg zu etwas, planmäßiges Verfahren -Brockhaus Parameterübergabemechanismen für den Methodenaufruf Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
MehrDie abstrakte Klasse Expression:
Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die
MehrAspektorientierte Programmierung (aspect-oriented programming, AOP)
Aspektorientierte Programmierung (aspect-oriented programming, AOP) Abstract Die aspektorientierte Programmierung ist ein neues Programmierparadigma, das die Probleme und Nachteile, die aus der prozeduralen
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
MehrBeuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1
Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode
Mehr19. Vererbung und Polymorphie
667 19. Vererbung und Polymorphie Ausdrucksbäume, Vererbung, Code-Wiederverwendung, virtuelle Funktionen, Polymorphie, Konzepte des objektorientierten Programmierens (Ausdrucks-)Bäume -(3-(4-5))*(3+4*5)/6
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
MehrII.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrInformatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017
1 Informatik II Übung 6 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 Heutiges Programm 2 1 Klassen - Technisch 2 Prediscussion
MehrInformatik II. Woche 13, Giuseppe Accaputo
Informatik II Woche 13, 30.03.2017 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Nachbesprechung Self-Assessment Test Nachbesprechung Übung 5 Java: Objektorientierte Programmierung Klassen und Objekte
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrAusnahmen (Exceptions)
Ausnahmen (Exceptions) Herkömmliche Fehlerbehandlung Jede Methode liefert einen Fehlercode int result; result = p(); if (result == ok) { result = q(); if (result == ok) { result = r(); if (result == ok)
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 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,
MehrKonstruktor/Destruktor
1/23 Konstruktor/Destruktor Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 3/23 Inhaltsverzeichnis 1 2
MehrJava für Anfänger Teil 7: Methoden. Programmierkurs Manfred Jackel
Java für Anfänger Teil 7: Methoden Programmierkurs 11.-15.10.2010 Manfred Jackel 1 Methoden In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. [Oft benötigter]
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrInformatik II Übung 5 Gruppe 3
Informatik II Übung 5 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 5 Leyna Sadamori 29. März 2017 1 Administrativ Die Übung am 5. April fällt aus! Bitte in die Übung in HG G 3
Mehr7. Objektorientierung. Informatik II für Verkehrsingenieure
7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete
MehrII.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
Mehr7. Vererbung und Polymorphie
210 7. Vererbung und Polymorphie Ausdrucksbäume, Vererbung, Code-Wiederverwendung, virtuelle Funktionen, Polymorphie, Konzepte des objektorientierten Programmierens (Ausdrucks-)Bäume -(3-(4-5))*(3+4*5)/6
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
MehrDas Ersetzbarkeitsprinzip
Das Ersetzbarkeitsprinzip U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Dieses Ersetzbarkeitsprinzip benötigt man für den Aufruf einer Routine
Mehr13. Java Klassen. Lernziele. Klassen - Technisch. Definition: Klassen
Lernziele Sie können eigene Klassen/Datentypen erstellen. Sie verstehen, wie Objekte von Klassen instanziert und verwendet werden. Sie kennen den Begriff der Datenkapselung und können dies anwenden. 13.
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrProgrammieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik
Programmieren I Fehlerbehandlung Exceptions Heusch 2. Bd, 3 Ratz 10 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Exceptions und ihre Behandlung Exception - Ausnahmebedingung
Mehr19. Vererbung und Polymorphie
(Ausdrucks-)Bäume 19. Vererbung und Polymorphie Ausdrucksbäume, Vererbung, Code-Wiederverwendung, virtuelle Funktionen, Polymorphie, Konzepte des objektorientierten Programmierens -(3-(4-5))*(3+4*5)/6
Mehr18. Vererbung und Polymorphie
617 18. Vererbung und Polymorphie Ausdrucksbäume, Vererbung, Code-Wiederverwendung, virtuelle Funktionen, Polymorphie, Konzepte des objektorientierten Programmierens (Ausdrucks-)Bäume -(3-(4-5))*(3+4*5)/6
MehrDie Klasse java.lang.object. Thorsten Treffer
Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:
MehrInstitut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
MehrÜbungen zu Middleware Universität Erlangen-Nürnberg Informatik 4, 2007 Z-Java-Exceptions.fm
Z.11Fehlerbehandlung Programm beenden (System.exit()) meist eine schlechte Idee Ausgabe einer Fehlermeldung hilft nicht den Fehler zu überwinden spezieller Rückgabewert kennzeichnet Fehler Konstruktoren
MehrKlassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
MehrErsetzbarkeit und Verhalten
Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
MehrAnweisungen zur Ablaufsteuerung
Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden
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
Mehr18. Vererbung und Polymorphie
590 18. Vererbung und Polymorphie Ausdrucksbäume, Vererbung, Code-Wiederverwendung, virtuelle Funktionen, Polymorphie, Konzepte des objektorientierten Programmierens (Ausdrucks-)Bäume 591 -(3-(4-5))*(3+4*5)/6
Mehr14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch
Klassen (Java) vs. Records (Pascal) 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Pascal RECORDs in Pascal sind reine
MehrII.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner
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
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration
MehrGrundlagen der Objektorientierten Programmierung - Methoden -
Methoden In ihrem formalen Aufbau entsprechen Java-Methoden den Funktionen in C und C++. Eine Methode dient dazu, eine häufig benötigte Folge von Anweisungen unter einem Namen zusammenzufassen und zum
MehrC# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services
C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften
MehrKapitel Was ist ein Header? Was ist ein Body? Header: public Account(String newowner, int newpin)
Kapitel 2.6 1. Was ist ein Header? Was ist ein Body? Header: public Account(String newowner, int newpin) Body: Alles im Block darunter: [...] 2. Geben Sie die Methodensignaturen der TicketMachine (Code
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
Mehr14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung
275 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Klassen (Java) vs. Records (Pascal) 276 Pascal RECORDs in Pascal sind
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
MehrMarcus Deininger / Thomas Kessel. Brückenkurs Java. Lösungen. UVK Verlagsgesellschaft mbh Konstanz mit UVK/Lucius München
Marcus Deininger / Thomas Kessel Brückenkurs Java Lösungen UVK Verlagsgesellschaft mbh Konstanz mit UVK/Lucius München Brückenkurs Java: Lösungen 2 1 Einführung 1. Welche Versionen von Java gibt es? Java
MehrExceptions - Klausuraufgaben
Exceptions - Klausuraufgaben (1.) Exception ist.! (a.) eine Klasse (b.) eine Schnittstelle (c.) abstrakte Klasse (d.) Keines davon (2.) Exception is in dem Java Package! (a.) java.lang (b.) java.util (c.)
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
MehrGrundlagen. Übungen. Klassen, Attribute, Assoziationen, Methoden. Grundlagen_Klassen_Attribute_Assoziationen_Methoden.odt. Christine Janischek
Grundlagen Übungen Modulname: Klassen, Attribute, Assoziationen, Methoden Stand: 28. Nov 2016 Christine Janischek Berufliches Schulzentrum Wangen Seite 1 von 11 Inhaltsverzeichnis 1 Grundlagen...3 1.1
MehrTeil 2: Weitere Aspekte der Objektorientierung
Teil 2: Weitere Aspekte der Objektorientierung Klassenvariablen So wie es Instanzvariablen gibt, die zu einer gewissen Instanz (Objekt) gehören und deren Attribute speichern, so gibt es aus Klassenvariablen:
MehrStatische und Nichtstatische Methoden Properties/ Eigenschaften
Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische
MehrVorlesung 10. Sitzung Grundlegende Programmiertechniken
Vorlesung 10. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Grundlegende Programmiertechniken, WS 2007/2008 Objektorientierte
MehrTücken der dynamischen Bindung
Kapitel 3 Tücken der dynamischen Bindung 3.1 this-pointer Im Methodenaufruf o.m(x) ist o Bezugsobjekt wird als zusätzlicher Parameter übergeben: m(o,x) kann im Rumpf von m als this (bzw self) angesprochen
Mehr1 Einleitung Generizität Syntax... 2
Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 1.1 Generizität................................ 1 1.2 Syntax.................................. 2 2 Realisierung 2 2.1 Compilierung generischer Klassen...................
MehrMeta Programming and Reflection in Java
Meta Programming and Reflection in Java Overview instanceof operator Java Annotations Java Reflection instanceof operator vergleicht ein Objekt mit einem bestimmten Typ testet ob ein Objekt ist eine Instanz
MehrGeoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)
Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA) Ergebnisse teilgenommen: 73 nicht bestanden: 22 bestanden: 51 davon 4er: 12 davon 3er: 18 davon 2er: 15 davon 1er: 6 Aufgabe 1: Tracing 4 Punkte
MehrKapitel 10. Verweise und Referenzen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 10 Verweise und Referenzen Inhalt von Kapitel 10 Verweise und Referenzen 10.1 Das Schlüsselwort this Definition Verwendungszweck Klassenmethoden EINSCHUB: Musterlösung zu Übung 4.1 10.2 Objektreferenzen
MehrDelegaten. d. h. eine Tätigkeitsanforderung wird weitergeleitet
Einführung Delegaten delegate ist ein Objekt, das delegiert == weiterleitet d. h. eine Tätigkeitsanforderung wird weitergeleitet - Weiterleitung erfolgt an eine Funktion - diese Funktion(en) wurde dem
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
MehrDr. Monika Meiler. Inhalt
Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer
MehrEinführung in die prozedurale und objektorientierte Programmierung (3)
Abteilung für Wirtschaftsinformatik Einführung in die prozedurale und objektorientierte Programmierung (3) Ausnahmen (Exceptions), Referenzen, Direktiven (::routine, ::requires) Prof. Dr. Rony G. Flatscher
MehrJava Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
MehrFeature-Komposition auf Bytecode-Ebene
Feature-Komposition auf Bytecode-Ebene Claus Hunsen Sergiy Kolesnikov Sven Apel FOSD-Treffen 2012 Feature-Komposition Quellcode-Komposition Feature-Module (Quellcode) ➊ Komposition Variante (Quellcode)
Mehr