Einführung in die Formatierung von Quelltext in Java im Rahmen der Lehre des Programmierens mit der Programmiersprache Java. (Java, Formatierung, Kommentar, Unicode, Zeichen, UTF-8, \u, native2ascii, -encoding UTF-8), Lektion, Seite 721300
https://www.purl.org/stefan_ram/pub/java_formatierung_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Kommentare in Java 

Ein Kommentar  ist ein Teil des Quelltextes eines Programms, der für das Verhalten eines Programms keine Bedeutung hat. Er wird also von der Implementation praktisch ignoriert.

Kommentare erlauben es, Programme durch Erläuterungen verständlicher zu machen oder wichtige Notizen oder Hinweise an Bearbeiter an den passenden Stellen in einem Programm festzuhalten.

In Java -Programme können Kommentare eingefügt werden.

Kommentare können (außerhalb eines Kommentars und eines Zeichenfolgenliterals) an jeder Stelle, an der auch Leerraum stehen dürfte, mit dem Zeichenpaar »/*« eingeleitet werden, sie enden mit dem ersten folgenden Zeichenpaar »*/«. Solche Kommentare können auch mehrere Zeilen umfassen.

Das Zeichen »/« wird „Schrägstrich“ genannt.

Das Zeichen »*« wird „Stern“ (oder „Sternchen“) genannt.

Das Zeichenpaar »/*« muß zur Einleitung eines Kommentars genau so geschrieben werden (es darf kein Leerraum eingefügt werden), genauso muß das Zeichenpaar »*/« zum Abschluß eines Kommentars genau so geschrieben werden (es darf kein Leerraum eingefügt werden).

Innerhalb  eines Kommentars hat das Zeichenpaar »/*« keine besondere Bedeutung.

Der in einem Kommentar enthaltene Text wird von einer Java -Implementation im allgemeinen ignoriert – ein Kommentar gilt effektiv als ein Leerraum. Daher können Kommentare verwendet werden, um irgendwelche Notizen in ein Programm zu schreiben oder auch um lexikalische Einheiten zu trennen.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( - -19/* Brot kaufen! Lehmann anrufen! */ ); }}
java.lang.System.out
19

Kommentare dürfen auch über mehrere Zeilen gehen.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( - -28 /*
Brot kaufen!
Lehmann anrufen!
*/
); }}
java.lang.System.out
28

Zeilenendkommentare

Durch das Zeichenpaar »//« wird Text bis zum Ende der Zeile  als Kommentar gekennzeichnet. Solche Kommentare nennt JLS7 “end-of-line comment ”, man kann sie also als Zeilenendkommentare  bezeichnen. (Zwischen die beiden Schrägstriche darf hier kein Leerraum eingefügt werden.)

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
(
-34 // Vorzeichenwechsel
); }}
java.lang.System.out
-34

Innerhalb eines Zeilenendkommentars haben die Zeichenpaare »/*«, »*/« und »//« keine besondere Bedeutung.

Im Vergleich zu Zeilenendkommentaren wird ein mit dem Zeichenpaar »/*« eingeleiteter Kommentar in der JLS7  als “traditional comment ” bezeichnet, man kann ihn also als traditionellen Kommentar  bezeichnen.

Verschachtelte Kommentare ⃗

Da ein Kommentar mit dem ersten  Zeichenpaar »*/« endet, kann man Kommentare nicht „verschachteln“. Im folgenden Beispiel endet der Kommentar also bereits mit »def */«.

Ein Kommentar mit einem ihm folgenden Text » ghi */«
/* abc /* def */ ghi */

Kommentare als Leerraum ⃗

Kommentare werden am Anfang der Verarbeitung eines Programms praktisch durch ein Leerzeichen ersetzt. Daher können sie auch zum Trennen lexikalischer Einheiten verwendet werden.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( -/* Vorzeichenwechsel */-33 ); }}
java.lang.System.out
33

Entfernte man den Kommentar in dem obigen korrekten Programm, so erhielte man das folgende fehlerhafte Programm.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( --33 ); }}

Kommentare werden vor der weiteren Verarbeitung eines Quelltextes bei der Übersetzung aber praktisch durch ein Leerzeichen ersetzt. Aus dem obigen Programm mit  einem Kommentar wird also das folgende Programm gemacht.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( - -33 ); }}
java.lang.System.out
33

Übungsfragen _

?   Kommentare zählen _

Ist das folgende Programm korrekt, und, wenn ja: wie viele Kommentare finden sich darin?

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 78/* alpha /* // /** beta */ ); }}

Robustheit von Kommentaren *

Bei der Darstellung oder Übermittlung von Programmen werden lange Zeilen manchmal neu umbrochen. Dadurch kann es passieren, daß ein Teil eines Zeilenendkommentars plötzlich am Anfang der nächsten Zeile landet und das Programm dann nicht mehr korrekt ist.

Main.txt
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
(
-51 //
Vorzeichenwechsel
); }}

Die Struktur von Zeilenendkommentaren folgt nicht der üblichen Regelung, derzufolge im Quelltext ein Leerzeichen durch ein Zeilenende ersetzt werden kann, ohne daß dies die Bedeutung des Quelltextes verändern. Traditionalle Kommentare sind gegenüber einem unbeabsichtigten Umbruch robuster, weil sie der genannten Regelung entsprechen.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
(
-54 /*
Vorzeichenwechsel */
); }}
java.lang.System.out
-54

Kommentare und Leerraum *

In Java  sind außerhalb von Zeichenfolgenliteralen Zeilenenden und Leerzeichen gleichberechtigt: Ein Zeilenende  kann immer auch durch ein Leerzeichen  ersetzt werden, und umgekehrt.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( -51 /* Vorzeichenwechsel */
); }}
transcript
-51
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( -51 /* Vorzeichenwechsel */ ); }}
transcript
-51

Endzeilenkommentare stellen jedoch Fremdkörper  in diesem System dar. Für sie gilt die Ausnahme, daß ein Zeilenende an ihrem Ende nicht  durch ein Leerzeichen ersetzt werden darf. Insofern passen sie weniger zum Rest der Sprache als klassische Kommentare.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( -51 // Vorzeichenwechsel
); }}
transcript
-51
Main.txt
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( -51 // Vorzeichenwechsel ); }}
transcript
    ( -51 // Vorzeichenwechsel ); }}
^
Main.java:4: error: reached end of file while parsing

Zeichenfolgenliterale *

Die Kommentareinleiter »/*« und »//« leiten innerhalb einem Zeichenfolgenliterals keinen Kommentar ein, sondern gelten dann auch als Teil der Zeichenfolge.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( "ABC/*DEF//GHI" ); }}
java.lang.System.out
ABC/*DEF//GHI

Umgekehrt gelten Anführungszeichen in Kommentaren nicht als Beginn eines Zeichenfolgenliterals.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 17/*"*/ ); }}
transcript
17

Kommentardiagramm für Kommentare *

Die folgenden Kommentardiagramme beschreiben Kommentare.

Ein Kommentardiagramm  ist genauso zu verstehen, wie ein morphologisches Diagramm. Wir nennen es aber nicht „morphologisches Diagramm“, da morphologische Diagramme lexikalische Einheiten  beschreiben und ein Kommentar keine  lexikalische Einheit ist. Kommentardiagramme werden in diesem Kurs mit »|/|« gekennzeichnet.

Kommentardiagramm
Kommentar
.-. .-. .-------------.
|/|--->( / )--->.--->( / )----.------------------------.--->| Zeilenende |--->.---->|/|
'-' | '-' ^ | '-------------' ^
| | .---------------. | |
| | | jedes Zeichen | | |
| '---| ausser einem |<---' |
| | Zeilenende | |
| '---------------' |
| |
| .---------------. |
| | jedes Zeichen | |
| .---| ausser "*" |<--------. |
| | | und "/" | | |
| | '---------------' | |
| .-. v | |
'--->( * )--->'---------------------------->' |
'-' | ^ ^ |
| | | |
v | | |
.<-----------. | |
| | | |
v .-. | | |
'--->( / )---' .------------. |
| '-' | | |
| | | |
| v .-. | .-. |
'--------------->'--->( * )---'---( / )----------'
'-' '-'

„Auskommentieren“ von Quelltext *

Auch Quelltext  kann in einem Kommentar enthalten sein. Der Quelltext wird dann vom Compiler ignoriert. Man nennt ihn auskommentiert.

Main.java

public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( - -19 ); }}

/*

// fruehere Programmversion vom 4. Dezember 2033 (hier auskommentiert):

public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( - -20 ); }}

*/

Was der Compiler davon sieht (etwas vereinfacht gesagt):

public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( - -19 ); }}

Jedoch ist es nicht  möglich, mit einem /*-Kommentar Programme auszukommentieren, die selber /*-Kommentare enthalten, da /*-Kommentare nicht verschachtelt  werden dürfen (weil das erste »*/« den Kommentar immer beendet). Hier muß dann auf //-Kommentare ausgewichen werden:

Main.java

public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( - -19 ); }}

// /* fruehere Programmversion vom 4. Dezember 2033 (hier auskommentiert): */

// public final class Main
// { public static void main( final java.lang.String[] args )
// { java.lang.System.out.println
// ( - -20 ); }}

Was der Compiler davon sieht (etwas vereinfacht gesagt):
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( - -19 ); }}

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 stefanram721300 stefan_ram:721300 Java, Formatierung, Kommentar, Unicode, Zeichen, UTF-8, \u, native2ascii, -encoding UTF-8 java umlaute codierung; 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, slrprd721300, slrprddef721300, 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_formatierung_de