Rheinwerk Computing < openbook >


 
Inhaltsverzeichnis
Materialien
Vorwort
1 Java ist auch eine Sprache
2 Imperative Sprachkonzepte
3 Klassen und Objekte
4 Arrays und ihre Anwendungen
5 Der Umgang mit Zeichenketten
6 Eigene Klassen schreiben
7 Objektorientierte Beziehungsfragen
8 Ausnahmen müssen sein
9 Geschachtelte Typen
10 Besondere Typen der Java SE
11 Generics<T>
12 Lambda-Ausdrücke und funktionale Programmierung
13 Architektur, Design und angewandte Objektorientierung
14 Java Platform Module System
15 Die Klassenbibliothek
16 Einführung in die nebenläufige Programmierung
17 Einführung in Datenstrukturen und Algorithmen
18 Einführung in grafische Oberflächen
19 Einführung in Dateien und Datenströme
20 Einführung ins Datenbankmanagement mit JDBC
21 Bits und Bytes, Mathematisches und Geld
22 Testen mit JUnit
23 Die Werkzeuge des JDK
A Java SE-Module und Paketübersicht
Stichwortverzeichnis


Download:

- Listings, ca. 2,7 MB


Buch bestellen
Ihre Meinung?



Spacer
<< zurück
Java ist auch eine Insel von Christian Ullenboom

Einführung, Ausbildung, Praxis
Buch: Java ist auch eine Insel


Java ist auch eine Insel

Pfeil 2 Imperative Sprachkonzepte
Pfeil 2.1 Elemente der Programmiersprache Java
Pfeil 2.1.1 Token
Pfeil 2.1.2 Textkodierung durch Unicode-Zeichen
Pfeil 2.1.3 Bezeichner
Pfeil 2.1.4 Literale
Pfeil 2.1.5 (Reservierte) Schlüsselwörter
Pfeil 2.1.6 Zusammenfassung der lexikalischen Analyse
Pfeil 2.1.7 Kommentare
Pfeil 2.2 Von der Klasse zur Anweisung
Pfeil 2.2.1 Was sind Anweisungen?
Pfeil 2.2.2 Klassendeklaration
Pfeil 2.2.3 Die Reise beginnt am main(String[])
Pfeil 2.2.4 Der erste Methodenaufruf: println(…)
Pfeil 2.2.5 Atomare Anweisungen und Anweisungssequenzen
Pfeil 2.2.6 Mehr zu print(…), println(…) und printf(…) für Bildschirmausgaben
Pfeil 2.2.7 Die API-Dokumentation
Pfeil 2.2.8 Ausdrücke
Pfeil 2.2.9 Ausdrucksanweisung
Pfeil 2.2.10 Erster Einblick in die Objektorientierung
Pfeil 2.2.11 Modifizierer
Pfeil 2.2.12 Gruppieren von Anweisungen mit Blöcken
Pfeil 2.3 Datentypen, Typisierung, Variablen und Zuweisungen
Pfeil 2.3.1 Primitive Datentypen im Überblick
Pfeil 2.3.2 Variablendeklarationen
Pfeil 2.3.3 Automatisches Feststellen der Typen mit var
Pfeil 2.3.4 Finale Variablen und der Modifizierer final
Pfeil 2.3.5 Konsoleneingaben
Pfeil 2.3.6 Fließkommazahlen mit den Datentypen float und double
Pfeil 2.3.7 Ganzzahlige Datentypen
Pfeil 2.3.8 Wahrheitswerte
Pfeil 2.3.9 Unterstriche in Zahlen
Pfeil 2.3.10 Alphanumerische Zeichen
Pfeil 2.3.11 Gute Namen, schlechte Namen
Pfeil 2.3.12 Keine automatische Initialisierung von lokalen Variablen
Pfeil 2.4 Ausdrücke, Operanden und Operatoren
Pfeil 2.4.1 Zuweisungsoperator
Pfeil 2.4.2 Arithmetische Operatoren
Pfeil 2.4.3 Unäres Minus und Plus
Pfeil 2.4.4 Präfix- oder Postfix-Inkrement und -Dekrement
Pfeil 2.4.5 Zuweisung mit Operation (Verbundoperator)
Pfeil 2.4.6 Die relationalen Operatoren und die Gleichheitsoperatoren
Pfeil 2.4.7 Logische Operatoren: Nicht, Und, Oder, XOR
Pfeil 2.4.8 Kurzschluss-Operatoren
Pfeil 2.4.9 Der Rang der Operatoren in der Auswertungsreihenfolge
Pfeil 2.4.10 Die Typumwandlung (das Casting)
Pfeil 2.4.11 Überladenes Plus für Strings
Pfeil 2.4.12 Operator vermisst *
Pfeil 2.5 Bedingte Anweisungen oder Fallunterscheidungen
Pfeil 2.5.1 Verzweigung mit der if-Anweisung
Pfeil 2.5.2 Die Alternative mit einer if-else-Anweisung wählen
Pfeil 2.5.3 Der Bedingungsoperator
Pfeil 2.5.4 Die switch-Anweisung bietet die Alternative
Pfeil 2.5.5 Switch-Ausdrücke
Pfeil 2.6 Immer das Gleiche mit den Schleifen
Pfeil 2.6.1 Die while-Schleife
Pfeil 2.6.2 Die do-while-Schleife
Pfeil 2.6.3 Die for-Schleife
Pfeil 2.6.4 Schleifenbedingungen und Vergleiche mit == *
Pfeil 2.6.5 Schleifenabbruch mit break und zurück zum Test mit continue
Pfeil 2.6.6 break und continue mit Marken *
Pfeil 2.7 Methoden einer Klasse
Pfeil 2.7.1 Bestandteile einer Methode
Pfeil 2.7.2 Signatur-Beschreibung in der Java-API
Pfeil 2.7.3 Aufruf einer Methode
Pfeil 2.7.4 Methoden ohne Parameter deklarieren
Pfeil 2.7.5 Statische Methoden (Klassenmethoden)
Pfeil 2.7.6 Parameter, Argument und Wertübergabe
Pfeil 2.7.7 Methoden vorzeitig mit return beenden
Pfeil 2.7.8 Nicht erreichbarer Quellcode bei Methoden *
Pfeil 2.7.9 Methoden mit Rückgaben
Pfeil 2.7.10 Methoden überladen
Pfeil 2.7.11 Gültigkeitsbereich
Pfeil 2.7.12 Vorgegebener Wert für nicht aufgeführte Argumente *
Pfeil 2.7.13 Rekursive Methoden *
Pfeil 2.7.14 Die Türme von Hanoi *
Pfeil 2.8 Zum Weiterlesen
 

Zum Seitenanfang

2    Imperative Sprachkonzepte Zur vorigen ÜberschriftZur nächsten Überschrift

»Wenn ich eine Oper hundertmal dirigiert habe, dann ist es Zeit,

sie wieder zu lernen.«

– Arturo Toscanini (1867–1957)

Ein Programm in Java wird nicht umgangssprachlich beschrieben, sondern ein Regelwerk und eine Grammatik definieren die Syntax und die Semantik. In den nächsten Abschnitten werden wir kleinere Beispiele für Java-Programme kennenlernen, und dann ist der Weg frei für größere Programme.

 

Zum Seitenanfang

2.1    Elemente der Programmiersprache Java Zur vorigen ÜberschriftZur nächsten Überschrift

Wir wollen im Folgenden über das Regelwerk, die Grammatik und die Syntax der Programmiersprache Java sprechen und uns unter anderem über die Unicode-Kodierung, Tokens sowie Bezeichner Gedanken machen. Bei der Benennung einer Methode zum Beispiel dürfen wir aus einer großen Anzahl Zeichen wählen; der Zeichenvorrat nennt sich Lexikalik.

Die Syntax eines Java-Programms definiert die Tokens und bildet so das Vokabular. Richtig geschriebene Programme müssen aber dennoch nicht korrekt sein. Unter dem Begriff Semantik fassen wir daher die Bedeutung eines syntaktisch korrekten Programms zusammen. Die Semantik bestimmt, was das Programm macht. Die Abstraktionsreihenfolge ist: Lexikalik, Syntax und Semantik. Der Compiler durchläuft diese Schritte, bevor er den Bytecode erzeugen kann.

 

Zum Seitenanfang

2.1.1    Token Zur vorigen ÜberschriftZur nächsten Überschrift

Ein Token ist eine lexikalische Einheit, die dem Compiler die Bausteine des Programms liefert. Der Compiler erkennt an der Grammatik einer Sprache, welche Folgen von Zeichen ein Token bilden. Für Bezeichner heißt dies beispielsweise: »Nimm die nächsten Zeichen, solange auf einen Buchstaben nur Buchstaben oder Ziffern folgen.« Eine Zahl wie 1982 bildet zum Beispiel ein Token durch folgende Regel: »Lies so lange Ziffern, bis keine Ziffer mehr folgt.« Bei Kommentaren bilden die Kombinationen /* und */ ein Token.

Das ist in C(++) unglücklich, denn so wird ein Ausdruck *s/*t nicht wie erwartet geparst. Erst ein Leerzeichen zwischen dem Geteiltzeichen und dem Stern »hilft« dem Parser, die gewünschte Division zu erkennen.

Whitespace

Der Compiler muss die Tokens voneinander unterscheiden können. Daher fügen wir Trennzeichen ein; zu diesen zählt Weißraum (engl. whitespace) wie Leerzeichen, Tabulatoren, Zeilenvorschub- und Seitenvorschubzeichen. Außer als Trennzeichen haben diese Zeichen keine Bedeutung. Daher können sie in beliebiger Anzahl zwischen die Tokens gesetzt werden – beliebig viele Leerzeichen sind zwischen Tokens gültig. Und da wir damit nicht geizen müssen, können sie einen Programmabschnitt enorm verdeutlichen. Programme sind besser lesbar, wenn sie luftig formatiert sind.

Separatoren

Neben den Trennern gibt es noch zwölf aus ASCII-Zeichen geformte Tokens, die als Separatoren definiert werden:

(   )   {   }   [   ]   ;   ,   .   ...   @   ::

Folgendes ist jedoch alles andere als gut zu lesen, obwohl der Compiler es akzeptiert:

 

Zum Seitenanfang

2.1.2    Textkodierung durch Unicode-Zeichen Zur vorigen ÜberschriftZur nächsten Überschrift

Java kodiert Texte durch Unicode-Zeichen. Jedem Zeichen ist ein eindeutiger Zahlenwert (engl. code point) zugewiesen, sodass zum Beispiel das große A an Position 65 liegt. Der Unicode-Zeichensatz beinhaltet die ISO-US-ASCII-Zeichen[ 51 ](https://en.wikipedia.org/wiki/ASCII) von 0 bis 127 (hexadezimal 0x00 bis 0x7f, also 7 Bit) und die erweiterte Kodierung nach ISO 8859-1 (Latin-1), die Zeichen von 128 bis 255 hinzunimmt. Mehr Details zu Unicode liefert Kapitel 4, »Arrays und ihre Anwendungen«.

 

Zum Seitenanfang

2.1.3    Bezeichner Zur vorigen ÜberschriftZur nächsten Überschrift

Für Variablen (und damit Konstanten), Methoden, Klassen und Schnittstellen werden Bezeichner vergeben – auch Identifizierer (von engl. identifier) genannt –, die die entsprechenden Bausteine anschließend im Programm identifizieren. Unter Variablen sind dann Daten verfügbar. Methoden sind die Unterprogramme in objektorientierten Programmiersprachen, und Klassen sind die Bausteine objektorientierter Programme.

Ein Bezeichner ist eine Folge von Zeichen, die fast beliebig lang sein kann (die Länge ist nur theoretisch festgelegt). Die Zeichen sind Elemente aus dem Unicode-Zeichensatz, und jedes Zeichen ist für die Identifikation wichtig.[ 52 ](Die Java-Methoden Character.isJavaIdentifierStart(…)/isJavaIdentifierPart(…) stellen auch fest, ob Zeichen Java-Identifier sind. ) Das heißt, ein Bezeichner, der 100 Zeichen lang ist, muss auch immer mit allen 100 Zeichen korrekt angegeben werden. Manche C- und FORTRAN-Compiler sind in dieser Hinsicht etwas großzügiger und bewerten nur die ersten Stellen.

[zB]  Beispiel

Im folgenden Java-Programm sind die Bezeichner fett gesetzt:

class Application {

public static void main( String[] args ) {

System.out.println( "Hallo Welt" );

}

}

Dass String fett ist, hat seinen Grund, denn String ist eine Klasse und kein eingebauter Datentyp wie int. Zwar wird die Klasse String in Java bevorzugt behandelt – und ein Plus kann Strings zusammenhängen –, aber es ist immer noch ein Klassentyp.

Aufbau der Bezeichner

Jeder Java-Bezeichner ist eine Folge aus Java-Buchstaben und Java-Ziffern,[ 53 ](Ob ein Zeichen ein Buchstabe ist, stellt die statische Methode Character.isLetter() fest; ob er ein gültiger Bezeichnerbuchstabe ist, sagen die Funktionen isJavaIdentifierStart() für den Startbuchstaben und isJavaIdentifierPart() für den Rest. ) wobei der Bezeichner mit einem Java-Buchstaben beginnen muss. Ein Java-Buchstabe umfasst nicht nur unsere lateinischen Buchstaben aus dem Bereich »A« bis »Z« (auch »a« bis »z«), sondern auch viele weitere Zeichen aus dem Unicode-Alphabet, etwa den Unterstrich, Währungszeichen – wie die Zeichen für Dollar ($), Euro (€), Yen (¥) – oder griechische oder arabische Buchstaben. Auch wenn damit viele wilde Zeichen als Bezeichnerbuchstaben grundsätzlich möglich sind, sollte doch die Programmierung mit englischen Bezeichnernamen erfolgen. Es ist noch einmal zu betonen, dass Java streng zwischen Groß- und Kleinschreibung unterscheidet.

Tabelle 2.1 listet einige gültige Bezeichner auf.

Gültige Bezeichner

Grund

Mami

Mami besteht nur aus Alphazeichen und ist daher korrekt.

__RAPHAEL_IST_LIEB__

Unterstriche sind erlaubt.

Bóolêáñ

Ist korrekt, auch wenn es Akzente enthält.

α

Das griechische Alpha ist ein gültiger Java-Buchstabe.

REZE$$SION

Das Dollar-Zeichen ist ein gültiger Java-Buchstabe.

¥€$

tatsächlich auch gültige Java-Buchstaben

Tabelle 2.1    Beispiele für gültige Bezeichner in Java

Ungültige Bezeichner dagegen sind:

Ungültige Bezeichner

Grund

2und2macht4

Das erste Symbol muss ein Java-Buchstabe sein und keine Ziffer.

hose gewaschen

Leerzeichen sind in Bezeichnern nicht erlaubt.

faster!

Das Ausrufezeichen ist, wie viele Sonderzeichen, ungültig.

null

class

Der Name ist schon von Java belegt. Null – Groß-/Kleinschreibung ist relevant – oder cláss wären möglich.

_

Ein einzelner Unterstrich gilt ab Java 9 als reserviertes Schlüsselwort.

Tabelle 2.2    Beispiele für ungültige Bezeichner in Java

[»]  Hinweis

In Java-Programmen bilden sich Bezeichnernamen oft aus zusammengesetzten Wörtern einer Beschreibung. Dies bedeutet, dass in einem Satz wie »open file read only« die Leerzeichen entfernt werden und die nach dem ersten Wort folgenden Wörter mit Großbuchstaben beginnen. Damit wird aus dem Beispielsatz anschließend »openFileReadOnly«. Sprachwissenschaftler nennen einen Großbuchstaben inmitten von Wörtern Binnenmajuskel. Programmierer und IT-affine Personen hingegen sprechen gern von der CamelCase-Schreibweise, wegen der zweihöckrigen Kamele. Schwierig wird die gemischte Groß-/Kleinschreibung bei großgeschriebenen Abkürzungen, wie HTTP, URL; hier sind die Java-Bibliotheken nicht einheitlich, Klassennamen wie HttpConnection oder HTTPConnection sind akzeptabel.

 

Zum Seitenanfang

2.1.4    Literale Zur vorigen ÜberschriftZur nächsten Überschrift

Ein Literal ist ein konstanter Ausdruck. Es gibt verschiedene Typen von Literalen:

  • die Wahrheitswerte true und false

  • integrale Literale für Zahlen, etwa 122

  • Fließkommaliterale, etwa 12.567 oder 9.999E-2

  • Zeichenliterale, etwa 'X' oder '\n'

  • String-Literale für Zeichenketten, wie "Paolo Pinkas"

  • null steht für einen besonderen Referenztyp.

[zB]  Beispiel

Im folgenden Java-Programm sind die drei Literale fett gesetzt:

class Application {

public static void main( String[] args ) {

System.out.println( "Hallo Welt" );

System.out.println( 1 + 2.65 );

}

}
 

Zum Seitenanfang

2.1.5    (Reservierte) Schlüsselwörter Zur vorigen ÜberschriftZur nächsten Überschrift

Bestimmte Wörter sind als Bezeichner nicht zulässig, da sie als Schlüsselwörter vom Compiler besonders behandelt werden. Schlüsselwörter bestimmen die »Sprache« eines Compilers, und es können vom Programmierer keine eigenen Schlüsselwörter hinzugefügt werden.

[zB]  Beispiel

Schlüsselwörter sind im Folgenden fett gesetzt:

class Application {

public static void main( String[] args ) {

System.out.println( "Hallo Welt" );

}

}

Schlüsselwörter und Literale in Java

Die Zeichenfolgen in Tabelle 2.3 sind Schlüsselwörter (bzw. Literale im Fall von true, false und null) und sind in Java daher nicht als Bezeichnernamen möglich:[ 54 ](Auch nutzt Java ab Version 10 zur Deklaration von Variablen var, doch ist das kein reserviertes Schlüsselwort, sondern lediglich ein Bezeichner mit besonderer Bedeutung. Auch der Unterstrich _ zählt als reserviertes Schlüsselwort, ist aber in der Tabelle nicht aufgeführt. Die JLS definiert das unter https://docs.oracle.com/javase/specs/jls/se11/html/jls-3.html#jls-3.9. )

abstract

continue

for

new

switch

assert

default

goto

package

synchronized

boolean

do

if

private

this

break

double

implements

protected

throw

byte

else

import

public

throws

case

enum

instanceof

return

transient

catch

extends

int

short

try

char

final

interface

static

void

class

finally

long

strictfp

volatile

const

float

native

super

while

Tabelle 2.3    (Reservierte) Schlüsselwörter in Java

Obwohl die mit † gekennzeichneten Wörter zurzeit nicht von Java benutzt werden, können doch keine Variablen dieses Namens deklariert werden. Diese Schlüsselwörter nennen wir reservierte Schlüsselwörter, weil sie für eine zukünftige Nutzung reserviert sind. Allerdings ist nicht abzusehen, dass goto jemals verwendet werden wird.

 

Zum Seitenanfang

2.1.6    Zusammenfassung der lexikalischen Analyse Zur vorigen ÜberschriftZur nächsten Überschrift

Übersetzt der Compiler Java-Programme, so beginnt er mit der lexikalischen Untersuchung des Quellcodes. Wir haben die zentralen Elemente schon kennengelernt – sie sollen hier noch einmal zusammengefasst werden. Nehmen wir dazu das folgende einfache Programm:

class Application {

public static void main( String[] args ) {

String text = "Hallo Welt";

System.out.println( text );

System.out.println( 1 + 2.65 );

}

}

Der Compiler überliest alle Kommentare, und die Trennzeichen bringen den Compiler von Token zu Token. Folgende Tokens lassen sich im Programm ausmachen:

Token-Typ

Beispiel

Erklärung

Bezeichner

Application, main, String, args, text, System, out, println

Namen für Klasse, Variable, Methode …

Schlüsselwort

class, public, static, void

reservierte Wörter

Literal

"Hallo Welt", 1, 2.65

konstante Werte, wie Strings, Zahlen …

Operator

=, +

Operator für Zuweisungen, Berechnungen …

Separator

(, ), {, }, ;

Symbole, die neben dem Trennzeichen die Tokens trennen

Tabelle 2.4    Tokens des Beispielprogramms

 

Zum Seitenanfang

2.1.7    Kommentare Zur vorigen ÜberschriftZur nächsten Überschrift

Programmieren heißt nicht nur, einen korrekten Algorithmus in einer Sprache auszudrücken, sondern auch, unsere Gedanken verständlich zu formulieren. Dies geschieht beispielsweise durch eine sinnvolle Namensgebung für Programmelemente wie Klassen, Methoden und Variablen. Ein selbsterklärender Klassenname hilft den Entwicklern erheblich. Doch die Lösungsidee und der Algorithmus werden auch durch die schönsten Variablennamen nicht zwingend klarer. Damit Außenstehende (und nach Monaten wir selbst) unsere Lösungsidee schnell nachvollziehen und später das Programm erweitern oder abändern können, werden Kommentare in den Quelltext geschrieben. Sie dienen nur den Lesern der Programme, haben aber auf die Abarbeitung keine Auswirkungen.

Unterschiedliche Kommentartypen

In Java gibt es zum Formulieren von Kommentaren drei Möglichkeiten:

  • Zeilenkommentare: Sie beginnen mit zwei Schrägstrichen[ 55 ](In C++ haben die Entwickler übrigens das Zeilenkommentarzeichen // aus der Vor-Vorgängersprache BCPL wieder eingeführt, das in C entfernt wurde. ) // und kommentieren den Rest einer Zeile aus. Der Kommentar gilt von diesen Zeichen an bis zum Ende der Zeile, also bis zum Zeilenumbruchzeichen.

  • Blockkommentare: Sie kommentieren in /* */ Abschnitte aus. Der Text im Blockkommentar darf selbst kein */ enthalten, denn Blockkommentare dürfen nicht verschachtelt sein.

  • Javadoc-Kommentare: Das sind besondere Blockkommentare, die Javadoc-Kommentare mit /** */ enthalten. Ein Javadoc-Kommentar beschreibt etwa die Methode oder die Parameter, aus denen sich später die API-Dokumentation generieren lässt.

Schauen wir uns ein Beispiel an, in dem alle drei Kommentartypen vorkommen:

/*

* Der Quellcode ist public domain.

*/

// Magic. Do not touch.

/**

* @author Christian Ullenboom

*/

class DoYouHaveAnyCommentsToMake { // TODO: Umbenennen

// When I wrote this, only God and I understood what I was doing

// Now, God only knows

public static void main( String[] args /* Kommandozeilenargument */ ) {

System.out.println( "Ich habe /*richtig*/ viel //Hunger//" );

}

}

Für den Compiler ist ein Kommentar ein Token, weshalb 1/*2*/3 nicht das Token 13 gibt, sondern die beiden Tokens 1 und 3. Doch vereinfacht gesprochen sieht für den Compiler eine Datei mit Kommentaren genauso aus wie ohne, also wie class DoYouHaveAnyCommentsToMake { public static void main( String[] args ) { System.out.println( "Ich habe /*richtig*/ viel //Hunger//" );} }. Die Ausgabe zeigt, dass es innerhalb von String-Literalen keine Kommentare geben kann; die Symbole /*, */ und // gehören zum String.

Im Bytecode steht exakt das Gleiche – alle Kommentare werden vom Compiler verworfen, kein Kommentar kommt in den Bytecode.

Kommentare mit Stil

Alle Kommentare und Bemerkungen sollten in Englisch verfasst werden, um Projektmitgliedern aus anderen Ländern das Lesen zu erleichtern.

Die Javadoc-Kommentare dokumentieren im Allgemeinen das »Was« und die Blockkommentare das »Wie«.

Für allgemeine Kommentare sollten wir die Zeichen // benutzen. Sie haben zwei Vorteile:

  • Bei Editoren, die Kommentare nicht farbig hervorheben, oder bei einer einfachen Quellcodeausgabe auf der Kommandozeile lässt sich ersehen, dass eine Zeile, die mit // beginnt, ein Kommentar ist. Den Überblick über einen Quelltext zu behalten, der für mehrere Seiten mit den Kommentarzeichen /* und */ unterbrochen wird, ist schwierig. Zeilenkommentare machen deutlich, wo Kommentare beginnen und wo sie enden.

  • Der Einsatz der Zeilenkommentare eignet sich besser dazu, während der Entwicklungs- und Debug-Phase Codeblöcke auszukommentieren. Benutzen wir zur Programmdokumentation die Blockkommentare, so sind wir eingeschränkt, denn Kommentare dieser Form können wir nicht verschachteln. Zeilenkommentare können einfacher geschachtelt werden.

inline image  Die Tastenkombination (Strg)+(7) – oder (Strg)+(/), was das Kommentarzeichen / noch deutlicher macht – kommentiert eine Zeile aus. Eclipse setzt dann vor die Zeile die Kommentarzeichen //. Sind mehrere Zeilen selektiert, kommentiert die Tastenkombination alle markierten Zeilen mit Zeilenkommentaren aus. In einer kommentierten Zeile nimmt ein erneutes (Strg)+(7) die Kommentare einer Zeile wieder zurück.

inline image  (Strg)+(/) kommentiert eine Zeile bzw. einen Block in IntelliJ ein und aus. Achtung, der (/) muss über den Ziffernblock der Tastatur ausgewählt werden!

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Java ist auch eine Insel Java ist auch eine Insel

Jetzt Buch bestellen


 Buchempfehlungen
Zum Rheinwerk-Shop: Captain CiaoCiao erobert Java

Captain CiaoCiao erobert Java




Zum Rheinwerk-Shop: Java SE 9 Standard-Bibliothek

Java SE 9 Standard-Bibliothek




Zum Rheinwerk-Shop: Algorithmen in Java

Algorithmen in Java




Zum Rheinwerk-Shop: Objektorientierte Programmierung

Objektorientierte Programmierung




 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz

InfoInfo



 

 


Copyright © Rheinwerk Verlag GmbH 2021

Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.

Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 

[Rheinwerk Computing]



Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de



Cookie-Einstellungen ändern