Objektorientierte Programmierung. Kapitel 18: Strings
|
|
|
- Michaela Kästner
- vor 8 Jahren
- Abrufe
Transkript
1 Stefan Brass: OOP (Java), 18. Strings 1/16 Objektorientierte Programmierung Kapitel 18: Strings Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 brass/oop13/
2 Stefan Brass: OOP (Java), 18. Strings 2/16 Inhalt 1 Einführung 2
3 Stefan Brass: OOP (Java), 18. Strings 3/16 Strings (1) String-Konstanten wie "abc" wurden in Kapitel 5 behandelt. Insbesondere wurden da auch die Escape-Sequenzen (wie \n) behandelt, mit denen man spezielle Zeichen in die Zeichenketten einbetten kann. Der Compiler erzeugt für Zeichenketten-Konstanten Objekte der Klasse String (genauer java.lang.string). Diese Bibliotheks-Klasse hat eine große Anzahl von Methoden, die unter unter folgender Webadresse dokumentiert sind: [ Außer den Konstanten sind noch der Konkatenations-Operator + und die Methode tostring in die Sprache Java eingebaut. Für eigene Klassen kann man keine Operatoren definieren (in C++ schon). Ansonsten ist es eine normale Klasse.
4 Stefan Brass: OOP (Java), 18. Strings 4/16 Strings (2) Folgen von Zeichen: Strings sind recht ähnlich zu char[]-arrays. Man kann die Länge eines Strings s abfragen mit s.length() Achtung: Hier Methode (erfordert () für Parameter), bei Arrays Attribut. Mögliche Erklärung: Man wollte gleiches Interface wie (s.u.), dort Länge variabel, also ging final Attribut nicht, Attr. ohne final unsicher. Ein Zeichen des Strings bekommt man mit s.charat(i) Dabei muss i wie bei Arrays einen Wert haben zwischen 0 (für das erste Zeichen) und s.length() - 1 (für das letzte Zeichen). "abc".charat(i) wäre legal (mit 0 i 2). "abc" ist ja ein Objekt der Klasse String.
5 Stefan Brass: OOP (Java), 18. Strings 5/16 Strings (3) Vergleich von Strings: Wenn man Strings mit == vergleicht, wird wie üblich nur getestet, ob es sich um das gleiche Objekt handelt. Es wird nicht der Inhalt des Strings verglichen, d.h. die Zeichenfolge. Z.B. wäre "abc" == "a" + "bc" falsch. Für im Programm direkt als Konstanten vorkommende Zeichenketten (String-Literale) ist garantiert, dass der Compiler für jede Zeichenkette nur ein String-Objekt erzeugt, dort würde der Vergleich mit == funktionieren. Wenn man einen String s1 berechnet hat (z.b. durch Konkatenation), kann man mit s1.intern() ein kanonisches Objekt dafür bekommen. Der Vergleich zweier Strings funktioniert sicher mit s1.equals(s2) Diese Methode liefert einen Wahrheitswert (Typ boolean), und zwar true, wenn beide String-Objekte die gleiche Zeichenfolge repräsentieren, sonst false.
6 Stefan Brass: OOP (Java), 18. Strings 6/16 Strings (4) Sortierung von Strings: Der Aufruf s1.compareto(s2) liefert einen negativen Wert, wenn s1 lexikographisch vor s2 kommt, 0, wenn beide gleich sind, d.h. s1.equals(s2) einen positiven Wert, wenn s1 nach s2 kommt. Dabei werden die einzelnen Zeichen nach Unicode-Werten geordnet, was nicht die übliche alphabetische Anordnung ist. Diese ist Länder-spezifisch. Für eine deutsche Sortierung verwendet man java.util.locale german = new java.util.locale("de"); java.text.collation coll = java.text.collatoion.getinstance(german); (Alternativ gibt es java.util.locator.german, und getinstance() verwendet die default Locale.) Dann Vergleich mit coll.compare(s1, s2).
7 Stefan Brass: OOP (Java), 18. Strings 7/16 Strings (5) Erzeugung von Strings: Man kann einen String aus einem Zeichen-Array erzeugen: char[] array = { a, b, c }; String s = new String(array); Man kann einen String auch aus byte[] erzeugen, dann muss man aber einen Zeichensatz angeben, oder sich auf den Default-Zeichensatz verlassen. Man kann beliebige Typen mit der statischen Methode valueof umwandeln, z.b. String s = String.valueOf(123); Ein bestimmtes Format bekommt man mit String s = String.format("%4.1f", 1.23); Vier Zeichen insgesamt (inklusive, ), eine Dezimalstelle nach dem Komma.
8 Strings (6) Beispiele für weitere nützliche Methoden von String: int indexof(int c): Index des ersten Vorkommens des Zeichens c. Z.B. würde nach String s = "abc"; der Aufruf s.indexof( b ) den Wert 1 liefern. -1 wird geliefert, wenn das Zeichen nicht vorkommt. Der Typ ist int, weil es auch mit Unicode Code Points funktioniert (s.u.). Alle diese Methoden gibt es auch in einer Variante mit ganzen Strings statt einzelnen Zeichen (Suche nach Substrings): "abcdcd".indexof("cd") == 2 int indexof(int c, int i): Index des nächsten Vorkommens von c ab Position i. Die Suche beginnt an der Index-Position i (einschließlich). Es gibt keinen Fehler, wenn i zu groß ist, dann wird -1 geliefert. int lastindexof(int c): Index des letzten Vorkommens. Stefan Brass: OOP (Java), 18. Strings 8/16
9 Stefan Brass: OOP (Java), 18. Strings 9/16 Strings (7) Beispiele für weitere nützliche Methoden von String, Forts.: String substring(int start, int end): Teilzeichenkette extrahieren. Die Zeichenkette beginnt bei Index start und endet bei end-1. Bis zum Ende der Eingabezeichenkette s kommt man also mit end = s.length(). String tolowercase(): Umwandlung in Kleinbuchstaben. Entsprechend liefert touppercase() den String in Großbuchstaben. Die Methode trim() entfernt Leerplatz an Anfang und Ende. String replace(char c1, char c2): Ersetzt alle Vorkommen von c1 durch c2. Es gibt auch eine Variante mit Strings (oder, noch allgemeiner, CharSequence-Werten). Bei replaceall und replacefirst kann man ein Muster (regulären Ausdruck) für den zu ersetzenden Text angeben.
10 Stefan Brass: OOP (Java), 18. Strings 10/16 Strings: Unicode-Unterstützung (1) Strings sind genauer Folgen von UTF-16 Code Units. Unicode-Zeichen haben Code Points zugeordnet, die int-werte sind (bis 0x10FFFF). Dies ist der eigentliche Zeichencode. Viele Programmierer kümmern sich nicht um diese Unterscheidung, für die häufigsten Sprachen funktioniert es, und wenn man nur Texte ausgibt, ist die genaue Anzahl Zeichen meist nicht wichtig. In UTF-16 werden viele Zeichen mit 16 Bit codiert (z.b. alle ASCII-Zeichen und deutsche Umlaute), aber es gibt auch Zeichen, die zwei aufeinanderfolgende 16-Bit Einheiten (char-werte) benötigen. Diese Teile heissen High-Surrogate ( \ud800 bis \udbff ) und Low-Surrogate ( \udc00 bis \udfff ). In diesen Bereichen liegen keine normalen Zeichen. Jeder Teil enthält 10 Bit, man muss sie wieder zusammenfügen und 2 16 = addieren, um den Code Point zu bekommen.
11 Stefan Brass: OOP (Java), 18. Strings 11/16 Strings: Unicode-Unterstützung (2) Folgende Methode liefert den echten Zeichencode an einer Position (ggf. zusammengesetzt aus zwei char-werten): int codepointat(int index) Die Anzahl tatsächlicher Zeichen zwischen zwei Index-Positionen in einem String erhält man mit int codepointcount(int begin, int end) Wenn man z.b. begin = 0 und end = s.length() setzt, erhält man die tatsächliche Länge des Strings in Zeichen (im Gegensatz zur Länge in 16-Bit Code Units, die length() liefert). Die Klasse Character enthält einige (statische) Hilfsfunktionen für die Arbeit mit Code Points, z.b. liefert static int charcount(int codepoint) die Anzahl der char-werte für einen Zeichencode (1 oder 2).
12 Stefan Brass: OOP (Java), 18. Strings 12/16 Inhalt 1 Einführung 2
13 Stefan Brass: OOP (Java), 18. Strings 13/16 (1) Objekte der Klasse String sind unveränderlich. Will man einen String konstruieren, so kann man dazu ein Objekt der Klasse verwenden. [ Die Klasse StringBuffer hat die gleiche Schnittstelle, und ist sicher für parallele Zugriffe aus mehreren Threads, deswegen aber nicht ganz so effizient. Wenn nur ein Thread darauf zugreifen muss, wird die Klasse empfohlen, die mit Java 5 eingeführt wurde. Natürlich kann man einen String auch Zeichen für Zeichen durch Konkatenation mit + aufbauen, das wäre aber nicht effizient (Verschwendung von Laufzeit und Speicherplatz). Es wird jedesmal ein neues String-Objekt konstruiert, das der Garbage Collector später wieder einsammeln muss. Es ist damit zu rechnen, das jedes Mal der bisherige String kopiert wird.
14 Stefan Brass: OOP (Java), 18. Strings 14/16 (2) Man kann ein Objekt dieser Klasse z.b. erzeugen mit s = new (80); Dabei ist 80 die initiale Kapazität, also die Größe des Zeichen-Arrays in dem -Objekt. Wenn die Größe später nicht reichen sollte, wird sie automatisch erweitert, aber das kostet natürlich Laufzeit. Es muss ein neues, größeres Array angefordert werden und die Zeichen müssen vom alten in das neue Array umkopiert werden. Der Garbage Collector muss das alte Array wieder einsammeln. Andererseits kostet ein zu großes Array Speicherplatz. Nach der Erzeugung enthält der zunächst den leeren String "".
15 Stefan Brass: OOP (Java), 18. Strings 15/16 (3) Der in einem s gespeicherte String kann geändert werden z.b. mit s.append("abc"); Hiermit wird der String "abc" hinten an den bereits gespeicherten String (initial "") angehängt. Die Methode append akzeptiert beliebige Typen, die ggf. in Strings umgewandelt werden (formal handelt es sich um mehrere Methoden mit gleichem Namen aber unterschiedlichen Argument-Typen). Man kann einen String (oder einen beliebigen Wert) in den gespeicherten String auch an beliebiger Stelle einfügen: s.insert(1, "de") Wenn in s vorher der String "abc" gespeichert war, steht dort jetzt der String "adebc", d.h. "de" wurde an der Index-Position 1 eingefügt, was dort vorher stand, wurde nach hinten verschoben.
16 Stefan Brass: OOP (Java), 18. Strings 16/16 (4) hat auch die von String bekannten Methoden charat und length(). Das ist kein Zufall, sondern liegt an dem Interface CharSequence, das von beiden Klassen implementiert wird. Interfaces wurden in Kapitel 14 behandelt. Dabei liefert die Methode length() die aktuell in dem gespeicherte Zeichenzahl (char-werte). Und nicht die Kapazität. Diese erhält man mit capacity(). Mit tostring() erhält man ein String-Objekt zum aktuellen Inhalt des s. Der String ist unveränderlich und damit unabhängig von eventuellen zukünftigen Änderungen des -Objektes. Die Klasse String hat auch einen Konstruktor mit einem als Parameter.
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
Objektorientierte 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/
Computeranwendung 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
5. 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
Kontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
Probeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
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
Java: 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
5.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
Ü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
II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ
Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die
C# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A.
»Programmieren«, WS 006/007 Nino Simunic ([email protected]) Übungsblatt 4 Aufgabe 1 OOP In dieser Aufgabe sollen Sie Autos als Klasse Car modellieren. Die Eigenschaften auf attributiver Ebene sind:
4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen
4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen Highlights: objektorientierte Sprache Plattformunabhängigkeit bei Hardware und Betriebssystem optimale Einbindung im Internet und Intranet
Klassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
Java Generics & Collections
Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
Primitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
Institut 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
Ein erstes Java-Programm
Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println
1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
Programmierkurs 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
Kapitel 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
Tutorium Java Ein Überblick. Helge Janicke
Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren
Kapitel 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
Kapitel 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
Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger
Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90
Datenbankanwendungsprogrammierung Crashkurs Java
Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung
Innere 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
Javakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
Programmieren 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
620.900 Propädeutikum zur Programmierung
620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt [email protected] Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE
Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff
Die Java Stream API Funktionale Programmierung mit der Stream API des JDK 1.8 Prof. Dr. Nikolaus Wulff Funktionale Programmierung Neben der Collection API mit default Methoden ist als weitere Neuerung
3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.
Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am
Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe
Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion,
Vererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
Vorlesung 09: Mengen. Peter Thiemann SS 2010
Vorlesung 09: Mengen Peter Thiemann Universität Freiburg, Germany SS 2010 Peter Thiemann (Univ. Freiburg) JAVA 1 / 43 Inhalt Mengen HashSet LinkedHashSet CopyOnWriteArraySet EnumSet SortedSet NavigableSet
Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein ([email protected].
Java Crashkurs Kim-Manuel Klein ([email protected]) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
Unterprogramme, Pointer und die Übergabe von Arrays
Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme Wie schon im Abschnitt über Funktionen erwähnt, versteht man unter einem Unterprogramm im engeren Sinn eine Prozedur, welche die Werte
Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren.
Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren. Niemand bedauert diese Fehler mehr als der Autor selbst.
Einführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger [email protected] WiSe 2012/13 1 Heutige Themen Hello World!
Effiziente Java Programmierung
Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen
Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen
Kapitel 4: Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Codierung von rationalen Zahlen Konvertierung
Über den Autor 7. Teil I Los geht s mit Java für die Android-Entwicklung 25. Kapitel 1 Alles über Java und Android 27
Inhaltsverzeichnis Über den Autor 7 Einführung 19 Wie Sie dieses Buch verwenden 19 In diesem Buch verwendete Konventionen 19 Was Sie nicht lesen müssen 20 Törichte Voraussetzungen 20 Wie dieses Buch aufgebaut
Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03
Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen
5.5.8 Öffentliche und private Eigenschaften
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
188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
Prinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
Testen mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
Einführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger [email protected] WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E
2.2 Prozesse in Java
2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.
Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann
Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann
Software 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
Inhalt. Teil I: Der Sprachkern von JavaScript
Inhalt Vorwort.... 1 Einführung in JavaScript... 1 1.1 Der JavaScript-Sprachkern... 4 1.2 Clientseitiges JavaScript... 9 Teil I: Der Sprachkern von JavaScript 2 Die lexikalische Struktur... 21 2.1 Zeichensatz...
1 Verschlüsselung nach Caesar
Kapitel 1 Verschlüsselung nach Caesar (Phase 1) Seite 1/14 1 Verschlüsselung nach Caesar Die Verschlüsselung nach Caesar beruht auf einem Geheimtextalphabet, das um eine bestimmte Stellenanzahl gegenüber
Java 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
Programmieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff
Programmieren in C Die C-Standardbibliothek Prof. Dr. Nikolaus Wulff Die C-Standard Bibliothek Mit dem C Compiler werden viel fertige Bibliotheksfunktionen ausgeliefert. Eine genaue Kenntnis dieser Funktionen
3 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
Dr. Monika Meiler. Inhalt
Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6
Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014
Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?
Einführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger [email protected] WiSe 2012/13 1 Rückblick Schleifen while do-while for Methoden Verfahren: Intervallschachtelung 2 Wo
Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow [email protected] Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
Java für Computerlinguisten
Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009
PIWIN 1 Übung Blatt 5
Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, [email protected] PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:
Übungsblatt 3: Algorithmen in Java & Grammatiken
Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015
Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7
Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
Programmieren 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
Unicode und UTF-8. Anna-Katharina Wurst. 28. April 2015. WP5 Angewandte Programmierung
28. April 2015 WP5 Angewandte Programmierung David Kaumanns & Sebastian Ebert SoSe 2015 CIS Ludwig-Maximilians-Universität München 2 Inhalt 1 Zeichensätze ASCII ISO 8859-x Unicode 2 Kodierung UTF-8 3 Anwendung
Datentypen: Enum, Array, Struct, Union
Datentypen: Enum, Array, Struct, Union C-Kurs 2013, 2. Tutorium Freitagsrunde http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte
4. Datentypen Einleitung Eingebaute Datentypen Übersicht Die Datentypen char, float und double Standardwerte Konversion / Type-Cast Datentyp von Literalen Operatoren Ausdrücke Allgemeine Informatik 2 SS09
PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008
PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik
Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe
Java: Eine Übersicht Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe Allgemeines Objektorientiert Syntaxfamilie von C/C++ Statisch getypt Entwickelt von Sun Microsystems class
DB2 Codepage Umstellung
DB2 Codepage Umstellung Was bei einer Umstellung auf Unicode zu beachten ist Torsten Röber, SW Support Specialist DB2 April 2015 Agenda Warum Unicode? Unicode Implementierung in DB2/LUW Umstellung einer
2. 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
Programmieren in Java
Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang
Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff
Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet
Grundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
J.5 Die Java Virtual Machine
Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class
Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian
Einführung in die Programmierung Arvid Terzibaschian 1 Arrays 2 Arrays: Motivation Gegeben: monatliche Durchschnittstemperaturen der letzten 5 Jahre Gesucht: Mittelwerte für Jahre, Monate, Jahreszeiten,
Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel [email protected] Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
Java Virtual Machine (JVM) Bytecode
Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,
Numerische Datentypen. Simon Weidmann
Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die
Objektorientierte Programmierung. Kapitel 16: Pakete, Zugriffsschutz
Stefan Brass: OOP (Java), 16. Pakete, Zugriffsschutz 1/30 Objektorientierte Programmierung Kapitel 16: Pakete, Zugriffsschutz Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14
Vorwort. Ulrich Breymann. Der C++-Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-41644-4
Vorwort Ulrich Breymann Der C++-Programmierer C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-41644-4 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41644-4
Algorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
Session Beans & Servlet Integration. Ralf Gitzel [email protected]
s & Servlet Integration Ralf Gitzel [email protected] 1 Themenübersicht Ralf Gitzel [email protected] 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful
Abschnitt 9: Schnittstellen: Interfaces
Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung
Vorlesung Objektorientierte Programmierung Probeklausur
Prof. Dr. Stefan Brass 04. März 2013 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Probeklausur Name: Matrikelnummer: Studiengang:
Assoziation und Aggregation
Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben
Inhalte Informatik. I1 Grundprinzip des objektorientierten Modellierens I3 Modellieren von Netzwerkanwendungen
Inhalte Informatik I1 Grundprinzip des objektorientierten Modellierens I3 Modellieren von Netzwerkanwendungen II.0 Grundlegende Programmstrukturen und Algorithmen Sortier- und Suchalgorithmen auf Arrays
Programmieren in C++ Arrays, Strings und Zeigerarithmetik
Programmieren in C++ Arrays, Strings und Zeigerarithmetik Inhalt Eindimensionale C-Arrays C-Strings und Strings (Mehrdimensionale C-Arrays) Arrays und Vektoren (C++) Unique Pointers (C++11) Zeigerarithmetik
DAS EINSTEIGERSEMINAR PHP 5.3 LERNEN ÜBEN ANWENDEN. Oliver Leiss Jasmin Schmidt. 3. Auflage
DAS EINSTEIGERSEMINAR PHP 5.3 Oliver Leiss Jasmin Schmidt 3. Auflage LERNEN ÜBEN ANWENDEN Vorwort... 13 Einleitung... 15 Was ist PHP?... 15 PHP gezielt einsetzen... 16 Neuerungen in PHP 5.3... 16 Der Umgang
Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
