5.5.8 Öffentliche und private Eigenschaften
|
|
- Stefanie Gehrig
- vor 8 Jahren
- Abrufe
Transkript
1 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung sichtbar wird. Die Schnittstelle könnte folgende Informationen enthalten: Name der Klasse Allgemeine Beschreibung des Zwecks der Klasse Liste der Konstruktoren und Methoden der Klasse Parameter und Ergebnistyp für jeden Konstruktor und jede Methode Beschreibung des Zwecks jedes Konstruktors und jeder Methode Schnittstelle = Abstraktion einer Klasse. Ein Programmierer soll Klassen benutzen können, ohne den Quelltext gesehen zu haben Implementierung einer Klasse bezeichnet den kompletten Quellcode, der die Klasse definiert 63
2 5.5.8 Öffentliche und private Eigenschaften Zugriffsmodifikatoren: definieren die Sichtbarkeit eines Datenfeldes, eines Konstruktors und einer Methode Öffentliche (public) Elemente sind sowohl innerhalb der definierenden Klasse als auch von anderen Klassen aus zugreifbar Private (private) Elemente sind ausschließlich innerhalb der definierenden Klasse zugreifbar Unterscheidung von Schnittestelle und Implementierung: Schlüsselwort public deklariert ein Element einer Klassendefinition (Datenfeld / Methode) als Teil der Schnittstelle (öffentlich sichtbar) Schlüsselwort private deklariert es als Teil der Implementierung (verbogen für den Zugriff von außen) 64
3 5.5.8 Öffentliche und private Eigenschaften public class Konto { private int nummer; private String inhaber; private int kontostand; public Konto(int neuenummer, String name) { public Konto(int neuenummer, String name, int betrag) { public int getkontostand() { public void kontostanddrucken() { public void einzahlen(int betrag) { public void einzahlen(int betrag, int gebuehr) { public void abheben(int betrag) { public void ueberweisen(konto empfaenger, int betrag) { 65
4 5.5.8 Öffentliche und private Eigenschaften Information Hiding (das Geheimnisprinzip): Die internen Details der Implementierung einer Klasse sollten vor anderen Klassen (Benutzern) verbogen sein. Dies unterstützt eine bessere Modularisierung von Anwendungen. Ein die Klasse benutzender Programmierer sollte keine Informationen über den internen Aufbau der Klasse benötigen (unmittelbare Konsequenzen des Grundgedankens der Abstraktion und Modularisierung) Es sollte ihm nicht erlaubt sein, diese internen Details zu kennen (Wartung; Kopplung) 66
5 5.5.8 Öffentliche und private Eigenschaften Beispiel: Klasse Datum Datenfelder nach außen geschützt und Zugriff nur über Methoden Vorteil: Veränderbarkeit der Details Neue Implementierung der Klasse soll Datum anders speichern, z.b. als Anzahl der Tage seit Die Schnittestelle aller Methoden bleiben unverändert. Alle Programme können unverändert die neue Version der Klasse Datum benutzen. Datenfelder: private int tag private int monat private int jahr Konstruktoren: Datum(int, int, int) Methoden: public int gettag() public int getmonat() public int getjahr() public boolean istschaltjahr() public void settag(int) public void setmonat(int) public void setjahr(int) 67
6 5.5.8 Öffentliche und private Eigenschaften Idealerweise soll eine Änderung in der Implementierung einer Klasse keine Änderung in anderen benutzenden Klassen erforderlich machen Kopplung: Wenn eine Änderung an einer Stelle des Programms keine Änderungen an anderen Stellen impliziert, dann wird dies schwache oder lose Kopplung genannt Achtung: Die Regel keine Kenntnisse über Interna erlauben bezieht sich nicht auf den Programmierer einer benutzenden Klasse, sondern auf die benutzende Klasse selbst. Der Programmierer der beiden beteiligten Klassen kann sogar derselbe sein, aber die Klassen sollten lose gekoppelt sein. 68
7 5.5.8 Öffentliche und private Eigenschaften public private Datenfelder erlaubt, unäublich Regelfall Met hoden Service nach au¼en int erner Gebrauch In Java können auch Datenfelder öffentlich deklariert werden. Dies bricht allerdings mit dem Geheimnisprinzip schlechter Still, kein Gebrauch empfohlen. Einige andere objektorientierte Programmiersprachen erlauben keine öffentlichen Datenfelder! Datenfelder von Klassen sollten immer privat sein 69
8 5.5.9 Statische Variablen und Methoden Klassenvariablen (auch statische Variablen genannt) sind Datenfelder einer Klasse, von denen immer nur ein Exemplar in der Klasse selbst, nicht aber in den erzeugten Objekten, existiert. Dies unterscheidet sie fundamental von den Instanzvariablen (bisher Datenfelder genannt). Beispiel: public class Konto { // Klassenfelder static int aktuellerzinssatz = 3; static int aktuellekontonummer; // Objektfelder int nummer; String inhaber; int kontostand = 0; Klassen- und Objektfelder können initialisiert werden 70
9 5.5.9 Statische Variablen und Methoden Objekte derselben Klassen benutzen gemeinsam die Klassenvariablen Manche Felder sollten aus Effizienzgründen nicht in jedem Objekt gespeichert werden; Bsp. aktuellerzinssatz Manche Felder können gar nicht in jedem Objekt gespeichert werden; Bsp. aktuellekontonummer Klasse: Konto aktuellerzinssatz 3 aktuellerkontonummer Konto1 nummer: inhaber: xxx kontostand: 1000 Konto2 nummer: inhaber: yyy kontostand: Konto3 nummer: inhaber: zzz kontostand:
10 5.5.9 Statische Variablen und Methoden public class Konto { // Klassenfelder static int aktuellerzinssatz = 3; static int aktuellekontonummer; public Konto(String name) { inhaber = name; kontostand = 0; nummer = aktuellekontonummer; aktuellekontonummer++; // Objektfelder int nummer; String inhaber; int kontostand; automatisch die nächste freie Kontonummer vergeben aktuelle Kontonummer um 1 erhöhen 72
11 5.5.9 Statische Variablen und Methoden Quiz: Es gibt einen weiteren gewichtigen Grund, warum Daten wie der aktuelle Zinssatz nicht als Objektfelder, sondern als Klassenfelder, definiert werden sollen. Was ist es? Klasse: Konto aktuellerkontonummer Konto1 nummer: inhaber: xxx zinssatz: 3 kontostand: 1000 Konto2 nummer: inhaber: yyy zinssatz: 3 kontostand: Konto3 nummer: inhaber: zzz zinssatz: 3 kontostand:
12 5.5.9 Statische Variablen und Methoden Alle bisher betrachteten Methoden sind Instanzmethoden: Sie werden an einer Instanz einer Klasse aufgerufen. Im Gegensatz dazu können Klassenmethoden (mit static zu definieren) ohne eine Instanz aufgerufen werden; die Klasse selbst reicht aus. Klassenmethoden gehören zu einer Klasse, nicht zu deren Instanzen Verarbeitung von Klassenvariablen; Bsp. getzinssatz, setzinssatz Allgemeine Methoden implementieren, die unabhängig vom aufrufenden Objekt sind; Bsp. printagb (Drucken von AGB) 74
13 5.5.9 Statische Variablen und Methoden public class Konto { static int aktuellerzinssatz = 3; // Klassenmethoden static int getzinssatz() { return aktuellerzinssatz; static void setzinssatz(int zinssatz) { aktuellerzinssatz = zinssatz; 75
14 5.5.9 Statische Variablen und Methoden Klassenname reicht zum Aufruf von Klassenmethoden aus Kann auch von einem Objekt aus aufgerufen werden 76
15 5.5.9 Statische Variablen und Methoden Einschränkungen für Klassenmethoden: Klassenmethoden sind mit einer Klasse statt mit Instanzen verknüpft Eine Klassenmethode kann nur auf die statischen Klassenfelder, aber nicht auf die Instanzvariablen zugreifen, die innerhalb der Klasse definiert sind (Instanzvariablen sind mit Instanzen verknüpft) Eine Klassenmethode kann nur die anderen Klassenmethoden, aber keine Instanzmethoden ihrer Klasse aufrufen 77
16 5.5.9 Statische Variablen und Methoden 78
17 Konstanten Häufig werden Konstanten benötigt. Diese sind ähnlich wie Variablen, können aber ihren Wert während der Ausführung nicht mehr ändern. In Java werden Konstanten mit final definiert. Konstanten müssen initialisiert werden können auf verschiedenen Ebenen verwendet werden public class X { static final double EineKlassenVariable = ; private final int EineInstanzVariable = 10; public void EineInstanzMethode() { final int EineLokaleVariable = 200; 79
18 5.6 Objektinteraktion Bisher: Definition einzelner Klassen (Datenfelder, Konstruktoren, Methoden). Für die Realisierung interessanter Anwendungen müssen wir viele Klassen definieren. Instanzen dieser Klassen werden erzeugt, die dann miteinander kommunizieren, um eine Aufgabe zu lösen. Beispiel: Aus Klassen (Kreis, Quadrat, Dreieck) des Projektes Figuren eine Klasse Zeichner realisieren, die z.b. die idyllische Szene zu zeichnet 80
19 5.6 Objektinteraktion public class Zeichner { private Quadrat wand; private Quadrat fenster; private Dreieck dach; private Kreis sonne; // Erzeuge ein Exemplar der Klasse Zeichner public Zeichner() { // nichts zu tun hier, alle Exemplarvariablen werden automatisch // mit null initialisiert 81
20 5.6 Objektinteraktion public void zeichnehaus() { wand = new Quadrat(); wand.vertikalbewegen(80); wand.groesseaendern(100); wand.sichtbarmachen(); fenster = new Quadrat(); fenster.farbeaendern("schwarz"); fenster.horizontalbewegen(20); fenster.vertikalbewegen(100); fenster.sichtbarmachen(); dach = new Dreieck(); dach.groesseaendern(50, 140); dach.horizontalbewegen(60); dach.vertikalbewegen(70); dach.sichtbarmachen(); sonne = new Kreis(); sonne.farbeaendern("gelb"); sonne.horizontalbewegen(180); sonne.vertikalbewegen(-10); sonne.groesseaendern(60); sonne.sichtbarmachen(); 82
21 5.6 Objektinteraktion public void inschwarzweissaendern() { // Ändere die Darstellung in schwarzweiß if (wand!= null) { // nur wenn schon gezeichnet wurde... wand.farbeaendern("schwarz"); fenster.farbeaendern("weiss"); dach.farbeaendern("schwarz"); sonne.farbeaendern("schwarz"); public void infarbeaendern() { // Ändere die Darstellung in Farbe if (wand!= null) { // nur wenn schon gezeichnet wurde... wand.farbeaendern("rot"); fenster.farbeaendern("schwarz"); dach.farbeaendern("gruen"); sonne.farbeaendern("gelb"); 83
22 5.6 Objektinteraktion Erzeugen von Objekten: Methodenaufruf: Variable = new Konstruktor (Parameterliste) Interne Methodenaufruf: Methoden aus derselben Klasse des aufrufenden Objektes Methodenname (Parameterliste) Externe Methodenaufruf: Methoden aus einer anderen Klasse Objekt.Methodenname (Parameterliste) 84
23 5.6 Objektinteraktion Beispiel: Anzeige einer Digitaluhr in Std. und Min. getrennt durch : Modularisierung: Prozess der Zerlegung eines Ganzen in wohl definierte Teile, die getrennt erstellt und untersucht werden können und die in wohl definierter Weise interagieren Anzeige einer Digitaluhr = Ziffernpaar : Ziffernpaar Ziffernpaar für Stunden: Startet bei null, wird jede Stunde ums eins erhöht und springt auf null zurück, wenn 23 überschritten wird Ziffernpaar für Minuten: Startet bei null, wird jede Minute ums eins erhöht und springt auf null zurück, wenn 59 überschritten wird Diese Ähnlichkeit führt dazu, von ihren Unterschieden zu abstrahieren Objekte, die die Werte von null bis zu einem bestimmten Wert anzeigen 85
24 5.6 Objektinteraktion public class Uhrenanzeige { private Nummernanzeige stunden; private Nummernanzeige minuten; public class Nummernanzeige { private int limit; private int wert; 86
25 5.6 Objektinteraktion public class Nummernanzeige { private int limit; private int wert; public Nummernanzeige (int anzeigelimit) { limit = anzeigelimit; wert = 0; public int gibwert() { return wert; public String gibanzeigewert() { if (wert < 10) return "0" + wert; else return "" + wert; Verkettung von Zeichenketten public void setzewert(int ersatzwert) { if ((ersatzwert >= 0) && (ersatzwert < limit)) wert = ersatzwert; public void erhoehen() { wert = (wert + 1) % limit; Modulo-Operator 87
26 5.6 Objektinteraktion public class Uhrenanzeige { private Nummernanzeige stunden; private Nummernanzeige minuten; private String zeitanzeige; public Uhrenanzeige() { stunden = new Nummernanzeige(24); minuten = new Nummernanzeige(60); anzeigeaktualisieren(); public Uhrenanzeige(int stunde, int minute) { stunden = new Nummernanzeige(24); minuten = new Nummernanzeige(60); setzeuhrzeit(stunde, minute); public void setzeuhrzeit(int stunde, int minute) { stunden.setzewert(stunde); minuten.setzewert(minute); anzeigeaktualisieren(); public void taktsignalgeben() { minuten.erhoehen(); if (minuten.gibwert() == 0) { stunden.erhoehen(); anzeigeaktualisieren(); public String gibuhrzeit() { return zeitanzeige; private void anzeigeaktualisieren() { zeitanzeige = stunden.gibanzeigewert() + ":" + minuten.gibanzeigewert(); System.out.println(zeitanzeige); 88
27 5.6 Objektinteraktion public class Uhrenanzeige { private Nummernanzeige stunden; private Nummernanzeige minuten; public void taktsignalgeben() { minuten.erhoehen(); if (minuten.gibwert() == 0) { stunden.erhoehen(); anzeigeaktualisieren(); externe Methodenaufruf interne Methodenaufruf 89
28 5.6 Objektinteraktion public class Nummernanzeige { private int limit; private int wert; public Nummernanzeige(int anzeigelimit) { limit = anzeigelimit; wert = 0; public Nummernanzeige(int limit) { this.limit = limit ; wert = 0; Der Name limit ist überladen derselbe Name wird für zwei verschiedene Dinge verwendet 90
29 5.6 Objektinteraktion Im Konstruktor Nummernanzeige() lautet einer der Parameter limit, genau so wie das Datenfeld limit der Klasse Nummernanzeige. Wie kann man auf das Klassenfeld limit zugreifen? Java spezifiziert, dass immer die Definition des nächsten umschließenden Blocks verwendet wird Das Schlüsselwort this bezieht sich aus das aktuelle Objekt. Dieses Konstrukt gibt somit die Möglichkeit, statt auf einen Parameter auf ein Klassenfeld mit gleichem Namen zuzugreifen. Nutzen: Das Schlüsselwort this lässt sich problemlos durch eine eindeutige Namensgebung vermeiden. Manchmal gibt es allerdings Namen, die die Bedeutung einer Variablen perfekt beschreiben. 91
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Mehr5.4 Klassen und Objekte
5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
MehrProgrammieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrStudentische Lösung zum Übungsblatt Nr. 7
Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrSichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben
Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE22-NutzungVonKlassen (Stand 28.09.2012) Aufgabe 1: Entwickeln Sie in Eclipse auf der Basis der vorgestellten Java-GUI-Klassen ein Java- Programm, das
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
MehrBEISPIELKLAUSUR Softwareentwicklung:
Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte
MehrBrowsereinstellungen für moneycheck24 in Explorer unter Windows
Browsereinstellungen für moneycheck24 in Explorer unter Windows Wichtige Einstellungen im + Um zu prüfen, welche Version Sie nutzen Einstellungen: Klicken Sie im Menü INTERNETOPTIONEN Extras [oder Tastenkürzel
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
Mehr5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrMORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH
MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrGraphic Coding. Klausur. 9. Februar 2007. Kurs A
Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrGrundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen
Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrREFLEX Zeiterfassung
REFLEX Zeiterfassung Inhalt 1.1 ZEITERFASSUNG MIT REFLEX 2 1.1.1 Allgemeines 2 1.1.2 Übersicht 2 1.1.3 Andere Person auswählen 2 1.1.4 Erfassen von Zeiten 3 1.1.5 Eingabefelder bei der Erfassung 4 1.1.6
MehrProgrammierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
MehrHandbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen
Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen Dateiname: ecdl_p3_02_03_documentation.doc Speicherdatum: 08.12.2004 ECDL 2003 Professional Modul
MehrVorbereitung auf die SEPA-Umstellung
Vorbereitung auf die SEPA-Umstellung Um den SEPA-Beitragseinzug durchzuführen, benötigen Sie eine Gläubiger Identifikationsnummer. Diese Gläubiger Identifikationsnummer können Sie in Deutschland bei der
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
Mehr5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
MehrInstitut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
MehrDatenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
MehrTragen Sie bitte im Anmeldefeld die Daten ein, die Sie von uns erhalten haben.
Online Katalog der Bildstelle Peine: http://nds-pe.datenbank-bildungsmedien.net/ Anmeldung: Klicken Sie bitte auf ganz rechts. Tragen Sie bitte im Anmeldefeld die Daten ein, die Sie von uns erhalten haben.
MehrAnton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag
Anton Ochsenkühn amac BUCH VERLAG Ecxel 2016 für Mac amac-buch Verlag 2 Word-Dokumentenkatalog! Zudem können unterhalb von Neu noch Zuletzt verwendet eingeblendet werden. Damit hat der Anwender einen sehr
MehrSoftware Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
MehrVIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden
VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:
MehrTestklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten
Matrikelnummer: Punkte: Testklausur 1 zur Vorlesung Modellierung und Programmierung I Dr. Monika Meiler Zeit: 60 Minuten Bemerkungen: Jedes Blatt ist mit der Matrikelnummer zu versehen. Jede Aufgabe ist
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrLehrer: Einschreibemethoden
Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder
MehrVererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.
Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrSchnelleinstieg. Datenimport für die EXPOSÉ - Familie. Import von Adress / Objektdaten aus MS Excel. = Datenintegration aus anderen Lösungen
Schnelleinstieg Datenimport für die EXPOSÉ - Familie Import von Adress / Objektdaten aus MS Excel = Datenintegration aus anderen Lösungen node Systemlösungen e.k. Kantstr. 149 10623 Berlin Tel: +49 30
MehrHilfedatei der Oden$-Börse Stand Juni 2014
Hilfedatei der Oden$-Börse Stand Juni 2014 Inhalt 1. Einleitung... 2 2. Die Anmeldung... 2 2.1 Die Erstregistrierung... 3 2.2 Die Mitgliedsnummer anfordern... 4 3. Die Funktionen für Nutzer... 5 3.1 Arbeiten
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrInformatik 2 Labor 2 Programmieren in MATLAB Georg Richter
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und
MehrObjektorientierung: Klassen und Objekte
Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in
MehrSoftware Engineering Klassendiagramme Einführung
Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt
MehrAngaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7
Tutorial: Wie kann ich Kontakte erfassen In myfactory können Sie Kontakte erfassen. Unter einem Kontakt versteht man einen Datensatz, der sich auf eine Tätigkeit im Zusammenhang mit einer Adresse bezieht.
MehrInstitut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. April 2013 Programmieren II 10. Übungsblatt Hinweis: Insgesamt werden in diesem Semester fünf
MehrHandbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
MehrDiana Lange. Generative Gestaltung Operatoren
Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.
MehrMCRServlet Table of contents
Table of contents 1 Das Zusammenspiel der Servlets mit dem MCRServlet... 2 1 Das Zusammenspiel der Servlets mit dem MCRServlet Als übergeordnetes Servlet mit einigen grundlegenden Funktionalitäten dient
Mehr1. So beginnen Sie eine Kalkulation
KASSE Eine iphone Apps von a-mass Dieses kleine Programm kann zur Buchführung, als Haushalts- oder Registrierkasse verwendet werden Es können laufende Kosten genauso wie jegliche Ausgaben oder Einnahmen
MehrGezielt über Folien hinweg springen
Gezielt über Folien hinweg springen Nehmen wir an, Sie haben eine relativ große Präsentation. Manchmal möchten Sie über Folien hinweg zu anderen Folien springen. Das kann vorkommen, weil Sie den gesamten
MehrPrimzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
MehrDokumentation IBIS Monitor
Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrBenutzerhandbuch - Elterliche Kontrolle
Benutzerhandbuch - Elterliche Kontrolle Verzeichnis Was ist die mymaga-startseite? 1. erste Anmeldung - Administrator 2. schnittstelle 2.1 Administrator - Hautbildschirm 2.2 Administrator - rechtes Menü
MehrDesign by Contract with JML
Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC
MehrAbwesenheitsnotiz im Exchange Server 2010
Abwesenheitsnotiz im Exchange Server 2010 1.) Richten Sie die Abwesenheitsnotiz in Outlook 2010 ein und definieren Sie, an welche Absender diese gesendet werden soll. Klicken Sie dazu auf Datei -> Informationen
MehrKapitel 4 Das Projekt Digitaluhr Seite 1
Kapitel 4 Das Projekt Digitaluhr Seite 1 4 Das Projekt Digitaluhr Im letzten Kapitel hast du untersucht, was Objekte sind und wie diese implementiert werden. Dabei hast du Datenfelder, Konstruktoren und
MehrÜbersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung
Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des
MehrArrays Fortgeschrittene Verwendung
Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung
MehrTypumwandlungen bei Referenztypen
Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrJederzeit Ordnung halten
Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das
MehrSoftwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
MehrWie melde ich meinen Verein bei BOOKANDPLAY an?
Wie melde ich meinen Verein bei BOOKANDPLAY an? Geben Sie in Ihrem Internet-Browser (bitte benutzen Sie immer Mozilla Firefox) als Adresse www.bookandplay.de ein. Anmerkung: Wir empfehlen Ihnen auch allgemein
MehrDieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.
Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html
MehrUmfrage. Didaktischer Kommentar. Lernplattform
Lernplattform Umfrage Didaktischer Kommentar Die Aktivität Umfrage ist ein nützliches Tool, um Einstellungen der Kursteilnehmer zu Beginn und zum Ende des Kurses abzufragen und zu vergleichen. Die Umfrage
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
Mehrecaros2 - Accountmanager
ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf
MehrGSD-Radionik iradionics Android-App
Neue Daten erfassen Daten speichern Daten löschen Suchen nach bereits erfassten ST = Stammdaten zum Erfassen der Daten. Vorname und Nachname sind Pflichtfelder, alles andere ist optional. Bei Tieren erfassen
MehrArge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar 2013. CAP-News 40
CAP-News 40 CAP-News ist in unrägelmäßigen Abständen erscheinende Information zum Produktkonfigurator CAP/VARIANTS. Hier werden die neuen Befehle, Funktionen und Möglichkeiten beschrieben. In CAP-News
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrMatrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -
Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
Mehr