Einführung in den Gebrauch von Objekten in der Programmiersprache Java anhand von Objekten der Klasse "String" im Rahmen der Lehre des Programmierens mit der Programmiersprache Java. (String, Objekt, equals, replace, length, indexOf, hashCode, charAt, substring, trim, equalsIgnoreCase, startsWith, endsWith ), Lektion, Seite 721583
https://www.purl.org/stefan_ram/pub/java_gebrauch_von_objekten_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Unveränderliche Objekte mit versteckten Felder am Beispiel der Klasse "java.lang.String"

Die Klasse »java.lang.String« ist vermutlich die am häufigsten verwendete Klasse in Java. Daher lohnt es sich, sich ein wenig näher mit ihr zu beschäftigen und die wichtigsten String-Methoden kennenzulernen!

Die Verkettung akzeptiert als rechten Operanden auch einen Ausdruck eines beliebigen Referenztyps. Sie ruft dann die Methode "toString()" des Objektes auf und verwendet den so erhaltenen Text.

Main.java
public class Main 
{ final public static void main( java.lang.String[] args ) 
{ java.lang.System.out.println( ":" + 2 );  
java.lang.System.out.println( ":" + java.lang.System.out );  
java.lang.System.out.println( ":" + java.lang.System.out.getClass() ); }}

java.lang.System.out
:2 
:java.io.PrintStream@601bb1 
:class java.io.PrintStream

Der Plusoperator »+« erzeugt bei Verwendung mit Operanden der Klasse »java.lang.String« unter Umständen zur Laufzeit eine neues Objekt (welches das Ergebnis der Verkettung repräsentiert). Dieses Programm zeigt also eine Möglichkeit zum Erzeugen neuer Objekte während des Programmablaufs. Auch verschiedene andere Operationen, deren Ergebnis den Typ »java.lang.String« haben, erzeugen neue Objekte. Wir werden dies im folgenden aber nicht immer erwähnen.

Der Typ eines String-Literals (wie z.B. "abc") ist java.lang.String.

Main.java
public class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( "Hallo!".length() ); }}
transcript
6
Main.java
public class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( "With.java.txt".replace( ".", "_" )); }}
transcript
With_java_txt
Main.java
public class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( "With.java.txt".indexOf( "." )); }}
transcript
4

Die Änderungsmetaphorik

Über Wertmethoden, die eigentlich keine Veränderung an ihrem Zielobjekt vornehmen, spricht man oft in einer Weise, die den Eindruck einer Änderung hervorrufen könnten.

Beispielsweise klingt der Name der Methode »replace« so als würde sie eine Veränderung vornehmen. Man spricht auch so über diese Methode und sagt, daß sie etwas „ersetze“.

Tatsächlich ergibt sie aber nur einen neuen Text und ändert nichts an ihrem Zielobjekt.

Man beschreibt hier die Veränderung des Ergebnisses im Vergleich mit dem Zielobjekt, wenn man hier von einer „Änderung“ spricht. Genau genommen wird dabei nichts verändert, weswegen es sich hierbei nicht um eine Wirkung (Veränderung) handelt.

Übungsfragen ⃗

Ausdrücke
Geben Sie zu den folgenden Ausdrücken jeweils an:
- Handelt es sich um einen Wertausdruck (einen Ausdruck, dessen Auswertung einen Wert ergibt)?
- Handelt es sich um einen Wirkausdruck (einen Ausdruck, dessen Auswertung eine Wirkung hat)? (soweit erkennbar)
- Welchen Datentyp hat der Ausdruck (falls es sich um einen Wertausdruck handelt)?
- Welchen Wert hat der Ausdruck (falls es sich um einen Wertausdruck handelt)?
o »"Hallo!".length()«
o »"a=[ 0 ]".replace( "a", "b" )«

Übungsaufgaben ⃗

Systeminformationen ausgeben
Der Wert des Ausdrucks »java.lang.System.getProperties()« ist ein Objekt, das eine Sammlung von Informationen über den Computer repräsentiert.
Rufen Sie die Methode »toString()« jenes Objektes auf und geben Sie das Ergebnis aus. Das Ergebnis jenes Aufrufs ist eine Darstellung des Objekts als java.lang.String-Objekt, in welchem die Eigenschaften durch Kommas getrennt sind. Dies ist aber unübersichtlich.
Rufen Sie daher nun die Metode »replace« jenes java.lang.String-Objekts mit den beiden Argumenten »","« und »java.lang.System.getProperty( "line.separator" )« auf, um alle Kommas  durch Zeilentrenner  zu ersetzen und geben Sie das Ergebnis aus, um so eine Ausgabe zu erhalten, in der nicht alle Systeminformation in einer einzigen Zeile stehen.
Aussprachehinweis
property ˈprɑp ɚ ti
separator ˌsɛp ə ˈret ɚ
Dokumentation der Klasse »java.lang.String« nutzen
Die Klasse »java.lang.String« enthält nicht-statische Methoden mit dem Namen »indexOf«, um die Position eines Zeichens in einer Zeichenfolge zu ermitteln, dabei wird von vorne  nach hinten  gesucht. Finden Sie eine entsprechende Methode, die aber von hinten  nach vorne  sucht, und schreiben Sie ein kleines Programm oder eine Programmzeile, um diese Methode auszuprobieren.
(Die Bestimmung der Position erfolgt auch bei einer Suche von hinten nach vorne so, daß von vorne nach hinten aufsteigend gezählt wird.)
Suchen Sie sich eine weitere, bisher noch nicht behandelte, nicht-statische Methode dieser Klasse »java.lang.String« aus und schreiben Sie ein kleines Programm oder eine Programmzeile, um diese auszuprobieren.
Rechtsbündiges Formatieren *
Schreiben Sie eine statische Klassenmethode "printRight", die einen int-Wert "number" ausgibt. Dabei sollen der Textdarstellung des Wertes so viele Leerzeichen vorangestellt werden, daß insgesamt immer zehn Zeichen ausgegeben werden. (Dies soll möglichst ohne  Schleifen und mit  Methoden der Klasse »java.lang.String« programmiert werden.)
Main.java
public class Main
{ public static void printRight( final int number )
{ /* ... */ }
public static void main( java.lang.String[] args )
{ printRight( 32 ); java.lang.System.out.println();
printRight( 8 ); java.lang.System.out.println();
printRight( 121 ); java.lang.System.out.println(); }}
System.out
        32
8
121

Zusatzaufgaben

Textsuche
Schreiben Sie eine Methode, die einen Text vom Typ »String« als Argument akzeptiert. Es soll angenommen werden, daß in diesem Text genau einmal die Zeichenfolge »<alpha>« und später genau einmal die Zeichenfolge »</alpha>« vorkommt. Die Methode soll den Text zurückgeben, der zwischen  »<alpha>« und »</alpha>« steht.
Datum analysieren
Ein Datum werde in der Form Jahr 〉 "-" 〈Monat 〉 "-" 〈Tag  angegeben, beispielsweise als "1970-12-1". Schreiben Sie eine Methode, die ein Datum in dieser Form entgegennimmt und das Jahr ausgibt.
Datum analysieren 1
Ein Datum werde in der Form Jahr 〉 "-" 〈Monat 〉 "-" 〈Tag  angegeben, beispielsweise als "1970-12-1". Schreiben Sie eine Methode, die ein Datum in dieser Form entgegennimmt und den Monat als int -Wert zurückgibt. (Wandlung nach int ist mit java.lang.Integer.valueOf möglich.) (Der int -Wert eines java.lang.String -Objekts »s« mit einem ganzzahligen Numerale [wie »"21"«] ist »java.lang.Integer.parseInt( s )«.)
Würfel
Eine Wurfbeschreibung der Form "W12" steht für einen Wurf eines Würfels mit 12 Seiten. Schreiben Sie eine Methode, die zu einer solchen Wurfbeschreibung einen Wurf simuliert und die Summe der geworfenen Augenzahlen ergibt. (Wandlung nach int ist mit java.lang.Integer.valueOf möglich.) (Der int -Wert eines java.lang.String -Objekts »s« mit einem ganzzahligen Numerale [wie »"21"«] ist »java.lang.Integer.parseInt( s )«.)
Würfel 1
Eine Wurfbeschreibung der Form "2W6" steht für einen Wurf von zwei Würfeln mit jeweils 6 Seiten. Schreiben Sie eine Methode, die zu einer solchen Wurfbeschreibung einen Wurf simuliert und die Summe der geworfenen Augenzahlen ergibt. (Wandlung nach int ist mit java.lang.Integer.parseInt möglich.) (Der int -Wert eines java.lang.String -Objekts »s« mit einem ganzzahligen Numerale [wie »"21"«] ist »java.lang.Integer.parseInt( s )«.)

Zusatzaufgaben

Namen analysieren
Ein Name werde in der Form Vornamen 〉 " " 〈Nachname  angegeben, beispielsweise als "Frank Werner Meyer". Schreiben Sie eine Methode, die einen Namen in dieser Form entgegennimmt und in der Form Nachname 〉 ", " 〈Vornamen , also beispielsweise als "Meyer, Frank Werner", den Namen als String -Objekt zurückgibt.
Verb ermitteln
Schreiben Sie eine Abbildungs-Methode, die zu einer Angabe einer Methode, die einen Punkt enthält, wie beispielsweise den Text "Math.abs", das Verb, wie beispielsweise den Text "abs", ergibt.
Main.java
public final class Main 
{ public static java.lang.String simpleMethodName( final java.lang.String text )
{ /* ... */ }
public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( simpleMethodName( "Math.abs" ));
java.lang.System.out.println( simpleMethodName( "Math.random" )); }}
java.lang.System.out
abs
random
Verb ermitteln (1)
Stellen Sie sicher, daß sich auch bei Angaben mit mehr als einem Punkt, wie der Angabe "System.out.println", der Teil nach dem letzten Punkt als Verb ergibt.
Main.java
public final class Main 
{ public static java.lang.String simpleMethodName( final java.lang.String text )
{ /* ... */ }
public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( simpleMethodName( "Math.abs" ));
java.lang.System.out.println( simpleMethodName( "Math.random" ));
java.lang.System.out.println( simpleMethodName( "System.out.println" )); }}
java.lang.System.out
abs
random
println
Verb ermitteln (2)
Stellen Sie sicher, daß sich bei Angaben ohne einen Punkt, wie der Angabe "print", die gesamte Angabe als Verb ergibt.
Main.java
public final class Main 
{ public static java.lang.String simpleMethodName( final java.lang.String text )
{ /* ... */ }
public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( simpleMethodName( "Math.abs" ));
java.lang.System.out.println( simpleMethodName( "Math.random" ));
java.lang.System.out.println( simpleMethodName( "System.out.println" ));
java.lang.System.out.println( simpleMethodName( "print" )); }}
java.lang.System.out
abs
random
println
print

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram721583 stefan_ram:721583 String, Objekt, equals, replace, length, indexOf, hashCode, charAt, substring, trim, equalsIgnoreCase, startsWith, endsWith source, source code,sourcecode, Programmier sprache java, Java Programm Java Programmiersprache Java Sprache Java Programmierung Programmieren in Java, Die Programmiersprache Java Javapgrammierung, Java-Programmierung, Java2, Java1.2, Java1.3, Java1.4, Java1.5, Java 2, Java 1.2, Java 1.3, Java 1.4, Java 1.5, Java 1.6, Java 1.7, Java 1.8, Java 8, Java 1.9, Java 9, Java 1.10, Java 10, Tiger, Dolphin, objektorientierte Programmierung, Java sun, , Softwareentwicklung, Software-Entwicklung, Software Entwicklung, Softwareprogrammierung, Software-Programmierung, Software Programmierung, Softwareherstellung, Software-Herstellung, Software Herstellung, Softwareerstellung, Software-Erstellung, Software Erstellung, Softwareengineering, Software-Engineering, Software Engineering, Softwareenginering, Software-Enginering, Software Enginering, Softwaremethodik, Software-Methodik, Software Methodik, Programmiermethodik, Programmier-Methodik, Programmier Methodik, Softwaredidaktik, Software-Didaktik, Software Didaktik, Methodik des Programmierens, Didaktik des Programmierens, Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens, Programmieren, Programmierung, Computer Science, Informatik, Informatik, Informationspädagogik, Informationspaedagogik, Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen, Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still, , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd721583, slrprddef721583, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/java_gebrauch_von_objekten_de